Module "CurrySyntax" (Just (Exporting (11,20) [(ExportTypeAll (QualIdent Nothing (Ident "Module" 0))),(Export (QualIdent Nothing (Ident "Pos" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Position" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Ident" 0))),(ExportTypeAll (QualIdent Nothing (Ident "QualIdent" 0))),(Export (QualIdent Nothing (Ident "ModuleIdent" 0))),(ExportTypeAll (QualIdent Nothing (Ident "ExportSpec" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Export" 0))),(ExportTypeAll (QualIdent Nothing (Ident "ImportSpec" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Import" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Decl" 0))),(ExportTypeAll (QualIdent Nothing (Ident "ConstrDecl" 0))),(ExportTypeAll (QualIdent Nothing (Ident "NewConstrDecl" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Infix" 0))),(ExportTypeAll (QualIdent Nothing (Ident "EvalAnnotation" 0))),(ExportTypeAll (QualIdent Nothing (Ident "CallConv" 0))),(ExportTypeAll (QualIdent Nothing (Ident "TypeExpr" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Equation" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Lhs" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Rhs" 0))),(ExportTypeAll (QualIdent Nothing (Ident "CondExpr" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Literal" 0))),(ExportTypeAll (QualIdent Nothing (Ident "ConstrTerm" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Expression" 0))),(ExportTypeAll (QualIdent Nothing (Ident "InfixOp" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Statement" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Alt" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Field" 0))),(Export (QualIdent Nothing (Ident "readCurry" 0))),(Export (QualIdent Nothing (Ident "readCurryWithParseOptions" 0))),(Export (QualIdent Nothing (Ident "readCurryFile" 0))),(Export (QualIdent Nothing (Ident "writeCurryModule" 0))),(Export (QualIdent Nothing (Ident "writeCurryFile" 0)))])) [(ImportDecl (1,1) "Prelude" False Nothing Nothing) ,(ImportDecl (33,1) "Directory" False Nothing (Just (Importing (33,18) [(Import (Ident "doesFileExist" 0))]))) ,(ImportDecl (34,1) "ReadShowTerm" False Nothing (Just (Importing (34,21) [(Import (Ident "readUnqualifiedTerm" 0)),(Import (Ident "showTerm" 0))]))) ,(ImportDecl (35,1) "Distribution" False Nothing (Just (Importing (36,3) [(Import (Ident "callFrontendWithParams" 0)),(ImportTypeAll (Ident "FrontendTarget" 0)),(Import (Ident "FrontendParams" 0)),(Import (Ident "defaultParams" 0)),(Import (Ident "setQuiet" 0)),(Import (Ident "lookupFileInLoadPath" 0))]))) ,(ImportDecl (39,1) "FileGoodies" False Nothing (Just (Importing (39,20) [(Import (Ident "baseName" 0))]))) ,(TypeDecl (43,1) (Ident "Pos" 0) [] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])) ,(DataDecl (48,1) (Ident "Position" 0) [] [(ConstrDecl (48,17) [] (Ident "Position" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])]) ,(DataDecl (55,1) (Ident "Ident" 0) [] [(ConstrDecl (55,14) [] (Ident "Ident" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])]) ,(DataDecl (61,1) (Ident "QualIdent" 0) [] [(ConstrDecl (61,18) [] (Ident "UnqualIdent" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])]),(ConstrDecl (61,38) [] (Ident "QualIdent" 0) [(ConstructorType (QualIdent Nothing (Ident "ModuleIdent" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])])]) ,(TypeDecl (65,1) (Ident "ModuleIdent" 0) [] (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) ,(DataDecl (73,1) (Ident "Module" 0) [(Ident "a" 0)] [(ConstrDecl (73,17) [] (Ident "Module" 0) [(ConstructorType (QualIdent Nothing (Ident "ModuleIdent" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "ExportSpec" 0)) [(VariableType (Ident "a" 0))])]),(ListType (ConstructorType (QualIdent Nothing (Ident "Decl" 0)) [(VariableType (Ident "a" 0))]))])]) ,(DataDecl (78,1) (Ident "ExportSpec" 0) [(Ident "a" 0)] [(ConstrDecl (78,21) [] (Ident "Exporting" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Export" 0)) []))])]) ,(DataDecl (86,1) (Ident "Export" 0) [] [(ConstrDecl (87,5) [] (Ident "Export" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) [])]),(ConstrDecl (88,5) [] (Ident "ExportTypeWith" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []))]),(ConstrDecl (89,5) [] (Ident "ExportTypeAll" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) [])]),(ConstrDecl (90,5) [] (Ident "ExportModule" 0) [(ConstructorType (QualIdent Nothing (Ident "ModuleIdent" 0)) [])])]) ,(DataDecl (96,1) (Ident "ImportSpec" 0) [(Ident "a" 0)] [(ConstrDecl (97,5) [] (Ident "Importing" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Import" 0)) []))]),(ConstrDecl (98,5) [] (Ident "Hiding" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Import" 0)) []))])]) ,(DataDecl (107,1) (Ident "Import" 0) [] [(ConstrDecl (108,5) [] (Ident "Import" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])]),(ConstrDecl (109,5) [] (Ident "ImportTypeWith" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []))]),(ConstrDecl (110,5) [] (Ident "ImportTypeAll" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])])]) ,(DataDecl (151,1) (Ident "Decl" 0) [(Ident "a" 0)] [(ConstrDecl (152,5) [] (Ident "ImportDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "ModuleIdent" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "ModuleIdent" 0)) [])]),(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "ImportSpec" 0)) [(VariableType (Ident "a" 0))])])]),(ConstrDecl (153,5) [] (Ident "InfixDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Infix" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []))]),(ConstrDecl (154,5) [] (Ident "DataDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrDecl" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (155,5) [] (Ident "NewtypeDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "NewConstrDecl" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (156,5) [] (Ident "TypeDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])]),(ConstrDecl (157,5) [] (Ident "TypeSig" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])]),(ConstrDecl (158,5) [] (Ident "EvalAnnot" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "EvalAnnotation" 0)) [])]),(ConstrDecl (159,5) [] (Ident "FunctionDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Equation" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (160,5) [] (Ident "ExternalDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "CallConv" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])]),(ConstrDecl (161,5) [] (Ident "FlatExternalDecl" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []))]),(ConstrDecl (162,5) [] (Ident "PatternDecl" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Rhs" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (163,5) [] (Ident "ExtraVariables" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []))])]) ,(DataDecl (169,1) (Ident "ConstrDecl" 0) [(Ident "a" 0)] [(ConstrDecl (170,5) [] (Ident "ConstrDecl" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) []))]),(ConstrDecl (171,5) [] (Ident "ConOpDecl" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])])]) ,(DataDecl (177,1) (Ident "NewConstrDecl" 0) [(Ident "a" 0)] [(ConstrDecl (177,24) [] (Ident "NewConstrDecl" 0) [(VariableType (Ident "a" 0)),(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])])]) ,(DataDecl (181,1) (Ident "Infix" 0) [] [(ConstrDecl (181,14) [] (Ident "InfixL" 0) []),(ConstrDecl (181,23) [] (Ident "InfixR" 0) []),(ConstrDecl (181,32) [] (Ident "Infix" 0) [])]) ,(DataDecl (185,1) (Ident "EvalAnnotation" 0) [] [(ConstrDecl (185,23) [] (Ident "EvalRigid" 0) []),(ConstrDecl (185,35) [] (Ident "EvalChoice" 0) [])]) ,(DataDecl (189,1) (Ident "CallConv" 0) [] [(ConstrDecl (189,17) [] (Ident "CallConvPrimitive" 0) []),(ConstrDecl (189,37) [] (Ident "CallConvCCall" 0) [])]) ,(DataDecl (208,1) (Ident "TypeExpr" 0) [] [(ConstrDecl (209,5) [] (Ident "ConstructorType" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) []))]),(ConstrDecl (210,5) [] (Ident "VariableType" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])]),(ConstrDecl (211,5) [] (Ident "TupleType" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) []))]),(ConstrDecl (212,5) [] (Ident "ListType" 0) [(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])]),(ConstrDecl (213,5) [] (Ident "ArrowType" 0) [(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) []),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])]),(ConstrDecl (214,5) [] (Ident "RecordType" 0) [(ListType (TupleType [(ListType (ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])])),(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])])])]) ,(DataDecl (220,1) (Ident "Equation" 0) [(Ident "a" 0)] [(ConstrDecl (220,19) [] (Ident "Equation" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Lhs" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Rhs" 0)) [(VariableType (Ident "a" 0))])])]) ,(DataDecl (234,1) (Ident "Lhs" 0) [(Ident "a" 0)] [(ConstrDecl (235,5) [] (Ident "FunLhs" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (236,5) [] (Ident "OpLhs" 0) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (237,5) [] (Ident "ApLhs" 0) [(ConstructorType (QualIdent Nothing (Ident "Lhs" 0)) [(VariableType (Ident "a" 0))]),(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]))])]) ,(DataDecl (244,1) (Ident "Rhs" 0) [(Ident "a" 0)] [(ConstrDecl (245,5) [] (Ident "SimpleRhs" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ListType (ConstructorType (QualIdent Nothing (Ident "Decl" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (246,5) [] (Ident "GuardedRhs" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "CondExpr" 0)) [(VariableType (Ident "a" 0))])),(ListType (ConstructorType (QualIdent Nothing (Ident "Decl" 0)) [(VariableType (Ident "a" 0))]))])]) ,(DataDecl (252,1) (Ident "CondExpr" 0) [(Ident "a" 0)] [(ConstrDecl (252,19) [] (Ident "CondExpr" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])])]) ,(DataDecl (261,1) (Ident "Literal" 0) [] [(ConstrDecl (262,5) [] (Ident "Char" 0) [(ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])]),(ConstrDecl (263,5) [] (Ident "Int" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]),(ConstrDecl (264,5) [] (Ident "Float" 0) [(ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])]),(ConstrDecl (265,5) [] (Ident "String" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])]) ,(DataDecl (302,1) (Ident "ConstrTerm" 0) [(Ident "a" 0)] [(ConstrDecl (303,5) [] (Ident "LiteralPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "Literal" 0)) [])]),(ConstrDecl (304,5) [] (Ident "NegativePattern" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Literal" 0)) [])]),(ConstrDecl (305,5) [] (Ident "VariablePattern" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])]),(ConstrDecl (306,5) [] (Ident "ConstructorPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (307,5) [] (Ident "InfixPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) []),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (308,5) [] (Ident "ParenPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (309,5) [] (Ident "TuplePattern" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (310,5) [] (Ident "ListPattern" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (311,5) [] (Ident "AsPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (312,5) [] (Ident "LazyPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (313,5) [] (Ident "FunctionPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (314,5) [] (Ident "InfixFuncPattern" 0) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) []),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (315,5) [] (Ident "RecordPattern" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Field" 0)) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])])),(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])])])]) ,(DataDecl (354,1) (Ident "Expression" 0) [(Ident "a" 0)] [(ConstrDecl (355,5) [] (Ident "Literal" 0) [(ConstructorType (QualIdent Nothing (Ident "Literal" 0)) [])]),(ConstrDecl (356,5) [] (Ident "Variable" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) [])]),(ConstrDecl (357,5) [] (Ident "Constructor" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) [])]),(ConstrDecl (358,5) [] (Ident "Paren" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (359,5) [] (Ident "Typed" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "TypeExpr" 0)) [])]),(ConstrDecl (360,5) [] (Ident "Tuple" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (361,5) [] (Ident "List" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (362,5) [] (Ident "ListCompr" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ListType (ConstructorType (QualIdent Nothing (Ident "Statement" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (363,5) [] (Ident "EnumFrom" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (364,5) [] (Ident "EnumFromThen" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (365,5) [] (Ident "EnumFromTo" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (366,5) [] (Ident "EnumFromThenTo" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (367,5) [] (Ident "UnaryMinus" 0) [(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (368,5) [] (Ident "Apply" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (369,5) [] (Ident "InfixApply" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "InfixOp" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (370,5) [] (Ident "LeftSection" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "InfixOp" 0)) [])]),(ConstrDecl (371,5) [] (Ident "RightSection" 0) [(ConstructorType (QualIdent Nothing (Ident "InfixOp" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (372,5) [] (Ident "Lambda" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))])),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (373,5) [] (Ident "Let" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Decl" 0)) [(VariableType (Ident "a" 0))])),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (374,5) [] (Ident "Do" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Statement" 0)) [(VariableType (Ident "a" 0))])),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (375,5) [] (Ident "IfThenElse" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (376,5) [] (Ident "Case" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ListType (ConstructorType (QualIdent Nothing (Ident "Alt" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (377,5) [] (Ident "RecordConstr" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Field" 0)) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]))]),(ConstrDecl (378,5) [] (Ident "RecordSelection" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) [])]),(ConstrDecl (379,5) [] (Ident "RecordUpdate" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Field" 0)) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])])),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])])]) ,(DataDecl (383,1) (Ident "InfixOp" 0) [] [(ConstrDecl (383,16) [] (Ident "InfixOp" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) [])]),(ConstrDecl (383,36) [] (Ident "InfixConstr" 0) [(ConstructorType (QualIdent Nothing (Ident "QualIdent" 0)) [])])]) ,(DataDecl (391,1) (Ident "Statement" 0) [(Ident "a" 0)] [(ConstrDecl (392,5) [] (Ident "StmtExpr" 0) [(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (393,5) [] (Ident "StmtDecl" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Decl" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (394,5) [] (Ident "StmtBind" 0) [(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Expression" 0)) [(VariableType (Ident "a" 0))])])]) ,(DataDecl (399,1) (Ident "Alt" 0) [(Ident "a" 0)] [(ConstrDecl (399,14) [] (Ident "Alt" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "ConstrTerm" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Rhs" 0)) [(VariableType (Ident "a" 0))])])]) ,(DataDecl (405,1) (Ident "Field" 0) [(Ident "a" 0),(Ident "b" 0)] [(ConstrDecl (405,18) [] (Ident "Field" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Ident" 0)) []),(VariableType (Ident "b" 0))])]) ,(TypeSig (414,1) [(Ident "readCurry" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Module" 0)) [(ConstructorType (QualIdent Nothing (Ident "Pos" 0)) [])])]))) ,(FunctionDecl (415,1) (Ident "readCurry" 0) [(Equation (415,1) (FunLhs (Ident "readCurry" 0) [(VariablePattern (Ident "name" 2))]) (SimpleRhs (415,18) (Apply (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "readCurryWithParseOptions" 0))) (Variable (QualIdent Nothing (Ident "name" 2)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Distribution") (Ident "setQuiet" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))) (Variable (QualIdent (Just "Distribution") (Ident "defaultParams" 0)))))) []))]) ,(TypeSig (424,1) [(Ident "readCurryWithParseOptions" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FrontendParams" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Module" 0)) [(ConstructorType (QualIdent Nothing (Ident "Pos" 0)) [])])])))) ,(FunctionDecl (425,1) (Ident "readCurryWithParseOptions" 0) [(Equation (425,1) (FunLhs (Ident "readCurryWithParseOptions" 0) [(VariablePattern (Ident "name" 4)),(VariablePattern (Ident "options" 4))]) (SimpleRhs (425,42) (Do [(StmtExpr (InfixApply (Apply (Variable (QualIdent Nothing (Ident "parseCurry" 5))) (Literal (String ".curry"))) (InfixOp (QualIdent (Just "CurrySyntax") (Ident "orElseDo" 0))) (Apply (Variable (QualIdent Nothing (Ident "parseCurry" 5))) (Literal (String ".lcurry")))))] (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "readCurryFile" 0))) (Variable (QualIdent Nothing (Ident "progname" 5))))) [(PatternDecl (429,3) (VariablePattern (Ident "progname" 5)) (SimpleRhs (429,14) (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "stripSuffix" 0))) (Variable (QualIdent Nothing (Ident "name" 4)))) [])),(FunctionDecl (430,3) (Ident "parseCurry" 5) [(Equation (430,3) (FunLhs (Ident "parseCurry" 5) [(VariablePattern (Ident "suffix" 7))]) (SimpleRhs (431,7) (InfixApply (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "absoluteFileName" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "progname" 5))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "suffix" 7)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (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)))))) (Variable (QualIdent Nothing (Ident "parse" 5))))) []))]),(FunctionDecl (432,3) (Ident "parse" 5) [(Equation (432,3) (FunLhs (Ident "parse" 5) [(VariablePattern (Ident "_" 10))]) (SimpleRhs (432,13) (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Distribution") (Ident "callFrontendWithParams" 0))) (Constructor (QualIdent (Just "Distribution") (Ident "CY" 0)))) (Variable (QualIdent Nothing (Ident "options" 4)))) (Variable (QualIdent Nothing (Ident "progname" 5)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple []))))) []))])]))]) ,(TypeSig (439,1) [(Ident "readCurryFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Module" 0)) [(ConstructorType (QualIdent Nothing (Ident "Pos" 0)) [])])]))) ,(FunctionDecl (440,1) (Ident "readCurryFile" 0) [(Equation (440,1) (FunLhs (Ident "readCurryFile" 0) [(VariablePattern (Ident "name" 12))]) (SimpleRhs (440,22) (Do [(StmtBind (VariablePattern (Ident "filename" 18)) (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "absoluteFileName" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "progname" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".cy"))))))] (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 (Variable (QualIdent Nothing (Ident "progname" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".cy not found")))))) (Variable (QualIdent Nothing (Ident "read" 13)))) (Variable (QualIdent Nothing (Ident "filename" 18))))) [(PatternDecl (444,3) (VariablePattern (Ident "progname" 13)) (SimpleRhs (444,14) (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "stripSuffix" 0))) (Variable (QualIdent Nothing (Ident "name" 12)))) [])),(FunctionDecl (445,3) (Ident "read" 13) [(Equation (445,3) (FunLhs (Ident "read" 13) [(VariablePattern (Ident "filename" 15))]) (SimpleRhs (445,19) (Do [(StmtBind (VariablePattern (Ident "filecontents" 17)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "readFile" 0))) (Variable (QualIdent Nothing (Ident "filename" 15)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "readUnqualifiedTerm" 0))) (List [(Literal (String "CurrySyntax")),(Literal (String "Prelude"))])) (Variable (QualIdent Nothing (Ident "filecontents" 17))))))) []))])]))]) ,(TypeSig (452,1) [(Ident "writeCurryModule" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Module" 0)) [(ConstructorType (QualIdent Nothing (Ident "Pos" 0)) [])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))) ,(FunctionDecl (453,1) (Ident "writeCurryModule" 0) [(Equation (453,1) (FunLhs (Ident "writeCurryModule" 0) [(AsPattern (Ident "m" 19) (ParenPattern (ConstructorPattern (QualIdent (Just "CurrySyntax") (Ident "Module" 0)) [(VariablePattern (Ident "name" 19)),(VariablePattern (Ident "_" 20)),(VariablePattern (Ident "_" 21))])))]) (SimpleRhs (453,40) (Apply (Apply (Variable (QualIdent (Just "CurrySyntax") (Ident "writeCurryFile" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "name" 19))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".cy"))))) (Variable (QualIdent Nothing (Ident "m" 19)))) []))]) ,(TypeSig (458,1) [(Ident "writeCurryFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Module" 0)) [(ConstructorType (QualIdent Nothing (Ident "Pos" 0)) [])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))) ,(FunctionDecl (459,1) (Ident "writeCurryFile" 0) [(Equation (459,1) (FunLhs (Ident "writeCurryFile" 0) [(VariablePattern (Ident "file" 23)),(VariablePattern (Ident "m" 23))]) (SimpleRhs (459,25) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "file" 23)))) (Paren (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "showTerm" 0))) (Variable (QualIdent Nothing (Ident "m" 23)))))) []))]) ,(TypeSig (464,1) [(Ident "absoluteFileName" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])]))) ,(FunctionDecl (465,1) (Ident "absoluteFileName" 0) [(Equation (465,1) (FunLhs (Ident "absoluteFileName" 0) [(VariablePattern (Ident "name" 25))]) (GuardedRhs [(CondExpr (466,3) (InfixApply (Variable (QualIdent Nothing (Ident "name" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "baseName" 0))) (Variable (QualIdent Nothing (Ident "name" 25))))) (Apply (Variable (QualIdent (Just "Distribution") (Ident "lookupFileInLoadPath" 0))) (Variable (QualIdent Nothing (Ident "name" 25))))),(CondExpr (467,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Do [(StmtBind (VariablePattern (Ident "exists" 27)) (Apply (Variable (QualIdent (Just "Directory") (Ident "doesFileExist" 0))) (Variable (QualIdent Nothing (Ident "name" 25)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (IfThenElse (Variable (QualIdent Nothing (Ident "exists" 27))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Variable (QualIdent Nothing (Ident "name" 25)))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))))))))] []))]) ,(TypeSig (471,1) [(Ident "orElseDo" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])])))) ,(FunctionDecl (472,1) (Ident "orElseDo" 0) [(Equation (472,1) (FunLhs (Ident "orElseDo" 0) [(VariablePattern (Ident "ioma" 28)),(VariablePattern (Ident "ioa" 28))]) (SimpleRhs (472,21) (InfixApply (Variable (QualIdent Nothing (Ident "ioma" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Variable (QualIdent Nothing (Ident "ioa" 28)))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))))))) []))]) ,(TypeSig (474,1) [(Ident "stripSuffix" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) ,(FunctionDecl (475,1) (Ident "stripSuffix" 0) [(Equation (475,1) (FunLhs (Ident "stripSuffix" 0) []) (SimpleRhs (475,15) (Apply (Variable (QualIdent (Just "Prelude") (Ident "takeWhile" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Literal (Char '.')))) []))]) ]