Given Dag and a List of immutable nodes, and a function to get dependencies, compute the dependants (reverse the graph)
Expr[N, T] is an expression of a graph of container nodes N[_] with result type N[T].
This is a Natural transformation.
This is a useful cache for memoizing heterogenously types functions
This is a weak heterogenous map.
The Expressions are assigned Ids.
This represents literal expressions (no variable redirection) of container nodes of type N[T]
Often a partial function is an easier way to express rules
This implements a simplification rule on ExpressionDags
Collection of graph algorithms