docs: def _generate_edges(self, edge_prob):
          """Generate a random tree-structured dependency graph based on a
          specified edge probability.
  
          Also create helper data struct mapping child -> parent.
          """
          self.E, self.parent = [], {}
          for i in range(self.m):
              if random() < edge_prob and i > 0:
                  p_i = choice(i)
                  self.E.append((p_i, i))
                  self.parent[i] = p_i