Evaluate this NameTree with the default evaluation strategy.
Evaluate this NameTree with the default evaluation strategy. A tree is evaluated recursively, Alt nodes are evaluated by selecting its first nonnegative child.
Use f
to map a T-typed NameTree to a U-typed one.
Use f
to map a T-typed NameTree to a U-typed one.
A parseable representation of the name tree; a NameTree is recovered from this string by NameTree.read.
A parseable representation of the name tree; a NameTree is recovered from this string by NameTree.read.
A simplified version of this NameTree -- the returned name tree is equivalent vis-à-vis evaluation.
A simplified version of this NameTree -- the returned name tree is equivalent vis-à-vis evaluation. The returned name also represents a fixpoint; in other words:
tree.simplified == tree.simplified.simplified
A NameTree representing a weighted union of trees. It is evaluated by returning the union of its (recursively evaluated) children, leaving corresponding weights unchanged. When all children are negative, the Union itself evaluates negative.
NameTree gives no semantics to weights (they are interpreted higher in the stack) except to simplify away single-child Unions regardless of weight.