Prog "FileGoodies" ["Directory","List","Prelude"] [] [Func ("FileGoodies","separatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Lit (Charc '/'))),Func ("FileGoodies","pathSeparatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Lit (Charc ':'))),Func ("FileGoodies","suffixSeparatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Lit (Charc '.'))),Func ("FileGoodies","isAbsolute") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Prelude","==") [Var 2,Comb FuncCall ("FileGoodies","separatorChar") []])])),Func ("FileGoodies","dirName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","fst") [Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 1]])),Func ("FileGoodies","baseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","snd") [Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 1]])),Func ("FileGoodies","splitDirectoryBaseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb FuncCall ("FileGoodies","separatorChar") []]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 1]])] (Let [(3,Comb FuncCall ("FileGoodies","splitDirectoryBaseName._#selFP3#rbase") [Var 2])] (Let [(4,Comb FuncCall ("FileGoodies","splitDirectoryBaseName._#selFP4#rdir") [Var 2])] (Case Rigid (Comb FuncCall ("Prelude","null") [Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Lit (Charc '.'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 3]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","tail") [Var 4]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 3]])]))))),Func ("FileGoodies","splitDirectoryBaseName._#selFP3#rbase") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("FileGoodies","splitDirectoryBaseName._#selFP4#rdir") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("FileGoodies","stripSuffix") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","fst") [],Comb (FuncPartCall 1) ("FileGoodies","splitBaseName") []])),Func ("FileGoodies","fileSuffix") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","snd") [],Comb (FuncPartCall 1) ("FileGoodies","splitBaseName") []])),Func ("FileGoodies","splitBaseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb FuncCall ("FileGoodies","suffixSeparatorChar") []]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 1]])] (Let [(3,Comb FuncCall ("FileGoodies","splitBaseName._#selFP6#rsuffix") [Var 2])] (Let [(4,Comb FuncCall ("FileGoodies","splitBaseName._#selFP7#rbase") [Var 2])] (Case Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","null") [Var 4],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Comb FuncCall ("FileGoodies","separatorChar") []],Var 3]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Var 1,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","tail") [Var 4]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 3]])]))))),Func ("FileGoodies","splitBaseName._#selFP6#rsuffix") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("FileGoodies","splitBaseName._#selFP7#rbase") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("FileGoodies","splitPath") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Let [(4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb FuncCall ("FileGoodies","pathSeparatorChar") []]],Comb ConsCall ("Prelude",":") [Var 2,Var 3]])] (Let [(5,Comb FuncCall ("FileGoodies","splitPath._#selFP9#ys") [Var 4])] (Let [(6,Comb FuncCall ("FileGoodies","splitPath._#selFP10#zs") [Var 4])] (Case Rigid (Comb FuncCall ("Prelude","null") [Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("FileGoodies","splitPath") [Comb FuncCall ("Prelude","tail") [Var 6]]])]))))])),Func ("FileGoodies","splitPath._#selFP9#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("FileGoodies","splitPath._#selFP10#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("FileGoodies","findFileInPath") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [] (Comb (FuncPartCall 3) ("FileGoodies","lookupFileInPath") [])),Func ("FileGoodies","lookupFileInPath") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [1,2,3] (Case Rigid (Comb FuncCall ("FileGoodies","isAbsolute") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") [Var 1,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFile.36") [Var 1,Var 2,Var 3])])),Func ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Nothing") []]),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","++") [Var 1,Var 3])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","doesFileExist") [Var 5],Comb (FuncPartCall 1) ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3") [Var 1,Var 5,Var 4]]))])),Func ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))))) (Rule [1,2,3,4] (Case Rigid (Var 4) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Just") [Var 2]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") [Var 1,Var 3])])),Func ("FileGoodies","lookupFileInPath.lookupFirstFile.36") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [1,2,3] (Case Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Nothing") []]),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") [Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Var 1]],Var 2],Comb (FuncPartCall 1) ("FileGoodies","lookupFileInPath.lookupFirstFile.36._#lambda2") [Var 5,Var 1,Var 2]])])),Func ("FileGoodies","lookupFileInPath.lookupFirstFile.36._#lambda2") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFile.36") [Var 2,Var 3,Var 1],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","Just") []],Var 4])),Func ("FileGoodies","getFileInPath") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FileGoodies","lookupFileInPath") [Var 1,Var 2,Var 3],Comb (FuncPartCall 1) ("FileGoodies","getFileInPath._#lambda4") [Var 1,Var 3]])),Func ("FileGoodies","getFileInPath._#lambda4") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","error") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc 'F'),Comb ConsCall ("Prelude",":") [Lit (Charc 'i'),Comb ConsCall ("Prelude",":") [Lit (Charc 'l'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc 'n'),Comb ConsCall ("Prelude",":") [Lit (Charc 'o'),Comb ConsCall ("Prelude",":") [Lit (Charc 't'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc 'f'),Comb ConsCall ("Prelude",":") [Lit (Charc 'o'),Comb ConsCall ("Prelude",":") [Lit (Charc 'u'),Comb ConsCall ("Prelude",":") [Lit (Charc 'n'),Comb ConsCall ("Prelude",":") [Lit (Charc 'd'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc 'i'),Comb ConsCall ("Prelude",":") [Lit (Charc 'n'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude",":") [Lit (Charc 'p'),Comb ConsCall ("Prelude",":") [Lit (Charc 'a'),Comb ConsCall ("Prelude",":") [Lit (Charc 't'),Comb ConsCall ("Prelude",":") [Lit (Charc 'h'),Comb ConsCall ("Prelude",":") [Lit (Charc ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","concat") [Comb FuncCall ("List","intersperse") [Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","pathSeparatorChar") [],Comb ConsCall ("Prelude","[]") []],Var 2]]]]]],Comb (FuncPartCall 1) ("Prelude","return") [],Var 3])),Func ("FileGoodies","replaceFileName") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 2])] (Let [(4,Comb FuncCall ("FileGoodies","replaceFileName._#selFP12#dir") [Var 3])] (Let [(5,Comb FuncCall ("FileGoodies","replaceFileName._#selFP13#fn") [Var 3])] (Case Rigid (Var 4) [Branch (Pattern ("Prelude",":") [6,7]) (Case Rigid (Comb FuncCall ("Prelude","==") [Var 6,Lit (Charc '.')]) [Branch (Pattern ("Prelude","True") []) (Case Rigid (Var 7) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","apply") [Var 1,Var 5]),Branch (Pattern ("Prelude",":") [8,9]) (Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb FuncCall ("Prelude","apply") [Var 1,Var 5]]])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb FuncCall ("Prelude","apply") [Var 1,Var 5]]])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb FuncCall ("Prelude","apply") [Var 1,Var 5]]])]))))),Func ("FileGoodies","replaceFileName._#selFP12#dir") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("FileGoodies","replaceFileName._#selFP13#fn") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)]))] []