CurryProg "FlatCurryGoodies" ["Prelude","FlatCurry"] [CTypeSyn ("FlatCurryGoodies","Update") Public [(0,"a"),(1,"b")] (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))] [CFunc ("FlatCurryGoodies","allVars") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("Prelude",":"))) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","id")))) (CSymbol ("FlatCurryGoodies","comb"))) (CSymbol ("FlatCurryGoodies","lt"))) (CSymbol ("FlatCurryGoodies","fr"))) (CSymbol ("Prelude","."))) (CSymbol ("FlatCurryGoodies","cas"))) (CSymbol ("FlatCurryGoodies","branch"))) (CVar (0,"e"))) (CSymbol ("Prelude","[]")))] [CLocalFunc (CFunc ("FlatCurryGoodies","comb") 2 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","[]") [CFuncType (CTVar (2,"c")) (CTVar (2,"c"))]) (CFuncType (CTVar (2,"c")) (CTVar (2,"c")))))) (CRules CFlex [CRule [CPVar (1,"_"),CPVar (2,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","."))) (CSymbol ("Prelude","id")))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","lt") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])]]) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (1,"bs"),CPVar (2,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CVar (2,"exp"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","."))) (CSymbol ("Prelude","id"))) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (3,"n"),CPVar (4,"ns")]] (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"n"))) (CVar (5,"x0"))))) (CVar (4,"ns"))))) (CVar (1,"bs")))))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","fr") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (1,"vs"),CPVar (2,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"vs"))) (CVar (3,"x0"))))) (CVar (2,"exp")))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","cas") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (2,"c"))) (CFuncType (CTCons ("Prelude","[]") [CFuncType (CTVar (1,"b")) (CTVar (1,"b"))]) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))))) (CRules CFlex [CRule [CPVar (1,"_"),CPVar (2,"exp"),CPVar (3,"bs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CVar (2,"exp"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","."))) (CSymbol ("Prelude","id"))) (CVar (3,"bs"))))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","branch") 2 Private (CFuncType (CTCons ("FlatCurry","Pattern") []) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])))) (CRules CFlex [CRule [CPVar (1,"pat"),CPVar (2,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("FlatCurryGoodies","args")) (CVar (1,"pat")))) (CVar (3,"x0"))))) (CVar (2,"exp")))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","args") 1 Private (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (1,"pat")] [(CApply (CSymbol ("FlatCurryGoodies","isConsPattern")) (CVar (1,"pat")),CApply (CSymbol ("FlatCurryGoodies","patArgs")) (CVar (1,"pat"))),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","[]"))] []]))]]), CFunc ("FlatCurryGoodies","allVarsInFunc") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","allVarsInRule"))) (CSymbol ("FlatCurryGoodies","funcRule")))] []]), CFunc ("FlatCurryGoodies","allVarsInProg") 0 Public (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("FlatCurryGoodies","allVarsInFunc")))) (CSymbol ("FlatCurryGoodies","progFuncs")))] []]), CFunc ("FlatCurryGoodies","allVarsInRule") 0 Public (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trRule")) (CLambda [CPVar (0,"args"),CPVar (1,"body")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"args"))) (CApply (CSymbol ("FlatCurryGoodies","allVars")) (CVar (1,"body")))))) (CLambda [CPVar (2,"_")] (CSymbol ("Prelude","[]"))))] []]), CFunc ("FlatCurryGoodies","allVarsInTypeExpr") 0 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x0"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","concat")))) (CSymbol ("Prelude","++")))] []]), CFunc ("FlatCurryGoodies","argTypes") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []])) (CRules CFlex [CRule [CPComb ("FlatCurry","TVar") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("FlatCurry","TCons") [CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("FlatCurry","FuncType") [CPVar (3,"dom"),CPVar (4,"ran")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"dom"))) (CApply (CSymbol ("FlatCurryGoodies","argTypes")) (CVar (4,"ran"))))] []]), CFunc ("FlatCurryGoodies","branchExpr") 0 Public (CFuncType (CTCons ("FlatCurry","BranchExpr") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trBranch")) (CLambda [CPVar (0,"_"),CPVar (1,"e")] (CVar (1,"e"))))] []]), CFunc ("FlatCurryGoodies","branchPattern") 0 Public (CFuncType (CTCons ("FlatCurry","BranchExpr") []) (CTCons ("FlatCurry","Pattern") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trBranch")) (CLambda [CPVar (0,"pat"),CPVar (1,"_")] (CVar (0,"pat"))))] []]), CFunc ("FlatCurryGoodies","caseBranches") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","BranchExpr") []])) (CRules CFlex [CRule [CPComb ("FlatCurry","Case") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"bs")]] [(CSymbol ("Prelude","success"),CVar (2,"bs"))] []]), CFunc ("FlatCurryGoodies","caseExpr") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Case") [CPVar (0,"_"),CPVar (1,"e"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"e"))] []]), CFunc ("FlatCurryGoodies","caseType") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","CaseType") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Case") [CPVar (0,"ct"),CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"ct"))] []]), CFunc ("FlatCurryGoodies","combArgs") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","Expr") []])) (CRules CFlex [CRule [CPComb ("FlatCurry","Comb") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"args")]] [(CSymbol ("Prelude","success"),CVar (2,"args"))] []]), CFunc ("FlatCurryGoodies","combName") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("FlatCurry","Comb") [CPVar (0,"_"),CPVar (1,"name"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"name"))] []]), CFunc ("FlatCurryGoodies","combType") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","CombType") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Comb") [CPVar (0,"ct"),CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"ct"))] []]), CFunc ("FlatCurryGoodies","consArgs") 0 Public (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trCons")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"args")] (CVar (3,"args"))))] []]), CFunc ("FlatCurryGoodies","consArity") 0 Public (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trCons")) (CLambda [CPVar (0,"_"),CPVar (1,"arity"),CPVar (2,"_"),CPVar (3,"_")] (CVar (1,"arity"))))] []]), CFunc ("FlatCurryGoodies","consName") 0 Public (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trCons")) (CLambda [CPVar (0,"name"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")] (CVar (0,"name"))))] []]), CFunc ("FlatCurryGoodies","consVisibility") 0 Public (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","Visibility") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trCons")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"vis"),CPVar (3,"_")] (CVar (2,"vis"))))] []]), CFunc ("FlatCurryGoodies","domain") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","FuncType") [CPVar (0,"dom"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"dom"))] []]), CFunc ("FlatCurryGoodies","freeExpr") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Free") [CPVar (0,"_"),CPVar (1,"e")]] [(CSymbol ("Prelude","success"),CVar (1,"e"))] []]), CFunc ("FlatCurryGoodies","freeVars") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPComb ("FlatCurry","Free") [CPVar (0,"vs"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"vs"))] []]), CFunc ("FlatCurryGoodies","funcArgs") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","ruleArgs"))) (CSymbol ("FlatCurryGoodies","funcRule")))] []]), CFunc ("FlatCurryGoodies","funcArity") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trFunc")) (CLambda [CPVar (0,"_"),CPVar (1,"arity"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_")] (CVar (1,"arity"))))] []]), CFunc ("FlatCurryGoodies","funcBody") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","ruleBody"))) (CSymbol ("FlatCurryGoodies","funcRule")))] []]), CFunc ("FlatCurryGoodies","funcName") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trFunc")) (CLambda [CPVar (0,"name"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_")] (CVar (0,"name"))))] []]), CFunc ("FlatCurryGoodies","funcRHS") 1 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","Expr") []])) (CRules CFlex [CRule [CPVar (0,"f")] [(CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("FlatCurryGoodies","isExternal")) (CVar (0,"f"))),CApply (CSymbol ("FlatCurryGoodies","orCase")) (CApply (CSymbol ("FlatCurryGoodies","funcBody")) (CVar (0,"f")))),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","[]"))] [CLocalFunc (CFunc ("FlatCurryGoodies","orCase") 1 Private (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","Expr") []])) (CRules CFlex [CRule [CPVar (1,"e")] [(CApply (CSymbol ("FlatCurryGoodies","isOr")) (CVar (1,"e")),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("FlatCurryGoodies","orCase"))) (CApply (CSymbol ("FlatCurryGoodies","orExps")) (CVar (1,"e")))),(CApply (CSymbol ("FlatCurryGoodies","isCase")) (CVar (1,"e")),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("FlatCurryGoodies","orCase"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("FlatCurryGoodies","branchExpr"))) (CApply (CSymbol ("FlatCurryGoodies","caseBranches")) (CVar (1,"e"))))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"e"))) (CSymbol ("Prelude","[]")))] []]))]]), CFunc ("FlatCurryGoodies","funcRule") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","Rule") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trFunc")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"rule")] (CVar (4,"rule"))))] []]), CFunc ("FlatCurryGoodies","funcType") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","TypeExpr") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trFunc")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"t"),CPVar (4,"_")] (CVar (3,"t"))))] []]), CFunc ("FlatCurryGoodies","funcVisibility") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","Visibility") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trFunc")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"vis"),CPVar (3,"_"),CPVar (4,"_")] (CVar (2,"vis"))))] []]), CFunc ("FlatCurryGoodies","isCase") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Case") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (4,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","isComb") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Comb") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (4,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","isCombTypeConsCall") 0 Public (CFuncType (CTCons ("FlatCurry","CombType") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trCombType")) (CSymbol ("Prelude","False"))) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","False")))) (CSymbol ("Prelude","True"))) (CLambda [CPVar (1,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isCombTypeConsPartCall") 0 Public (CFuncType (CTCons ("FlatCurry","CombType") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trCombType")) (CSymbol ("Prelude","False"))) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","False")))) (CSymbol ("Prelude","False"))) (CLambda [CPVar (1,"_")] (CSymbol ("Prelude","True"))))] []]), CFunc ("FlatCurryGoodies","isCombTypeFuncCall") 0 Public (CFuncType (CTCons ("FlatCurry","CombType") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trCombType")) (CSymbol ("Prelude","True"))) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","False")))) (CSymbol ("Prelude","False"))) (CLambda [CPVar (1,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isCombTypeFuncPartCall") 0 Public (CFuncType (CTCons ("FlatCurry","CombType") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trCombType")) (CSymbol ("Prelude","False"))) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","True")))) (CSymbol ("Prelude","False"))) (CLambda [CPVar (1,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isConsCall") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("FlatCurryGoodies","isComb")) (CVar (0,"e")))) (CApply (CSymbol ("FlatCurryGoodies","isCombTypeConsCall")) (CApply (CSymbol ("FlatCurryGoodies","combType")) (CVar (0,"e")))))] []]), CFunc ("FlatCurryGoodies","isConsPartCall") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("FlatCurryGoodies","isComb")) (CVar (0,"e")))) (CApply (CSymbol ("FlatCurryGoodies","isCombTypeConsPartCall")) (CApply (CSymbol ("FlatCurryGoodies","combType")) (CVar (0,"e")))))] []]), CFunc ("FlatCurryGoodies","isConsPattern") 0 Public (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trPattern")) (CLambda [CPVar (0,"_"),CPVar (1,"_")] (CSymbol ("Prelude","True")))) (CLambda [CPVar (2,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isDataTypeDecl") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"cs")] (CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"cs")))))) (CLambda [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isExternal") 0 Public (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","isRuleExternal"))) (CSymbol ("FlatCurryGoodies","funcRule")))] []]), CFunc ("FlatCurryGoodies","isExternalType") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"cs")] (CApply (CSymbol ("Prelude","null")) (CVar (3,"cs"))))) (CLambda [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isFree") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Free") [CPVar (1,"_"),CPVar (2,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (3,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","isFuncCall") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("FlatCurryGoodies","isComb")) (CVar (0,"e")))) (CApply (CSymbol ("FlatCurryGoodies","isCombTypeFuncCall")) (CApply (CSymbol ("FlatCurryGoodies","combType")) (CVar (0,"e")))))] []]), CFunc ("FlatCurryGoodies","isFuncPartCall") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("FlatCurryGoodies","isComb")) (CVar (0,"e")))) (CApply (CSymbol ("FlatCurryGoodies","isCombTypeFuncPartCall")) (CApply (CSymbol ("FlatCurryGoodies","combType")) (CVar (0,"e")))))] []]), CFunc ("FlatCurryGoodies","isFuncType") 0 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","False")))) (CLambda [CPVar (1,"_"),CPVar (2,"_")] (CSymbol ("Prelude","False")))) (CLambda [CPVar (3,"_"),CPVar (4,"_")] (CSymbol ("Prelude","True"))))] []]), CFunc ("FlatCurryGoodies","isGround") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"exp")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"exp")) [CBranch (CPComb ("FlatCurry","Comb") [CPComb ("FlatCurry","ConsCall") [],CPVar (1,"_"),CPVar (2,"args")]) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("FlatCurryGoodies","isGround"))) (CVar (2,"args"))),CBranch (CPVar (3,"_")) (CApply (CSymbol ("FlatCurryGoodies","isLit")) (CVar (0,"exp")))])] []]), CFunc ("FlatCurryGoodies","isLet") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Let") [CPVar (1,"_"),CPVar (2,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (3,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","isLit") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Lit") [CPVar (1,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (2,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","isOr") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Or") [CPVar (1,"_"),CPVar (2,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (3,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","isRuleExternal") 0 Public (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trRule")) (CLambda [CPVar (0,"_"),CPVar (1,"_")] (CSymbol ("Prelude","False")))) (CLambda [CPVar (2,"_")] (CSymbol ("Prelude","True"))))] []]), CFunc ("FlatCurryGoodies","isTCons") 0 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","False")))) (CLambda [CPVar (1,"_"),CPVar (2,"_")] (CSymbol ("Prelude","True")))) (CLambda [CPVar (3,"_"),CPVar (4,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isTVar") 0 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CLambda [CPVar (0,"_")] (CSymbol ("Prelude","True")))) (CLambda [CPVar (1,"_"),CPVar (2,"_")] (CSymbol ("Prelude","False")))) (CLambda [CPVar (3,"_"),CPVar (4,"_")] (CSymbol ("Prelude","False"))))] []]), CFunc ("FlatCurryGoodies","isTypeSyn") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")] (CSymbol ("Prelude","False")))) (CLambda [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_")] (CSymbol ("Prelude","True"))))] []]), CFunc ("FlatCurryGoodies","isVar") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"e")) [CBranch (CPComb ("FlatCurry","Var") [CPVar (1,"_")]) (CSymbol ("Prelude","True")),CBranch (CPVar (2,"_")) (CSymbol ("Prelude","False"))])] []]), CFunc ("FlatCurryGoodies","letBinds") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("FlatCurry","Expr") []]])) (CRules CFlex [CRule [CPComb ("FlatCurry","Let") [CPVar (0,"vs"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"vs"))] []]), CFunc ("FlatCurryGoodies","letBody") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Let") [CPVar (0,"_"),CPVar (1,"e")]] [(CSymbol ("Prelude","success"),CVar (1,"e"))] []]), CFunc ("FlatCurryGoodies","literal") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Literal") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Lit") [CPVar (0,"l")]] [(CSymbol ("Prelude","success"),CVar (0,"l"))] []]), CFunc ("FlatCurryGoodies","missingArgs") 0 Public (CFuncType (CTCons ("FlatCurry","CombType") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trCombType")) (CLit (CIntc 0))) (CSymbol ("Prelude","id"))) (CLit (CIntc 0))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","missingCombArgs") 0 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","missingArgs"))) (CSymbol ("FlatCurryGoodies","combType")))] []]), CFunc ("FlatCurryGoodies","opFixity") 0 Public (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("FlatCurry","Fixity") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trOp")) (CLambda [CPVar (0,"_"),CPVar (1,"fix"),CPVar (2,"_")] (CVar (1,"fix"))))] []]), CFunc ("FlatCurryGoodies","opName") 0 Public (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trOp")) (CLambda [CPVar (0,"name"),CPVar (1,"_"),CPVar (2,"_")] (CVar (0,"name"))))] []]), CFunc ("FlatCurryGoodies","opPrecedence") 0 Public (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trOp")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"prec")] (CVar (2,"prec"))))] []]), CFunc ("FlatCurryGoodies","orExps") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","Expr") []])) (CRules CFlex [CRule [CPComb ("FlatCurry","Or") [CPVar (0,"e1"),CPVar (1,"e2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"e1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"e2"))) (CSymbol ("Prelude","[]"))))] []]), CFunc ("FlatCurryGoodies","patArgs") 0 Public (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trPattern")) (CLambda [CPVar (0,"_"),CPVar (1,"args")] (CVar (1,"args")))) (CSymbol ("Prelude","failed")))] []]), CFunc ("FlatCurryGoodies","patCons") 0 Public (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trPattern")) (CLambda [CPVar (0,"name"),CPVar (1,"_")] (CVar (0,"name")))) (CSymbol ("Prelude","failed")))] []]), CFunc ("FlatCurryGoodies","patExpr") 0 Public (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trPattern")) (CLambda [CPVar (0,"name")] (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CSymbol ("FlatCurry","Comb")) (CSymbol ("FlatCurry","ConsCall"))) (CVar (0,"name")))) (CApply (CSymbol ("Prelude","map")) (CSymbol ("FlatCurry","Var")))))) (CSymbol ("FlatCurry","Lit")))] []]), CFunc ("FlatCurryGoodies","patLiteral") 0 Public (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Literal") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trPattern")) (CSymbol ("Prelude","failed"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","progFuncs") 0 Public (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trProg")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"funcs"),CPVar (4,"_")] (CVar (3,"funcs"))))] []]), CFunc ("FlatCurryGoodies","progImports") 0 Public (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trProg")) (CLambda [CPVar (0,"_"),CPVar (1,"imps"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_")] (CVar (1,"imps"))))] []]), CFunc ("FlatCurryGoodies","progName") 0 Public (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trProg")) (CLambda [CPVar (0,"name"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_")] (CVar (0,"name"))))] []]), CFunc ("FlatCurryGoodies","progOps") 0 Public (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trProg")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"ops")] (CVar (4,"ops"))))] []]), CFunc ("FlatCurryGoodies","progTypes") 0 Public (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trProg")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"types"),CPVar (3,"_"),CPVar (4,"_")] (CVar (2,"types"))))] []]), CFunc ("FlatCurryGoodies","range") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","FuncType") [CPVar (0,"_"),CPVar (1,"ran")]] [(CSymbol ("Prelude","success"),CVar (1,"ran"))] []]), CFunc ("FlatCurryGoodies","resultType") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","TVar") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurry","TVar")) (CVar (0,"n")))] [],CRule [CPComb ("FlatCurry","TCons") [CPVar (1,"name"),CPVar (2,"args")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurry","TCons")) (CVar (1,"name"))) (CVar (2,"args")))] [],CRule [CPComb ("FlatCurry","FuncType") [CPVar (3,"_"),CPVar (4,"ran")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","resultType")) (CVar (4,"ran")))] []]), CFunc ("FlatCurryGoodies","rnmAllVars") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurry","Var"))) (CVar (0,"f")))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CVar (1,"lt"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurry","Free"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CVar (2,"branch")))] [CLocalPat (CPVar (1,"lt")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurry","Let"))) (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (3,"n"),CPVar (4,"exp")]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CVar (0,"f")) (CVar (3,"n")))) (CVar (4,"exp")))))) [],CLocalPat (CPVar (2,"branch")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurry","Branch"))) (CApply (CSymbol ("FlatCurryGoodies","updPatArgs")) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))) []]]), CFunc ("FlatCurryGoodies","rnmAllVarsInFunc") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))) (CSymbol ("FlatCurryGoodies","rnmAllVarsInRule")))] []]), CFunc ("FlatCurryGoodies","rnmAllVarsInProg") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","updProgFuncs"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","map"))) (CSymbol ("FlatCurryGoodies","rnmAllVarsInFunc"))))] []]), CFunc ("FlatCurryGoodies","rnmAllVarsInRule") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updRule")) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f")))) (CApply (CSymbol ("FlatCurryGoodies","rnmAllVars")) (CVar (0,"f")))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","rnmAllVarsInTypeExpr") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","updTVars")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurry","TVar"))) (CVar (0,"f"))))] []]), CFunc ("FlatCurryGoodies","rnmProg") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","updProgName")) (CApply (CSymbol ("Prelude","const")) (CVar (0,"name")))) (CApply (CApply (CSymbol ("FlatCurryGoodies","updQNamesInProg")) (CSymbol ("FlatCurryGoodies","rnm"))) (CVar (1,"p"))))] [CLocalFunc (CFunc ("FlatCurryGoodies","rnm") 1 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (2,"mod"),CPVar (3,"n")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"mod"))) (CApply (CSymbol ("FlatCurryGoodies","progName")) (CVar (1,"p"))),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"name"))) (CVar (3,"n"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (2,"mod"))) (CVar (3,"n")))] []]))]]), CFunc ("FlatCurryGoodies","ruleArgs") 0 Public (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trRule")) (CLambda [CPVar (0,"args"),CPVar (1,"_")] (CVar (0,"args")))) (CSymbol ("Prelude","failed")))] []]), CFunc ("FlatCurryGoodies","ruleBody") 0 Public (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Expr") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trRule")) (CLambda [CPVar (0,"_"),CPVar (1,"exp")] (CVar (1,"exp")))) (CSymbol ("Prelude","failed")))] []]), CFunc ("FlatCurryGoodies","ruleExtDecl") 0 Public (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trRule")) (CSymbol ("Prelude","failed"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","tConsArgs") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []])) (CRules CFlex [CRule [CPComb ("FlatCurry","TCons") [CPVar (0,"_"),CPVar (1,"args")]] [(CSymbol ("Prelude","success"),CVar (1,"args"))] []]), CFunc ("FlatCurryGoodies","tConsName") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("FlatCurry","TCons") [CPVar (0,"name"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"name"))] []]), CFunc ("FlatCurryGoodies","tVarIndex") 1 Public (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","TVar") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] []]), CFunc ("FlatCurryGoodies","trBranch") 2 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Pattern") []) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTVar (0,"a")))) (CFuncType (CTCons ("FlatCurry","BranchExpr") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"branch"),CPComb ("FlatCurry","Branch") [CPVar (1,"pat"),CPVar (2,"exp")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"branch")) (CVar (1,"pat"))) (CVar (2,"exp")))] []]), CFunc ("FlatCurryGoodies","trCombType") 5 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CTCons ("FlatCurry","CombType") []) (CTVar (0,"a"))))))) (CRules CFlex [CRule [CPVar (0,"fc"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FlatCurry","FuncCall") []] [(CSymbol ("Prelude","success"),CVar (0,"fc"))] [],CRule [CPVar (4,"_"),CPVar (5,"fpc"),CPVar (6,"_"),CPVar (7,"_"),CPComb ("FlatCurry","FuncPartCall") [CPVar (8,"n")]] [(CSymbol ("Prelude","success"),CApply (CVar (5,"fpc")) (CVar (8,"n")))] [],CRule [CPVar (9,"_"),CPVar (10,"_"),CPVar (11,"cc"),CPVar (12,"_"),CPComb ("FlatCurry","ConsCall") []] [(CSymbol ("Prelude","success"),CVar (11,"cc"))] [],CRule [CPVar (13,"_"),CPVar (14,"_"),CPVar (15,"_"),CPVar (16,"cpc"),CPComb ("FlatCurry","ConsPartCall") [CPVar (17,"n")]] [(CSymbol ("Prelude","success"),CApply (CVar (16,"cpc")) (CVar (17,"n")))] []]), CFunc ("FlatCurryGoodies","trCons") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []]) (CTVar (0,"a")))))) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"cons"),CPComb ("FlatCurry","Cons") [CPVar (1,"name"),CPVar (2,"arity"),CPVar (3,"vis"),CPVar (4,"args")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CVar (0,"cons")) (CVar (1,"name"))) (CVar (2,"arity"))) (CVar (3,"vis"))) (CVar (4,"args")))] []]), CFunc ("FlatCurryGoodies","trExpr") 9 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CFuncType (CTCons ("FlatCurry","Literal") []) (CTVar (0,"a"))) (CFuncType (CFuncType (CTCons ("FlatCurry","CombType") []) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))))) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CFuncType (CTCons ("FlatCurry","CaseType") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CFuncType (CFuncType (CTCons ("FlatCurry","Pattern") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTVar (0,"a"))))))))))) (CRules CFlex [CRule [CPVar (0,"var"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPComb ("FlatCurry","Var") [CPVar (8,"n")]] [(CSymbol ("Prelude","success"),CApply (CVar (0,"var")) (CVar (8,"n")))] [],CRule [CPVar (9,"_"),CPVar (10,"lit"),CPVar (11,"_"),CPVar (12,"_"),CPVar (13,"_"),CPVar (14,"_"),CPVar (15,"_"),CPVar (16,"_"),CPComb ("FlatCurry","Lit") [CPVar (17,"l")]] [(CSymbol ("Prelude","success"),CApply (CVar (10,"lit")) (CVar (17,"l")))] [],CRule [CPVar (18,"var"),CPVar (19,"lit"),CPVar (20,"comb"),CPVar (21,"lt"),CPVar (22,"fr"),CPVar (23,"or"),CPVar (24,"cas"),CPVar (25,"branch"),CPComb ("FlatCurry","Comb") [CPVar (26,"ct"),CPVar (27,"name"),CPVar (28,"args")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CVar (20,"comb")) (CVar (26,"ct"))) (CVar (27,"name"))) (CApply (CApply (CSymbol ("Prelude","map")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CVar (18,"var"))) (CVar (19,"lit"))) (CVar (20,"comb"))) (CVar (21,"lt"))) (CVar (22,"fr"))) (CVar (23,"or"))) (CVar (24,"cas"))) (CVar (25,"branch")))) (CVar (28,"args"))))] [],CRule [CPVar (29,"var"),CPVar (30,"lit"),CPVar (31,"comb"),CPVar (32,"lt"),CPVar (33,"fr"),CPVar (34,"or"),CPVar (35,"cas"),CPVar (36,"branch"),CPComb ("FlatCurry","Let") [CPVar (37,"bs"),CPVar (38,"e")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (32,"lt")) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (40,"n"),CPVar (41,"exp")]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (40,"n"))) (CApply (CVar (39,"f")) (CVar (41,"exp")))))) (CVar (37,"bs")))) (CApply (CVar (39,"f")) (CVar (38,"e"))))] [CLocalPat (CPVar (39,"f")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CVar (29,"var"))) (CVar (30,"lit"))) (CVar (31,"comb"))) (CVar (32,"lt"))) (CVar (33,"fr"))) (CVar (34,"or"))) (CVar (35,"cas"))) (CVar (36,"branch"))) []],CRule [CPVar (42,"var"),CPVar (43,"lit"),CPVar (44,"comb"),CPVar (45,"lt"),CPVar (46,"fr"),CPVar (47,"or"),CPVar (48,"cas"),CPVar (49,"branch"),CPComb ("FlatCurry","Free") [CPVar (50,"vs"),CPVar (51,"e")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (46,"fr")) (CVar (50,"vs"))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CVar (42,"var"))) (CVar (43,"lit"))) (CVar (44,"comb"))) (CVar (45,"lt"))) (CVar (46,"fr"))) (CVar (47,"or"))) (CVar (48,"cas"))) (CVar (49,"branch"))) (CVar (51,"e"))))] [],CRule [CPVar (52,"var"),CPVar (53,"lit"),CPVar (54,"comb"),CPVar (55,"lt"),CPVar (56,"fr"),CPVar (57,"or"),CPVar (58,"cas"),CPVar (59,"branch"),CPComb ("FlatCurry","Or") [CPVar (60,"e1"),CPVar (61,"e2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (57,"or")) (CApply (CVar (62,"f")) (CVar (60,"e1")))) (CApply (CVar (62,"f")) (CVar (61,"e2"))))] [CLocalPat (CPVar (62,"f")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CVar (52,"var"))) (CVar (53,"lit"))) (CVar (54,"comb"))) (CVar (55,"lt"))) (CVar (56,"fr"))) (CVar (57,"or"))) (CVar (58,"cas"))) (CVar (59,"branch"))) []],CRule [CPVar (63,"var"),CPVar (64,"lit"),CPVar (65,"comb"),CPVar (66,"lt"),CPVar (67,"fr"),CPVar (68,"or"),CPVar (69,"cas"),CPVar (70,"branch"),CPComb ("FlatCurry","Case") [CPVar (71,"ct"),CPVar (72,"e"),CPVar (73,"bs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CVar (69,"cas")) (CVar (71,"ct"))) (CApply (CVar (74,"f")) (CVar (72,"e")))) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("FlatCurry","Branch") [CPVar (75,"pat"),CPVar (76,"exp")]] (CApply (CApply (CVar (70,"branch")) (CVar (75,"pat"))) (CApply (CVar (74,"f")) (CVar (76,"exp")))))) (CVar (73,"bs"))))] [CLocalPat (CPVar (74,"f")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CVar (63,"var"))) (CVar (64,"lit"))) (CVar (65,"comb"))) (CVar (66,"lt"))) (CVar (67,"fr"))) (CVar (68,"or"))) (CVar (69,"cas"))) (CVar (70,"branch"))) []]]), CFunc ("FlatCurryGoodies","trFunc") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTVar (0,"a"))))))) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"func"),CPComb ("FlatCurry","Func") [CPVar (1,"name"),CPVar (2,"arity"),CPVar (3,"vis"),CPVar (4,"t"),CPVar (5,"rule")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CVar (0,"func")) (CVar (1,"name"))) (CVar (2,"arity"))) (CVar (3,"vis"))) (CVar (4,"t"))) (CVar (5,"rule")))] []]), CFunc ("FlatCurryGoodies","trOp") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("FlatCurry","Fixity") []) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))))) (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"op"),CPComb ("FlatCurry","Op") [CPVar (1,"name"),CPVar (2,"fix"),CPVar (3,"prec")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CVar (0,"op")) (CVar (1,"name"))) (CVar (2,"fix"))) (CVar (3,"prec")))] []]), CFunc ("FlatCurryGoodies","trPattern") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTVar (0,"a")))) (CFuncType (CFuncType (CTCons ("FlatCurry","Literal") []) (CTVar (0,"a"))) (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"pattern"),CPVar (1,"_"),CPComb ("FlatCurry","Pattern") [CPVar (2,"name"),CPVar (3,"args")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"pattern")) (CVar (2,"name"))) (CVar (3,"args")))] [],CRule [CPVar (4,"_"),CPVar (5,"lpattern"),CPComb ("FlatCurry","LPattern") [CPVar (6,"l")]] [(CSymbol ("Prelude","success"),CApply (CVar (5,"lpattern")) (CVar (6,"l")))] []]), CFunc ("FlatCurryGoodies","trProg") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []]) (CTVar (0,"a"))))))) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"prog"),CPComb ("FlatCurry","Prog") [CPVar (1,"name"),CPVar (2,"imps"),CPVar (3,"types"),CPVar (4,"funcs"),CPVar (5,"ops")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CVar (0,"prog")) (CVar (1,"name"))) (CVar (2,"imps"))) (CVar (3,"types"))) (CVar (4,"funcs"))) (CVar (5,"ops")))] []]), CFunc ("FlatCurryGoodies","trRule") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTVar (0,"a")))) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a"))) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"rule"),CPVar (1,"_"),CPComb ("FlatCurry","Rule") [CPVar (2,"args"),CPVar (3,"exp")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"rule")) (CVar (2,"args"))) (CVar (3,"exp")))] [],CRule [CPVar (4,"_"),CPVar (5,"ext"),CPComb ("FlatCurry","External") [CPVar (6,"s")]] [(CSymbol ("Prelude","success"),CApply (CVar (5,"ext")) (CVar (6,"s")))] []]), CFunc ("FlatCurryGoodies","trType") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []]) (CTVar (0,"a")))))) (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTVar (0,"a")))))) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"typ"),CPVar (1,"_"),CPComb ("FlatCurry","Type") [CPVar (2,"name"),CPVar (3,"vis"),CPVar (4,"params"),CPVar (5,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CVar (0,"typ")) (CVar (2,"name"))) (CVar (3,"vis"))) (CVar (4,"params"))) (CVar (5,"cs")))] [],CRule [CPVar (6,"_"),CPVar (7,"typesyn"),CPComb ("FlatCurry","TypeSyn") [CPVar (8,"name"),CPVar (9,"vis"),CPVar (10,"params"),CPVar (11,"syn")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CVar (7,"typesyn")) (CVar (8,"name"))) (CVar (9,"vis"))) (CVar (10,"params"))) (CVar (11,"syn")))] []]), CFunc ("FlatCurryGoodies","trTypeExpr") 4 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTVar (0,"a")))))) (CRules CFlex [CRule [CPVar (0,"tvar"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("FlatCurry","TVar") [CPVar (3,"n")]] [(CSymbol ("Prelude","success"),CApply (CVar (0,"tvar")) (CVar (3,"n")))] [],CRule [CPVar (4,"tvar"),CPVar (5,"tcons"),CPVar (6,"functype"),CPComb ("FlatCurry","TCons") [CPVar (7,"name"),CPVar (8,"args")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (5,"tcons")) (CVar (7,"name"))) (CApply (CApply (CSymbol ("Prelude","map")) (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CVar (4,"tvar"))) (CVar (5,"tcons"))) (CVar (6,"functype")))) (CVar (8,"args"))))] [],CRule [CPVar (9,"tvar"),CPVar (10,"tcons"),CPVar (11,"functype"),CPComb ("FlatCurry","FuncType") [CPVar (12,"from"),CPVar (13,"to")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (11,"functype")) (CApply (CVar (14,"f")) (CVar (12,"from")))) (CApply (CVar (14,"f")) (CVar (13,"to"))))] [CLocalPat (CPVar (14,"f")) (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CVar (9,"tvar"))) (CVar (10,"tcons"))) (CVar (11,"functype"))) []]]), CFunc ("FlatCurryGoodies","typeConsDecls") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"cs")] (CVar (3,"cs")))) (CSymbol ("Prelude","failed")))] []]), CFunc ("FlatCurryGoodies","typeName") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"name"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")] (CVar (0,"name")))) (CLambda [CPVar (4,"name"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_")] (CVar (4,"name"))))] []]), CFunc ("FlatCurryGoodies","typeParams") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"params"),CPVar (3,"_")] (CVar (2,"params")))) (CLambda [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"params"),CPVar (7,"_")] (CVar (6,"params"))))] []]), CFunc ("FlatCurryGoodies","typeSyn") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeExpr") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CSymbol ("Prelude","failed"))) (CLambda [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"syn")] (CVar (3,"syn"))))] []]), CFunc ("FlatCurryGoodies","typeVisibility") 0 Public (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","Visibility") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CLambda [CPVar (0,"_"),CPVar (1,"vis"),CPVar (2,"_"),CPVar (3,"_")] (CVar (1,"vis")))) (CLambda [CPVar (4,"_"),CPVar (5,"vis"),CPVar (6,"_"),CPVar (7,"_")] (CVar (5,"vis"))))] []]), CFunc ("FlatCurryGoodies","updBranch") 2 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Pattern") [])) (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","BranchExpr") []) (CTCons ("FlatCurry","BranchExpr") [])))) (CRules CFlex [CRule [CPVar (0,"fp"),CPVar (1,"fe")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trBranch")) (CSymbol ("FlatCurryGoodies","branch")))] [CLocalFunc (CFunc ("FlatCurryGoodies","branch") 2 Private (CFuncType (CTCons ("FlatCurry","Pattern") []) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","BranchExpr") []))) (CRules CFlex [CRule [CPVar (2,"pat"),CPVar (3,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurry","Branch")) (CApply (CVar (0,"fp")) (CVar (2,"pat")))) (CApply (CVar (1,"fe")) (CVar (3,"exp"))))] []]))]]), CFunc ("FlatCurryGoodies","updBranchExpr") 0 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","BranchExpr") []) (CTCons ("FlatCurry","BranchExpr") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","updBranch")) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updBranchPattern") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Pattern") [])) (CFuncType (CTCons ("FlatCurry","BranchExpr") []) (CTCons ("FlatCurry","BranchExpr") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","updBranch")) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updBranches") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Pattern") []) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","BranchExpr") []))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"branch")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CVar (0,"branch")))] []]), CFunc ("FlatCurryGoodies","updCases") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","CaseType") []) (CFuncType (CTCons ("FlatCurry","Expr") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","BranchExpr") []]) (CTCons ("FlatCurry","Expr") [])))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"cas")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CVar (0,"cas"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","updCombs") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","CombType") []) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","Expr") []]) (CTCons ("FlatCurry","Expr") [])))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"comb")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CVar (0,"comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","updCons") 4 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CFuncType (CTCons ("FlatCurry","Visibility") []) (CTCons ("FlatCurry","Visibility") [])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []])) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","ConsDecl") [])))))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"fa"),CPVar (2,"fv"),CPVar (3,"fas")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trCons")) (CSymbol ("FlatCurryGoodies","cons")))] [CLocalFunc (CFunc ("FlatCurryGoodies","cons") 4 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []]) (CTCons ("FlatCurry","ConsDecl") []))))) (CRules CFlex [CRule [CPVar (4,"name"),CPVar (5,"arity"),CPVar (6,"vis"),CPVar (7,"args")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurry","Cons")) (CApply (CVar (0,"fn")) (CVar (4,"name")))) (CApply (CVar (1,"fa")) (CVar (5,"arity")))) (CApply (CVar (2,"fv")) (CVar (6,"vis")))) (CApply (CVar (3,"fas")) (CVar (7,"args"))))] []]))]]), CFunc ("FlatCurryGoodies","updConsArgs") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []])) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","ConsDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updCons")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updConsArity") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","ConsDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updCons")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updConsName") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","ConsDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updCons")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updConsVisibility") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Visibility") []) (CTCons ("FlatCurry","Visibility") [])) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","ConsDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updCons")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updFrees") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"fr")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CSymbol ("FlatCurry","Let"))) (CVar (0,"fr"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","updFunc") 5 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CFuncType (CTCons ("FlatCurry","Visibility") []) (CTCons ("FlatCurry","Visibility") [])) (CFuncType (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CFuncType (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))))))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"fa"),CPVar (2,"fv"),CPVar (3,"ft"),CPVar (4,"fr")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trFunc")) (CSymbol ("FlatCurryGoodies","func")))] [CLocalFunc (CFunc ("FlatCurryGoodies","func") 5 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","FuncDecl") [])))))) (CRules CFlex [CRule [CPVar (5,"name"),CPVar (6,"arity"),CPVar (7,"vis"),CPVar (8,"t"),CPVar (9,"rule")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurry","Func")) (CApply (CVar (0,"fn")) (CVar (5,"name")))) (CApply (CVar (1,"fa")) (CVar (6,"arity")))) (CApply (CVar (2,"fv")) (CVar (7,"vis")))) (CApply (CVar (3,"ft")) (CVar (8,"t")))) (CApply (CVar (4,"fr")) (CVar (9,"rule"))))] []]))]]), CFunc ("FlatCurryGoodies","updFuncArgs") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","updFuncRule"))) (CSymbol ("FlatCurryGoodies","updRuleArgs")))] []]), CFunc ("FlatCurryGoodies","updFuncArity") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updFuncBody") 0 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","updFuncRule"))) (CSymbol ("FlatCurryGoodies","updRuleBody")))] []]), CFunc ("FlatCurryGoodies","updFuncName") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updFuncRule") 0 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updFuncType") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updFuncTypes") 0 Public (CFuncType (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") []))) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CSymbol ("FlatCurry","TVar"))) (CSymbol ("FlatCurry","TCons")))] []]), CFunc ("FlatCurryGoodies","updFuncVisibility") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Visibility") []) (CTCons ("FlatCurry","Visibility") [])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updLets") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("FlatCurry","Expr") []]]) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"lt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CVar (0,"lt"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","updLiterals") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Literal") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"lit")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CVar (0,"lit"))) (CSymbol ("FlatCurry","Comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","updOp") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CFuncType (CTCons ("FlatCurry","Fixity") []) (CTCons ("FlatCurry","Fixity") [])) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("FlatCurry","OpDecl") []))))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"ff"),CPVar (2,"fp")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trOp")) (CSymbol ("FlatCurryGoodies","op")))] [CLocalFunc (CFunc ("FlatCurryGoodies","op") 3 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("FlatCurry","Fixity") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("FlatCurry","OpDecl") [])))) (CRules CFlex [CRule [CPVar (3,"name"),CPVar (4,"fix"),CPVar (5,"prec")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurry","Op")) (CApply (CVar (0,"fn")) (CVar (3,"name")))) (CApply (CVar (1,"ff")) (CVar (4,"fix")))) (CApply (CVar (2,"fp")) (CVar (5,"prec"))))] []]))]]), CFunc ("FlatCurryGoodies","updOpFixity") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Fixity") []) (CTCons ("FlatCurry","Fixity") [])) (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("FlatCurry","OpDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updOp")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updOpName") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("FlatCurry","OpDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updOp")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updOpPrecedence") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CFuncType (CTCons ("FlatCurry","OpDecl") []) (CTCons ("FlatCurry","OpDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","updOp")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updOrs") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"or")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CVar (0,"or"))) (CSymbol ("FlatCurry","Case"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","updPatArgs") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Pattern") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updPattern")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updPatCons") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Pattern") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updPattern")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updPatLiteral") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Literal") []) (CTCons ("FlatCurry","Literal") [])) (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Pattern") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updPattern")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f")))] []]), CFunc ("FlatCurryGoodies","updPattern") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CFuncType (CTCons ("FlatCurry","Literal") []) (CTCons ("FlatCurry","Literal") [])) (CFuncType (CTCons ("FlatCurry","Pattern") []) (CTCons ("FlatCurry","Pattern") []))))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"fa"),CPVar (2,"fl")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trPattern")) (CSymbol ("FlatCurryGoodies","pattern"))) (CSymbol ("FlatCurryGoodies","lpattern")))] [CLocalFunc (CFunc ("FlatCurryGoodies","pattern") 2 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("FlatCurry","Pattern") []))) (CRules CFlex [CRule [CPVar (3,"name"),CPVar (4,"args")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurry","Pattern")) (CApply (CVar (0,"fn")) (CVar (3,"name")))) (CApply (CVar (1,"fa")) (CVar (4,"args"))))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","lpattern") 1 Private (CFuncType (CTCons ("FlatCurry","Literal") []) (CTCons ("FlatCurry","Pattern") [])) (CRules CFlex [CRule [CPVar (3,"l")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurry","LPattern")) (CApply (CVar (2,"fl")) (CVar (3,"l"))))] []]))]]), CFunc ("FlatCurryGoodies","updProg") 5 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))))))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"fi"),CPVar (2,"ft"),CPVar (3,"ff"),CPVar (4,"fo")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","trProg")) (CSymbol ("FlatCurryGoodies","prog")))] [CLocalFunc (CFunc ("FlatCurryGoodies","prog") 5 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []]) (CTCons ("FlatCurry","Prog") [])))))) (CRules CFlex [CRule [CPVar (5,"name"),CPVar (6,"imps"),CPVar (7,"types"),CPVar (8,"funcs"),CPVar (9,"ops")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurry","Prog")) (CApply (CVar (0,"fn")) (CVar (5,"name")))) (CApply (CVar (1,"fi")) (CVar (6,"imps")))) (CApply (CVar (2,"ft")) (CVar (7,"types")))) (CApply (CVar (3,"ff")) (CVar (8,"funcs")))) (CApply (CVar (4,"fo")) (CVar (9,"ops"))))] []]))]]), CFunc ("FlatCurryGoodies","updProgExps") 0 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","updProgFuncs"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","map"))) (CSymbol ("FlatCurryGoodies","updFuncBody"))))] []]), CFunc ("FlatCurryGoodies","updProgFuncs") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","FuncDecl") []])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updProg")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updProgImports") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updProg")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updProgName") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updProg")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updProgOps") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","OpDecl") []])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updProg")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updProgTypes") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeDecl") []])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updProg")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updQNames") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CSymbol ("FlatCurry","Var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurryGoodies","comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurry","Branch"))) (CApply (CSymbol ("FlatCurryGoodies","updPatCons")) (CVar (0,"f")))))] [CLocalFunc (CFunc ("FlatCurryGoodies","comb") 3 Private (CFuncType (CTCons ("FlatCurry","CombType") []) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","Expr") []]) (CTCons ("FlatCurry","Expr") [])))) (CRules CFlex [CRule [CPVar (1,"ct"),CPVar (2,"name"),CPVar (3,"args")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurry","Comb")) (CVar (1,"ct"))) (CApply (CVar (0,"f")) (CVar (2,"name")))) (CVar (3,"args")))] []]))]]), CFunc ("FlatCurryGoodies","updQNamesInConsDecl") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","ConsDecl") []) (CTCons ("FlatCurry","ConsDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updCons")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInTypeExpr")) (CVar (0,"f")))))] []]), CFunc ("FlatCurryGoodies","updQNamesInFunc") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","FuncDecl") []) (CTCons ("FlatCurry","FuncDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updFunc")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInTypeExpr")) (CVar (0,"f")))) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInRule")) (CVar (0,"f"))))] []]), CFunc ("FlatCurryGoodies","updQNamesInProg") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","Prog") []) (CTCons ("FlatCurry","Prog") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updProg")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInType")) (CVar (0,"f"))))) (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInFunc")) (CVar (0,"f"))))) (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("FlatCurryGoodies","updOpName")) (CVar (0,"f")))))] []]), CFunc ("FlatCurryGoodies","updQNamesInRule") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FlatCurryGoodies","updRuleBody"))) (CSymbol ("FlatCurryGoodies","updQNames")))] []]), CFunc ("FlatCurryGoodies","updQNamesInType") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updType")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInConsDecl")) (CVar (0,"f"))))) (CApply (CSymbol ("FlatCurryGoodies","updQNamesInTypeExpr")) (CVar (0,"f"))))] []]), CFunc ("FlatCurryGoodies","updQNamesInTypeExpr") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurryGoodies","updTCons")) (CLambda [CPVar (1,"name"),CPVar (2,"args")] (CApply (CApply (CSymbol ("FlatCurry","TCons")) (CApply (CVar (0,"f")) (CVar (1,"name")))) (CVar (2,"args")))))] []]), CFunc ("FlatCurryGoodies","updRule") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") []))))) (CRules CFlex [CRule [CPVar (0,"fa"),CPVar (1,"fe"),CPVar (2,"fs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trRule")) (CSymbol ("FlatCurryGoodies","rule"))) (CSymbol ("FlatCurryGoodies","ext")))] [CLocalFunc (CFunc ("FlatCurryGoodies","rule") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Rule") []))) (CRules CFlex [CRule [CPVar (3,"args"),CPVar (4,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurry","Rule")) (CApply (CVar (0,"fa")) (CVar (3,"args")))) (CApply (CVar (1,"fe")) (CVar (4,"exp"))))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","ext") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("FlatCurry","Rule") [])) (CRules CFlex [CRule [CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FlatCurry","External")) (CApply (CVar (2,"fs")) (CVar (3,"s"))))] []]))]]), CFunc ("FlatCurryGoodies","updRuleArgs") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updRule")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updRuleBody") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updRule")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updRuleExtDecl") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("FlatCurry","Rule") []) (CTCons ("FlatCurry","Rule") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updRule")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f")))] []]), CFunc ("FlatCurryGoodies","updTCons") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","TypeExpr") []]) (CTCons ("FlatCurry","TypeExpr") []))) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") []))) (CRules CFlex [CRule [CPVar (0,"tcons")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CSymbol ("FlatCurry","TVar"))) (CVar (0,"tcons"))) (CSymbol ("FlatCurry","FuncType")))] []]), CFunc ("FlatCurryGoodies","updTVars") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("FlatCurry","TypeExpr") [])) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") []))) (CRules CFlex [CRule [CPVar (0,"tvar")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trTypeExpr")) (CVar (0,"tvar"))) (CSymbol ("FlatCurry","TCons"))) (CSymbol ("FlatCurry","FuncType")))] []]), CFunc ("FlatCurryGoodies","updType") 5 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CFuncType (CTCons ("FlatCurry","Visibility") []) (CTCons ("FlatCurry","Visibility") [])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []])) (CFuncType (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))))))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"fv"),CPVar (2,"fp"),CPVar (3,"fc"),CPVar (4,"fs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FlatCurryGoodies","trType")) (CSymbol ("FlatCurryGoodies","typ"))) (CSymbol ("FlatCurryGoodies","typesyn")))] [CLocalFunc (CFunc ("FlatCurryGoodies","typ") 4 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []]) (CTCons ("FlatCurry","TypeDecl") []))))) (CRules CFlex [CRule [CPVar (5,"name"),CPVar (6,"vis"),CPVar (7,"params"),CPVar (8,"cs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurry","Type")) (CApply (CVar (0,"fn")) (CVar (5,"name")))) (CApply (CVar (1,"fv")) (CVar (6,"vis")))) (CApply (CVar (2,"fp")) (CVar (7,"params")))) (CApply (CVar (3,"fc")) (CVar (8,"cs"))))] []])),CLocalFunc (CFunc ("FlatCurryGoodies","typesyn") 4 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("FlatCurry","Visibility") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeDecl") []))))) (CRules CFlex [CRule [CPVar (5,"name"),CPVar (6,"vis"),CPVar (7,"params"),CPVar (8,"syn")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurry","TypeSyn")) (CApply (CVar (0,"fn")) (CVar (5,"name")))) (CApply (CVar (1,"fv")) (CVar (6,"vis")))) (CApply (CVar (2,"fp")) (CVar (7,"params")))) (CApply (CVar (4,"fs")) (CVar (8,"syn"))))] []]))]]), CFunc ("FlatCurryGoodies","updTypeConsDecls") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []]) (CTCons ("Prelude","[]") [CTCons ("FlatCurry","ConsDecl") []])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updType")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updTypeName") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updType")) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updTypeParams") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updType")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updTypeSynonym") 0 Public (CFuncType (CFuncType (CTCons ("FlatCurry","TypeExpr") []) (CTCons ("FlatCurry","TypeExpr") [])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updType")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updTypeVisibility") 1 Public (CFuncType (CFuncType (CTCons ("FlatCurry","Visibility") []) (CTCons ("FlatCurry","Visibility") [])) (CFuncType (CTCons ("FlatCurry","TypeDecl") []) (CTCons ("FlatCurry","TypeDecl") []))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","updType")) (CSymbol ("Prelude","id"))) (CVar (0,"f"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))] []]), CFunc ("FlatCurryGoodies","updVars") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("FlatCurry","Expr") [])) (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("FlatCurry","Expr") []))) (CRules CFlex [CRule [CPVar (0,"var")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("FlatCurryGoodies","trExpr")) (CVar (0,"var"))) (CSymbol ("FlatCurry","Lit"))) (CSymbol ("FlatCurry","Comb"))) (CSymbol ("FlatCurry","Let"))) (CSymbol ("FlatCurry","Free"))) (CSymbol ("FlatCurry","Or"))) (CSymbol ("FlatCurry","Case"))) (CSymbol ("FlatCurry","Branch")))] []]), CFunc ("FlatCurryGoodies","varNr") 1 Public (CFuncType (CTCons ("FlatCurry","Expr") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FlatCurry","Var") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] []])] []