Module("strategy/traversal/fixpoint",[Imports([Import("strategy/iteration"),Import("strategy/traversal/simple"),Import("strategy/general/memo")]),Strategies([SDef("reduce",[DefaultVarDec("s")],Call(SVar("repeat"),[Rec("x",Choice(Some(CallNoArgs(SVar("x"))),CallNoArgs(SVar("s"))))])),SDef("outermost",[DefaultVarDec("s")],Call(SVar("repeat"),[Call(SVar("oncetd"),[CallNoArgs(SVar("s"))])])),SDef("innermost'",[DefaultVarDec("s")],Call(SVar("repeat"),[Call(SVar("oncebu"),[CallNoArgs(SVar("s"))])])),SDef("innermost",[DefaultVarDec("s")],Call(SVar("bottomup"),[Call(SVar("try"),[Seq(CallNoArgs(SVar("s")),Call(SVar("innermost"),[CallNoArgs(SVar("s"))]))])])),SDef("innermost-old",[DefaultVarDec("s")],Rec("x",Seq(All(CallNoArgs(SVar("x"))),LChoice(Seq(CallNoArgs(SVar("s")),CallNoArgs(SVar("x"))),Id)))),SDef("pseudo-innermost3",[DefaultVarDec("s")],Rec("x",Seq(All(CallNoArgs(SVar("x"))),Rec("y",Call(SVar("try"),[Seq(CallNoArgs(SVar("s")),Seq(All(Seq(All(Seq(All(CallNoArgs(SVar("y"))),CallNoArgs(SVar("y")))),CallNoArgs(SVar("y")))),CallNoArgs(SVar("y"))))]))))),SDef("innermost-memo",[DefaultVarDec("s")],Rec("x",Call(SVar("memo"),[Seq(All(CallNoArgs(SVar("x"))),LChoice(Seq(CallNoArgs(SVar("s")),CallNoArgs(SVar("x"))),Id))]))),SDef("innermost-tagged",[VarDec("s",FunType([ConstType(SortVar("a"))],ConstType(SortVar("a"))))],Seq(Where(AM(CallNoArgs(SVar("new")),Var("tag"))),Seq(Rec("x",LChoice(Match(AnnoList(Wld,[Var("tag")])),Seq(All(CallNoArgs(SVar("x"))),LChoice(Seq(CallNoArgs(SVar("s")),CallNoArgs(SVar("x"))),Build(AnnoList(RootApp(Id),[Var("tag")])))))),Call(SVar("bottomup"),[Match(AnnoList(RootApp(Id),[Var("tag")]))]))))])])
