Module("term/zip",[Imports([Import("collection/list/zip")]),Strategies([SDef("pair-term-zip-bu",[DefaultVarDec("leaf"),DefaultVarDec("node")],Rec("x",LChoice(CallNoArgs(SVar("leaf")),Seq(Call(SVar("TermZip"),[CallNoArgs(SVar("x"))]),CallNoArgs(SVar("node"))))))]),Rules([RDef("TermZip",[DefaultVarDec("s")],RuleNoCond(NoAnnoList(Tuple([NoAnnoList(Explode(Var("f"),Var("xs"))),NoAnnoList(Explode(Var("f"),Var("ys")))])),NoAnnoList(Explode(Var("f"),App(Call(SVar("zip"),[CallNoArgs(SVar("s"))]),NoAnnoList(Tuple([Var("xs"),Var("ys")])))))))]),Strategies([SDef("term-zip",[DefaultVarDec("leaf"),DefaultVarDec("node")],Rec("x",LChoice(CallNoArgs(SVar("leaf")),Seq(Call(SVar("TermTupleZip"),[CallNoArgs(SVar("x"))]),CallNoArgs(SVar("node")))))),SDef("TermTupleZip",[DefaultVarDec("s")],Seq(Call(SVar("tmap"),[Scope(["xs"],Seq(Match(NoAnnoList(Explode(Var("f"),Var("xs")))),Build(Var("xs"))))]),Seq(Call(SVar("tuple-zip"),[CallNoArgs(SVar("s"))]),LRule(RuleNoCond(Var("xs"),NoAnnoList(Explode(Var("f"),Var("xs"))))))))])])
