CurryProg "List" ["Prelude","Maybe"] [] [CFunc ("List","\\\\") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("Prelude","flip")) (CSymbol ("List","delete")))) (CVar (0,"xs"))) (CVar (1,"ys")))] []]), CFunc ("List","delete") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"x"),CPComb ("Prelude",":") [CPVar (2,"y"),CPVar (3,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"x"))) (CVar (2,"y")))) (CVar (3,"ys"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"y"))) (CApply (CApply (CSymbol ("List","delete")) (CVar (1,"x"))) (CVar (3,"ys")))))] []]), CFunc ("List","elemIndex") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","findIndex")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]), CFunc ("List","elemIndices") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","findIndices")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]), CFunc ("List","find") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","listToMaybe"))) (CApply (CSymbol ("Prelude","filter")) (CVar (0,"p"))))] []]), CFunc ("List","findIndex") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","listToMaybe"))) (CApply (CSymbol ("List","findIndices")) (CVar (0,"p"))))] []]), CFunc ("List","findIndices") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CListComp (CVar (3,"i")) [CSPat (CPComb ("Prelude","(,)") [CPVar (2,"x"),CPVar (3,"i")]) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (1,"xs"))) (CApply (CSymbol ("Prelude","enumFrom")) (CLit (CIntc 0)))),CSExpr (CApply (CVar (0,"p")) (CVar (2,"x")))])] []]), CFunc ("List","group") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","groupBy")) (CSymbol ("Prelude","==")))] []]), CFunc ("List","groupBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"eq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"ys")))) (CApply (CApply (CSymbol ("List","groupBy")) (CVar (1,"eq"))) (CVar (5,"zs"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPVar (5,"zs")]) (CApply (CApply (CSymbol ("Prelude","span")) (CApply (CVar (1,"eq")) (CVar (2,"x")))) (CVar (3,"xs"))) []]]), CFunc ("List","insertBy") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"x"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (2,"le"),CPVar (3,"x"),CPComb ("Prelude",":") [CPVar (4,"y"),CPVar (5,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (3,"x"))) (CVar (4,"y")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CVar (5,"ys"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CApply (CApply (CApply (CSymbol ("List","insertBy")) (CVar (2,"le"))) (CVar (3,"x"))) (CVar (5,"ys")))))] []]), CFunc ("List","intersect") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (1,"x"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("List","intersect")) (CVar (2,"xs"))) (CVar (3,"ys"))))) (CApply (CApply (CSymbol ("List","intersect")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]), CFunc ("List","intersperse") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (3,"sep"),CPComb ("Prelude",":") [CPVar (4,"x1"),CPComb ("Prelude",":") [CPVar (5,"x2"),CPVar (6,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"sep"))) (CApply (CApply (CSymbol ("List","intersperse")) (CVar (3,"sep"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x2"))) (CVar (6,"xs"))))))] []]), CFunc ("List","isPrefixOf") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x"))) (CVar (5,"y")))) (CApply (CApply (CSymbol ("List","isPrefixOf")) (CVar (4,"xs"))) (CVar (6,"ys"))))] []]), CFunc ("List","last") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","last")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]), CFunc ("List","nub") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("List","nubBy")) (CSymbol ("Prelude","=="))) (CVar (0,"xs")))] []]), CFunc ("List","nubBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"eq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("List","nubBy")) (CVar (1,"eq"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (4,"y")] (CApply (CSymbol ("Prelude","not")) (CApply (CApply (CVar (1,"eq")) (CVar (2,"x"))) (CVar (4,"y")))))) (CVar (3,"xs")))))] []]), CFunc ("List","partition") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("List","select"))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CVar (1,"xs")))] [CLocalFunc (CFunc ("List","select") 2 Private (CFuncType (CTVar (1,"_146")) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"_146")],CTCons ("Prelude","[]") [CTVar (1,"_146")]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"_146")],CTCons ("Prelude","[]") [CTVar (1,"_146")]]))) (CRules CFlex [CRule [CPVar (2,"x"),CPComb ("Prelude","(,)") [CPVar (3,"ts"),CPVar (4,"fs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (0,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"ts")))) (CVar (4,"fs")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"ts"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"fs")))))] []]))]]), CFunc ("List","replace") 3 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (2,"x"),CPVar (3,"p"),CPComb ("Prelude",":") [CPVar (4,"y"),CPVar (5,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"p"))) (CLit (CIntc 0)),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (5,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CApply (CApply (CApply (CSymbol ("List","replace")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"p"))) (CLit (CIntc 1)))) (CVar (5,"ys"))))] []]), CFunc ("List","sortBy") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CApply (CSymbol ("List","insertBy")) (CVar (0,"le")))) (CSymbol ("Prelude","[]")))] []]), CFunc ("List","transpose") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","[]") [],CPVar (0,"xss")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","transpose")) (CVar (0,"xss")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"xss")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","head"))) (CVar (3,"xss"))))) (CApply (CSymbol ("List","transpose")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"xs"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","tail"))) (CVar (3,"xss"))))))] []]), CFunc ("List","union") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (1,"x"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("List","union")) (CVar (2,"xs"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("List","union")) (CVar (2,"xs"))) (CVar (3,"ys")))))] []])] [COp ("List","\\\\") CInfixOp 5]