nodes: 0, module; 1, function_definition; 2, function_name:_notify_reader_writes; 3, parameters; 4, block; 5, identifier:writeto; 6, expression_statement; 7, expression_statement; 8, for_statement; 9, return_statement; 10, comment:"""Notify reader closures about these writes and return a sorted
         list of thus-satisfied closures.
      """; 11, assignment; 12, identifier:var; 13, identifier:writeto; 14, block; 15, call; 16, identifier:satisfied; 17, list; 18, if_statement; 19, attribute; 20, argument_list; 21, attribute; 22, block; 23, identifier:Closure; 24, identifier:sort; 25, identifier:satisfied; 26, identifier:var; 27, identifier:readable; 28, for_statement; 29, identifier:reader; 30, attribute; 31, block; 32, identifier:var; 33, identifier:readers; 34, expression_statement; 35, if_statement; 36, call; 37, attribute; 38, block; 39, attribute; 40, argument_list; 41, identifier:reader; 42, identifier:satisfied; 43, expression_statement; 44, identifier:reader; 45, identifier:notify_read_ready; 46, call; 47, attribute; 48, argument_list; 49, identifier:satisfied; 50, identifier:append; 51, identifier:reader
code: def _notify_reader_writes(writeto):
      """Notify reader closures about these writes and return a sorted
         list of thus-satisfied closures.
      """
      satisfied = []
      for var in writeto:
          if var.readable:
              for reader in var.readers:
                  reader.notify_read_ready()
                  if reader.satisfied:
                      satisfied.append(reader)
      return Closure.sort(satisfied)