Add a child to a parent node A parent node is created if it does not already exist
Add a child to a parent node A parent node is created if it does not already exist
module that instantiates another module
module instantiated by parent
a list indicating a path from child to parent, empty if no such path
Starting at the name of a given child explore the tree of all children in depth first manner.
Starting at the name of a given child explore the tree of all children in depth first manner. Return the first path (a list of strings) that goes from child to parent, or an empty list of no such path is found.
starting name
name to find in children (recursively)
path being investigated as possible route
Maintains a one to many graph of each modules instantiated child module. This graph can be searched for a path from a child module back to one of it's parents. If one is found a recursive loop has happened The graph is a map between the name of a node to set of names of that nodes children