CurryProg "FileGoodies" ["Prelude","Directory","List"] [] [CFunc ("FileGoodies","baseName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","snd")) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (0,"name"))))] []]), CFunc ("FileGoodies","dirName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","fst")) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (0,"name"))))] []]), CFunc ("FileGoodies","fileSuffix") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","snd"))) (CSymbol ("FileGoodies","splitBaseName")))] []]), CFunc ("FileGoodies","findFileInPath") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FileGoodies","lookupFileInPath"))] []]), CFunc ("FileGoodies","getFileInPath") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"suffixes"),CPVar (2,"path")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"mbfile")) (CApply (CApply (CApply (CSymbol ("FileGoodies","lookupFileInPath")) (CVar (0,"file"))) (CVar (1,"suffixes"))) (CVar (2,"path"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","error"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"file"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (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 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","pathSeparatorChar"))) (CSymbol ("Prelude","[]")))) (CVar (2,"path"))))))))) (CSymbol ("Prelude","return"))) (CVar (3,"mbfile")))])] []]), CFunc ("FileGoodies","isAbsolute") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("FileGoodies","separatorChar")))] []]), CFunc ("FileGoodies","lookupFileInPath") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"suffixes"),CPVar (2,"path")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FileGoodies","isAbsolute")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CVar (0,"file"))) (CVar (1,"suffixes")))) (CApply (CSymbol ("FileGoodies","lookupFirstFile")) (CVar (2,"path"))))] [CLocalFunc (CFunc ("FileGoodies","lookupFirstFile") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","Nothing")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"dir"),CPVar (4,"dirs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (5,"mbfile")) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"dir"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","separatorChar"))) (CVar (0,"file"))))) (CVar (1,"suffixes"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CSymbol ("FileGoodies","lookupFirstFile")) (CVar (4,"dirs")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CSymbol ("Prelude","Just")))) (CVar (5,"mbfile")))])] []])),CLocalFunc (CFunc ("FileGoodies","lookupFirstFileWithSuffix") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","Nothing")))] [],CRule [CPVar (4,"f"),CPComb ("Prelude",":") [CPVar (5,"suf"),CPVar (6,"sufs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSLet [CLocalPat (CPVar (7,"fsuf")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"f"))) (CVar (5,"suf"))) []],CSPat (CPVar (8,"exfile")) (CApply (CSymbol ("Directory","doesFileExist")) (CVar (7,"fsuf"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (8,"exfile"))) (CApply (CSymbol ("Prelude","return")) (CApply (CSymbol ("Prelude","Just")) (CVar (7,"fsuf"))))) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CVar (4,"f"))) (CVar (6,"sufs"))))])] []]))]]), CFunc ("FileGoodies","pathSeparatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc ':'))] []]), CFunc ("FileGoodies","replaceFileName") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") []))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"dir"),CPVar (3,"fn")]) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (1,"s"))) []] (CCase (CVar (2,"dir")) [CBranch (CPComb ("Prelude",":") [CPLit (CCharc '.'),CPComb ("Prelude","[]") []]) (CApply (CVar (0,"f")) (CVar (3,"fn"))),CBranch (CPVar (4,"_")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"dir"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","separatorChar"))) (CApply (CVar (0,"f")) (CVar (3,"fn")))))]))] []]), CFunc ("FileGoodies","separatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc '/'))] []]), CFunc ("FileGoodies","splitBaseName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"rsuffix"),CPVar (2,"rbase")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CSymbol ("FileGoodies","suffixSeparatorChar"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"name")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","null")) (CVar (2,"rbase")))) (CApply (CApply (CSymbol ("Prelude","elem")) (CSymbol ("FileGoodies","separatorChar"))) (CVar (1,"rsuffix"))))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"name"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","reverse")) (CApply (CSymbol ("Prelude","tail")) (CVar (2,"rbase"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rsuffix"))))))] []]), CFunc ("FileGoodies","splitDirectoryBaseName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"rbase"),CPVar (2,"rdir")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CSymbol ("FileGoodies","separatorChar"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"name")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (2,"rdir")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rbase"))))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","reverse")) (CApply (CSymbol ("Prelude","tail")) (CVar (2,"rdir"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rbase"))))))] []]), CFunc ("FileGoodies","splitPath") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"ys"),CPVar (3,"zs")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (4,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"x0"))) (CSymbol ("FileGoodies","pathSeparatorChar"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (1,"xs")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"zs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"ys"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"ys"))) (CApply (CSymbol ("FileGoodies","splitPath")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"zs")))))))] []]), CFunc ("FileGoodies","stripSuffix") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CSymbol ("FileGoodies","splitBaseName")))] []]), CFunc ("FileGoodies","suffixSeparatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc '.'))] []])] []