CurryProg "CSV" ["Prelude","List"] [] [CFunc ("CSV","components") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (1,"delims"),CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CLit (CCharc '"')))) (CApply (CSymbol ("CSV","breakString")) (CVar (3,"cs")))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (5,"e"),CPVar (6,"s")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (7,"x0")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (7,"x0"))) (CVar (1,"delims"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (3,"cs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"e"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (6,"s")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("CSV","components")) (CVar (1,"delims"))) (CApply (CSymbol ("Prelude","tail")) (CVar (6,"s"))))))))] [CLocalFunc (CFunc ("CSV","breakString") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (4,"delimError"))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (5,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CVar (4,"delimError")))] [],CRule [CPComb ("Prelude",":") [CPVar (6,"x"),CPComb ("Prelude",":") [CPVar (7,"y"),CPVar (8,"zs")]]] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"y"))) (CLit (CCharc '"'))),CLetDecl [CLocalPat (CPComb ("Prelude",":") [CPVar (9,"b"),CPVar (10,"bs")]) (CApply (CSymbol ("CSV","breakString")) (CVar (8,"zs"))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (9,"b")))) (CVar (10,"bs")))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (7,"y"))) (CVar (1,"delims"))),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("CSV","components")) (CVar (1,"delims"))) (CVar (8,"zs")))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("Prelude",":") [CPVar (11,"b"),CPVar (12,"bs")]) (CApply (CSymbol ("CSV","breakString")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (7,"y"))) (CVar (8,"zs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (11,"b")))) (CVar (12,"bs"))))] []])),CLocalPat (CPVar (4,"delimError")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'V'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '!'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))) []]]), CFunc ("CSV","readCSV") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CSV","readCSVWithDelims")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]"))))] []]), CFunc ("CSV","readCSVFile") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CSV","readCSVFileWithDelims")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]"))))] []]), CFunc ("CSV","readCSVFileWithDelims") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]]))) (CRules CFlex [CRule [CPVar (0,"delims"),CPVar (1,"fname")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"contents")) (CApply (CSymbol ("Prelude","readFile")) (CVar (1,"fname"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("CSV","readCSVWithDelims")) (CVar (0,"delims"))) (CVar (2,"contents"))))])] []]), CFunc ("CSV","readCSVWithDelims") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]))) (CRules CFlex [CRule [CPVar (0,"delims"),CPVar (1,"str")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("CSV","components")) (CVar (0,"delims")))) (CApply (CSymbol ("Prelude","lines")) (CVar (1,"str"))))] []]), CFunc ("CSV","showCSV") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"rows")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("CSV","showCSVLine"))) (CVar (0,"rows")))] []]), CFunc ("CSV","showCSVLine") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"row")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("CSV","convert"))) (CVar (0,"row")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("CSV","convert") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","any")) (CLambda [CPVar (2,"c")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (2,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]"))))))))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPVar (3,"c")] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"c"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CSymbol ("Prelude","[]"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CSymbol ("Prelude","[]")))))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CSymbol ("Prelude","[]")))))) (CVar (1,"s")))] []]))]]), CFunc ("CSV","writeCSVFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fname"),CPVar (1,"rows")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"fname"))) (CApply (CSymbol ("CSV","showCSV")) (CVar (1,"rows"))))] []])] []