A tree traverser to collect values with a custom context.
A tree traverser to collect values with a custom context. At every tree node, either builds a new Context or returns a new Value to accumulate. To collect all accumulated values, use result(Tree).