This creates a new ExpressionDag rooted at the given tail node
This is the most useful function.
This is the most useful function. Given a N[T] and a way to convert to Literal[T, N], apply the given rule until it no longer applies, and return the N[T] which is equivalent under the given rule