Module("strategy/traversal/list-environment",[Imports([Import("strategy/traversal/environment"),Import("strategy/traversal/list")]),Rules([RDef("all-l-dist",[DefaultVarDec("s")],RuleNoCond(NoAnnoList(Tuple([Var("t"),Var("env")])),App(Call(SVar("all-l"),[LRule(RuleNoCond(Var("x"),App(CallNoArgs(SVar("s")),NoAnnoList(Tuple([Var("x"),Var("env")])))))]),Var("t"))))]),Strategies([SDef("env-alltd-l",[DefaultVarDec("s")],Rec("x",LChoice(CallNoArgs(SVar("s")),Call(SVar("all-l-dist"),[CallNoArgs(SVar("x"))])))),SDef("env-topdown-l",[DefaultVarDec("s")],Rec("x",Seq(CallNoArgs(SVar("s")),Call(SVar("all-l-dist"),[CallNoArgs(SVar("x"))])))),SDef("env-topdown-l",[DefaultVarDec("s"),VarDec("skip",FunType([FunType([ConstType(SortVar("term"))],ConstType(SortVar("term"))),ConstType(SortVar("term"))],ConstType(SortVar("term"))))],Rec("x",Seq(CallNoArgs(SVar("s")),LChoice(Call(SVar("skip"),[CallNoArgs(SVar("x"))]),Call(SVar("all-l-dist"),[CallNoArgs(SVar("x"))]))))),SDef("env-bottomup-l",[DefaultVarDec("s")],Rec("x",Seq(Call(SVar("split"),[Call(SVar("all-l-dist"),[CallNoArgs(SVar("x"))]),CallNoArgs(SVar("Snd"))]),CallNoArgs(SVar("s")))))])])
