code: def initial_edges(self) -> iter:
          
          nodes_in = lambda n: ([n] if self.is_node(n) else self.nodes_in(n))
          for node, succs in self.edges.items():
              twos = tuple(two for succ in succs for two in nodes_in(succ))
              for one in nodes_in(node):
                  for two in twos:
                      yield one, two
docs: Yield edges in the initial (uncompressed) graphs. Possible doublons.