/**
* Traversals that carry an environment.
*/
module strategy/traversal/list-environment
imports
strategy/traversal/environment
strategy/traversal/list
rules
all-l-dist(s) :
(t, env) -> <all-l(\x -> <s>(x,env)\)> t
strategies
env-alltd-l(s) =
rec x(s <+ all-l-dist(x))
env-topdown-l(s) =
rec x(s; all-l-dist(x))
env-topdown-l(s, skip: (term -> term) * term -> term) =
rec x(s; (skip(x) <+ all-l-dist(x)))
env-bottomup-l(s) =
rec x(split(all-l-dist(x), Snd); s)