nodes: 0, module; 1, function_definition; 2, function_name:get_corrected_commands; 3, parameters; 4, block; 5, identifier:command; 6, expression_statement; 7, expression_statement; 8, return_statement; 9, comment:"""Returns generator with sorted and unique corrected commands.
  
      :type command: thefuck.types.Command
      :rtype: Iterable[thefuck.types.CorrectedCommand]
  
      """; 10, assignment; 11, call; 12, identifier:corrected_commands; 13, generator_expression; 14, identifier:organize_commands; 15, argument_list; 16, identifier:corrected; 17, for_in_clause; 18, if_clause; 19, for_in_clause; 20, identifier:corrected_commands; 21, identifier:rule; 22, call; 23, call; 24, identifier:corrected; 25, call; 26, identifier:get_rules; 27, argument_list; 28, attribute; 29, argument_list; 30, attribute; 31, argument_list; 32, identifier:rule; 33, identifier:is_match; 34, identifier:command; 35, identifier:rule; 36, identifier:get_corrected_commands; 37, identifier:command
code: def get_corrected_commands(command):
      """Returns generator with sorted and unique corrected commands.
  
      :type command: thefuck.types.Command
      :rtype: Iterable[thefuck.types.CorrectedCommand]
  
      """
      corrected_commands = (
          corrected for rule in get_rules()
          if rule.is_match(command)
          for corrected in rule.get_corrected_commands(command))
      return organize_commands(corrected_commands)