Module "FlatCurryRead" (Just (Exporting (9,21) [(Export (QualIdent Nothing (Ident "readFlatCurryWithImports" 0))),(Export (QualIdent Nothing (Ident "readFlatCurryWithImportsInPath" 0))),(Export (QualIdent Nothing (Ident "readFlatCurryIntWithImports" 0))),(Export (QualIdent Nothing (Ident "readFlatCurryIntWithImportsInPath" 0)))])) [(ImportDecl (1,1) "Prelude" False Nothing Nothing) ,(ImportDecl (13,1) "FlatCurry" False Nothing Nothing) ,(ImportDecl (14,1) "Directory" False Nothing Nothing) ,(ImportDecl (15,1) "FileGoodies" False Nothing Nothing) ,(ImportDecl (16,1) "System" False Nothing Nothing) ,(ImportDecl (17,1) "Distribution" False Nothing Nothing) ,(ImportDecl (18,1) "List" False Nothing (Just (Importing (18,12) [(Import (Ident "intersperse" 0))]))) ,(ImportDecl (19,1) "Time" False Nothing (Just (Importing (19,12) [(Import (Ident "clockTimeToInt" 0))]))) ,(TypeSig (24,1) [(Ident "readFlatCurryWithImports" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []))]))) ,(FunctionDecl (25,1) (Ident "readFlatCurryWithImports" 0) [(Equation (25,1) (FunLhs (Ident "readFlatCurryWithImports" 0) [(VariablePattern (Ident "modname" 2))]) (SimpleRhs (25,36) (Do [(StmtBind (VariablePattern (Ident "loadpath" 4)) (Apply (Variable (QualIdent (Just "Distribution") (Ident "getLoadPathForFile" 0))) (Paren (Apply (Variable (QualIdent (Just "FlatCurry") (Ident "flatCurryFileName" 0))) (Variable (QualIdent Nothing (Ident "modname" 2)))))))] (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "readFlatCurryFileWithImports" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 4)))) (Paren (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "baseName" 0))) (Variable (QualIdent Nothing (Ident "modname" 2)))))) (List [(Literal (String ".fcy"))]))) []))]) ,(TypeSig (32,1) [(Ident "readFlatCurryWithImportsInPath" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []))])))) ,(FunctionDecl (33,1) (Ident "readFlatCurryWithImportsInPath" 0) [(Equation (33,1) (FunLhs (Ident "readFlatCurryWithImportsInPath" 0) [(VariablePattern (Ident "loadpath" 5)),(VariablePattern (Ident "modname" 5))]) (SimpleRhs (34,3) (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "readFlatCurryFileWithImports" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 5)))) (Variable (QualIdent Nothing (Ident "modname" 5)))) (List [(Literal (String ".fcy"))])) []))]) ,(TypeSig (40,1) [(Ident "readFlatCurryIntWithImports" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []))]))) ,(FunctionDecl (41,1) (Ident "readFlatCurryIntWithImports" 0) [(Equation (41,1) (FunLhs (Ident "readFlatCurryIntWithImports" 0) [(VariablePattern (Ident "modname" 7))]) (SimpleRhs (41,39) (Do [(StmtBind (VariablePattern (Ident "loadpath" 9)) (Apply (Variable (QualIdent (Just "Distribution") (Ident "getLoadPathForFile" 0))) (Paren (Apply (Variable (QualIdent (Just "FlatCurry") (Ident "flatCurryIntName" 0))) (Variable (QualIdent Nothing (Ident "modname" 7)))))))] (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "readFlatCurryFileWithImports" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 9)))) (Paren (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "baseName" 0))) (Variable (QualIdent Nothing (Ident "modname" 7)))))) (List [(Literal (String ".fint")),(Literal (String ".fcy"))]))) []))]) ,(TypeSig (50,1) [(Ident "readFlatCurryIntWithImportsInPath" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []))])))) ,(FunctionDecl (51,1) (Ident "readFlatCurryIntWithImportsInPath" 0) [(Equation (51,1) (FunLhs (Ident "readFlatCurryIntWithImportsInPath" 0) [(VariablePattern (Ident "loadpath" 10)),(VariablePattern (Ident "modname" 10))]) (SimpleRhs (52,3) (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "readFlatCurryFileWithImports" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 10)))) (Variable (QualIdent Nothing (Ident "modname" 10)))) (List [(Literal (String ".fint")),(Literal (String ".fcy"))])) []))]) ,(TypeSig (57,1) [(Ident "readFlatCurryFileWithImports" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []))]))))) ,(FunctionDecl (58,1) (Ident "readFlatCurryFileWithImports" 0) [(Equation (58,1) (FunLhs (Ident "readFlatCurryFileWithImports" 0) [(VariablePattern (Ident "loadpath" 12)),(VariablePattern (Ident "mod" 12)),(VariablePattern (Ident "suffixes" 12))]) (SimpleRhs (58,54) (Do [(StmtExpr (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Literal (String "Reading FlatCurry files ")))),(StmtBind (VariablePattern (Ident "mbaimps" 14)) (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "tryReadFlatCurryFileWithImports" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 12)))) (Variable (QualIdent Nothing (Ident "mod" 12)))) (Variable (QualIdent Nothing (Ident "suffixes" 12)))))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "parseFlatCurryFileWithImports" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 12)))) (Variable (QualIdent Nothing (Ident "mod" 12)))) (Variable (QualIdent Nothing (Ident "suffixes" 12)))))) (Variable (QualIdent (Just "Prelude") (Ident "return" 0)))) (Variable (QualIdent Nothing (Ident "mbaimps" 14))))) []))]) ,(FunctionDecl (65,1) (Ident "parseFlatCurryFileWithImports" 0) [(Equation (65,1) (FunLhs (Ident "parseFlatCurryFileWithImports" 0) [(VariablePattern (Ident "loadpath" 15)),(VariablePattern (Ident "modname" 15)),(VariablePattern (Ident "suffixes" 15))]) (SimpleRhs (65,59) (Do [(StmtExpr (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String ">>>>> FlatCurry files not up-to-date, parsing module \"")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "modname" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\"...")))))),(StmtExpr (Apply (Apply (Apply (Variable (QualIdent (Just "Distribution") (Ident "callFrontendWithParams" 0))) (Constructor (QualIdent (Just "Distribution") (Ident "FCY" 0)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Distribution") (Ident "setQuiet" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Distribution") (Ident "setFullPath" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 15)))) (Variable (QualIdent (Just "Distribution") (Ident "defaultParams" 0)))))))) (Variable (QualIdent Nothing (Ident "modname" 15))))),(StmtExpr (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Literal (String "Reading FlatCurry files "))))] (Apply (Apply (Variable (QualIdent Nothing (Ident "collectMods" 16))) (List [(Variable (QualIdent Nothing (Ident "modname" 15)))])) (List []))) [(FunctionDecl (72,3) (Ident "collectMods" 16) [(Equation (72,3) (FunLhs (Ident "collectMods" 16) [(ListPattern []),(VariablePattern (Ident "_" 18))]) (SimpleRhs (72,22) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "done"))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (List []))) [])),(Equation (73,3) (FunLhs (Ident "collectMods" 16) [(ParenPattern (InfixPattern (VariablePattern (Ident "mod" 20)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "mods" 20)))),(VariablePattern (Ident "implist" 20))]) (SimpleRhs (74,5) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "mod" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "implist" 20)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "collectMods" 16))) (Variable (QualIdent Nothing (Ident "mods" 20)))) (Variable (QualIdent Nothing (Ident "implist" 20)))) (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "lookupFileInPath" 0))) (Variable (QualIdent Nothing (Ident "mod" 20)))) (Variable (QualIdent Nothing (Ident "suffixes" 15)))) (Variable (QualIdent Nothing (Ident "loadpath" 15)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "mbfname" 22))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String "FlatCurry file for module \"")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "mod" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\" not found!"))))))) (Paren (Lambda [(VariablePattern (Ident "filename" 23))] (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "filename" 23))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String " "))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "FlatCurry") (Ident "readFlatCurryFile" 0))) (Variable (QualIdent Nothing (Ident "filename" 23))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "prog" 24))] (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "collectMods" 16))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mods" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "importsOf" 0))) (Variable (QualIdent Nothing (Ident "prog" 24))))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mod" 20))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "implist" 20)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "results" 25))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "prog" 24))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "results" 25))))))))))))) (Variable (QualIdent Nothing (Ident "mbfname" 22))))))) []))])]))]) ,(TypeSig (90,1) [(Ident "tryReadFlatCurryFileWithImports" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []))])]))))) ,(FunctionDecl (91,1) (Ident "tryReadFlatCurryFileWithImports" 0) [(Equation (91,1) (FunLhs (Ident "tryReadFlatCurryFileWithImports" 0) [(VariablePattern (Ident "loadpath" 26)),(VariablePattern (Ident "modname" 26)),(VariablePattern (Ident "suffixes" 26))]) (SimpleRhs (92,3) (Apply (Apply (Variable (QualIdent Nothing (Ident "collectMods" 27))) (List [(Variable (QualIdent Nothing (Ident "modname" 26)))])) (List [])) [(FunctionDecl (94,3) (Ident "collectMods" 27) [(Equation (94,3) (FunLhs (Ident "collectMods" 27) [(ListPattern []),(VariablePattern (Ident "_" 29))]) (SimpleRhs (94,22) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "done"))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (List []))))) [])),(Equation (95,3) (FunLhs (Ident "collectMods" 27) [(ParenPattern (InfixPattern (VariablePattern (Ident "mod" 31)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "mods" 31)))),(VariablePattern (Ident "implist" 31))]) (SimpleRhs (96,5) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "mod" 31))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "implist" 31)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "collectMods" 27))) (Variable (QualIdent Nothing (Ident "mods" 31)))) (Variable (QualIdent Nothing (Ident "implist" 31)))) (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "readFlatCurryIfPossible" 0))) (Variable (QualIdent Nothing (Ident "loadpath" 26)))) (Variable (QualIdent Nothing (Ident "mod" 31)))) (Variable (QualIdent Nothing (Ident "suffixes" 26)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "mbprog" 33))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))))) (Paren (Lambda [(VariablePattern (Ident "prog" 34))] (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "collectMods" 27))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mods" 31))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "FlatCurryRead") (Ident "importsOf" 0))) (Variable (QualIdent Nothing (Ident "prog" 34))))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mod" 31))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "implist" 31)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "mbresults" 35))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) (Paren (Lambda [(VariablePattern (Ident "results" 36))] (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "prog" 34))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "results" 36))))))))) (Variable (QualIdent Nothing (Ident "mbresults" 35))))))))))) (Variable (QualIdent Nothing (Ident "mbprog" 33))))))) []))])]))]) ,(TypeSig (107,1) [(Ident "importsOf" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prog" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))) ,(FunctionDecl (108,1) (Ident "importsOf" 0) [(Equation (108,1) (FunLhs (Ident "importsOf" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FlatCurry") (Ident "Prog" 0)) [(VariablePattern (Ident "_" 38)),(VariablePattern (Ident "imps" 37)),(VariablePattern (Ident "_" 39)),(VariablePattern (Ident "_" 40)),(VariablePattern (Ident "_" 41))]))]) (SimpleRhs (108,33) (Variable (QualIdent Nothing (Ident "imps" 37))) []))]) ,(TypeSig (113,1) [(Ident "readFlatCurryIfPossible" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "Prog" 0)) [])])]))))) ,(FunctionDecl (114,1) (Ident "readFlatCurryIfPossible" 0) [(Equation (114,1) (FunLhs (Ident "readFlatCurryIfPossible" 0) [(VariablePattern (Ident "loadpath" 43)),(VariablePattern (Ident "modname" 43)),(VariablePattern (Ident "suffixes" 43))]) (SimpleRhs (114,53) (Do [(StmtBind (VariablePattern (Ident "mbfname" 45)) (Apply (Apply (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "lookupFileInPath" 0))) (Variable (QualIdent Nothing (Ident "modname" 43)))) (List [(Literal (String ".lcurry")),(Literal (String ".curry"))])) (Variable (QualIdent Nothing (Ident "loadpath" 43)))))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "lookupFileInPath" 0))) (Variable (QualIdent Nothing (Ident "modname" 43)))) (Variable (QualIdent Nothing (Ident "suffixes" 43)))) (Variable (QualIdent Nothing (Ident "loadpath" 43)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "fname" 46))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))))) (Paren (Lambda [(VariablePattern (Ident "progname" 47))] (InfixApply (Apply (Variable (QualIdent (Just "FlatCurry") (Ident "readFlatCurryFile" 0))) (Variable (QualIdent Nothing (Ident "progname" 47)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0)))))))) (Variable (QualIdent Nothing (Ident "fname" 46)))))))) (Paren (Lambda [(VariablePattern (Ident "sname" 48))] (Do [(StmtDecl [(PatternDecl (121,16) (VariablePattern (Ident "moddir" 49)) (SimpleRhs (121,28) (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "dirName" 0))) (Variable (QualIdent Nothing (Ident "sname" 48)))) [])),(PatternDecl (122,16) (VariablePattern (Ident "pathofmod" 49)) (SimpleRhs (122,28) (List [(Variable (QualIdent Nothing (Ident "moddir" 49))),(Apply (Variable (QualIdent (Just "Distribution") (Ident "addCurrySubdir" 0))) (Variable (QualIdent Nothing (Ident "moddir" 49))))]) []))]),(StmtBind (VariablePattern (Ident "mbflatfile" 52)) (Apply (Apply (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "lookupFileInPath" 0))) (Variable (QualIdent Nothing (Ident "modname" 43)))) (Variable (QualIdent Nothing (Ident "suffixes" 43)))) (Variable (QualIdent Nothing (Ident "pathofmod" 49)))))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))))) (Paren (Lambda [(VariablePattern (Ident "flatfile" 53))] (Do [(StmtBind (VariablePattern (Ident "ctime" 54)) (Apply (Variable (QualIdent (Just "Directory") (Ident "getModificationTime" 0))) (Variable (QualIdent Nothing (Ident "sname" 48))))),(StmtBind (VariablePattern (Ident "ftime" 55)) (Apply (Variable (QualIdent (Just "Directory") (Ident "getModificationTime" 0))) (Variable (QualIdent Nothing (Ident "flatfile" 53)))))] (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "Time") (Ident "clockTimeToInt" 0))) (Variable (QualIdent Nothing (Ident "ctime" 54)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Apply (Variable (QualIdent (Just "Time") (Ident "clockTimeToInt" 0))) (Variable (QualIdent Nothing (Ident "ftime" 55))))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "flatfile" 53))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String " "))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "FlatCurry") (Ident "readFlatCurryFile" 0))) (Variable (QualIdent Nothing (Ident "flatfile" 53))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0)))))))))) (Variable (QualIdent Nothing (Ident "mbflatfile" 52)))))))) (Variable (QualIdent Nothing (Ident "mbfname" 45))))) []))]) ]