nodes: 0, module; 1, function_definition; 2, function_name:variables; 3, parameters; 4, type; 5, block; 6, identifier:self; 7, generic_type; 8, expression_statement; 9, expression_statement; 10, for_statement; 11, return_statement; 12, identifier:Set; 13, type_parameter; 14, comment:"""A set of all different |Node.variable| values of the |Node|
          objects directly connected to the actual |Element| object.
  
          Suppose there is an element connected to five nodes, which (partly)
          represent different variables:
  
          >>> from hydpy import Element, Node
          >>> element = Element('Test',
          ...                   inlets=(Node('N1', 'X'), Node('N2', 'Y1')),
          ...                   outlets=(Node('N3', 'X'), Node('N4', 'Y2')),
          ...                   receivers=(Node('N5', 'X'), Node('N6', 'Y3')),
          ...                   senders=(Node('N7', 'X'), Node('N8', 'Y4')))
  
          Property |Element.variables| puts all the different variables of
          these nodes together:
  
          >>> sorted(element.variables)
          ['X', 'Y1', 'Y2', 'Y3', 'Y4']
          """; 15, assignment; 16, identifier:connection; 17, attribute; 18, block; 19, identifier:variables; 20, type; 21, identifier:variables; 22, type; 23, call; 24, identifier:self; 25, identifier:__connections; 26, expression_statement; 27, identifier:str; 28, generic_type; 29, identifier:set; 30, argument_list; 31, call; 32, identifier:Set; 33, type_parameter; 34, attribute; 35, argument_list; 36, type; 37, identifier:variables; 38, identifier:update; 39, attribute; 40, identifier:str; 41, identifier:connection; 42, identifier:variables
code: def variables(self) -> Set[str]:
          """A set of all different |Node.variable| values of the |Node|
          objects directly connected to the actual |Element| object.
  
          Suppose there is an element connected to five nodes, which (partly)
          represent different variables:
  
          >>> from hydpy import Element, Node
          >>> element = Element('Test',
          ...                   inlets=(Node('N1', 'X'), Node('N2', 'Y1')),
          ...                   outlets=(Node('N3', 'X'), Node('N4', 'Y2')),
          ...                   receivers=(Node('N5', 'X'), Node('N6', 'Y3')),
          ...                   senders=(Node('N7', 'X'), Node('N8', 'Y4')))
  
          Property |Element.variables| puts all the different variables of
          these nodes together:
  
          >>> sorted(element.variables)
          ['X', 'Y1', 'Y2', 'Y3', 'Y4']
          """
          variables: Set[str] = set()
          for connection in self.__connections:
              variables.update(connection.variables)
          return variables