Many transformations in transform.jl and related optimizations in optimize.jl apply only to expression trees, i.e., they assume each node has only one parent. Functions relabel / relabel! and standardize_labels / standardize_labels! are already sufficiently general. All other functions must be corrected to support generic computational graphs, which may include nodes with multiple parents.