CurryProg "Sort" ["Prelude","Char"] [] [CFunc ("Sort","cmpChar") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c1"))) (CVar (1,"c2")))) (CSymbol ("Prelude","EQ"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c1")))) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c2"))))) (CSymbol ("Prelude","LT"))) (CSymbol ("Prelude","GT"))))] []]), CFunc ("Sort","cmpList") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Ordering") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Ordering") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPVar (4,"_"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPVar (7,"cmp"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")],CPComb ("Prelude",":") [CPVar (10,"y"),CPVar (11,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CVar (7,"cmp")) (CVar (8,"x"))) (CVar (10,"y")))) (CSymbol ("Prelude","EQ")),CApply (CApply (CApply (CSymbol ("Sort","cmpList")) (CVar (7,"cmp"))) (CVar (9,"xs"))) (CVar (11,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (7,"cmp")) (CVar (8,"x"))) (CVar (10,"y")))] []]), CFunc ("Sort","cmpString") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","cmpList")) (CSymbol ("Sort","cmpChar")))] []]), CFunc ("Sort","leqChar") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c1")))) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c2"))))] []]), CFunc ("Sort","leqCharIgnoreCase") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Char","toUpper")) (CVar (0,"c1"))))) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Char","toUpper")) (CVar (1,"c2")))))] []]), CFunc ("Sort","leqLexGerman") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (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")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"x'"))) (CVar (8,"y'")),CApply (CApply (CSymbol ("Sort","leqLexGerman")) (CVar (4,"xs"))) (CVar (6,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","<")) (CVar (7,"x'"))) (CVar (8,"y'")))] [CLocalPat (CPVar (7,"x'")) (CApply (CSymbol ("Sort","glex")) (CApply (CSymbol ("Prelude","ord")) (CVar (3,"x")))) [],CLocalPat (CPVar (8,"y'")) (CApply (CSymbol ("Sort","glex")) (CApply (CSymbol ("Prelude","ord")) (CVar (5,"y")))) [],CLocalFunc (CFunc ("Sort","glex") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (9,"o")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (9,"o"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (9,"o"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'Z')))),CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"o"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a')))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 228)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 246)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'o'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 252)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'u'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 196)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 214)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'o'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 220)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'u'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 223)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 's'))),(CSymbol ("Prelude","otherwise"),CVar (9,"o"))] []]))]]), CFunc ("Sort","leqList") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (5,"leq"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CVar (8,"y")),CApply (CApply (CApply (CSymbol ("Sort","leqList")) (CVar (5,"leq"))) (CVar (7,"xs"))) (CVar (9,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (5,"leq")) (CVar (6,"x"))) (CVar (8,"y")))] []]), CFunc ("Sort","leqString") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqChar")))] []]), CFunc ("Sort","leqStringIgnoreCase") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqCharIgnoreCase")))] []]), CFunc ("Sort","merge") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CVar (1,"ys"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x"))) (CVar (4,"xs")))] [],CRule [CPVar (5,"leq"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CApply (CApply (CVar (5,"leq")) (CVar (6,"x"))) (CVar (8,"y")),CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (5,"leq"))) (CVar (7,"xs"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (8,"y"))) (CVar (9,"ys"))))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (8,"y"))) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (5,"leq"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (7,"xs")))) (CVar (9,"ys"))))] []]), CFunc ("Sort","mergeSort") 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,"leq"),CPVar (1,"zs")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeLists")) (CApply (CSymbol ("Sort","genRuns")) (CVar (1,"zs"))))] [CLocalFunc (CFunc ("Sort","genRuns") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CApply (CApply (CVar (0,"leq")) (CVar (3,"x1"))) (CVar (4,"x2")),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Sort","genRuns")) (CVar (5,"xs")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x1"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Sort","genRuns")) (CVar (5,"xs"))))] []])),CLocalFunc (CFunc ("Sort","mergeLists") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (2,"x"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeLists")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (0,"leq"))) (CVar (3,"x1"))) (CVar (4,"x2")))) (CApply (CSymbol ("Sort","mergePairs")) (CVar (5,"xs")))))] []])),CLocalFunc (CFunc ("Sort","mergePairs") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (0,"leq"))) (CVar (3,"x1"))) (CVar (4,"x2")))) (CApply (CSymbol ("Sort","mergePairs")) (CVar (5,"xs"))))] []]))]]), CFunc ("Sort","quickSort") 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,"leq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"r")]) (CApply (CApply (CSymbol ("Sort","split")) (CVar (2,"x"))) (CVar (3,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Sort","quickSort")) (CVar (1,"leq"))) (CVar (4,"l")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Sort","quickSort")) (CVar (1,"leq"))) (CVar (5,"r"))))))] [CLocalFunc (CFunc ("Sort","split") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (4,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (5,"e"),CPComb ("Prelude",":") [CPVar (6,"y"),CPVar (7,"ys")]] [(CApply (CApply (CVar (1,"leq")) (CVar (6,"y"))) (CVar (5,"e")),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"y"))) (CVar (8,"l")))) (CVar (9,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (8,"l"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"y"))) (CVar (9,"r"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (8,"l"),CPVar (9,"r")]) (CApply (CApply (CSymbol ("Sort","split")) (CVar (5,"e"))) (CVar (7,"ys"))) []]]))]])] []