Return all of the children of the current tree node
Return all of the children of the current tree node
Return a new instance of the same object, but with the children replaced with the provided list.
Return a new instance of the same object, but with the children replaced with the provided list. The list must be of the same size returned by children. This is mostly to facilitate recur, below
Perform a recursive rewrite.
Perform a recursive rewrite. The following pattern is pretty common throughout Mimir: def replaceFooWithBar(e:Expression): Expression = e match { case Foo(a, b, c, ...) => Bar(a, b, c, ...) case _ => e.recur(replaceFooWithBar(_)) } Note how specific rewrites are applied to specific patterns in the tree, and recur is used to ignore/descend through every other class of object
Return this
Return this