Module "Parser" Nothing [(ImportDecl (1,1) "Prelude" False Nothing Nothing) ,(TypeDecl (25,1) (Ident "Parser" 0) [(Ident "token" 0)] (ArrowType (ListType (VariableType (Ident "token" 0))) (ListType (VariableType (Ident "token" 0))))) ,(TypeDecl (31,1) (Ident "ParserRep" 0) [(Ident "rep" 0),(Ident "token" 0)] (ArrowType (VariableType (Ident "rep" 0)) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "token" 0))]))) ,(InfixDecl (16,1) InfixR 4 [(Ident "<*>" 0)]) ,(InfixDecl (17,1) InfixR 3 [(Ident ">>>" 0)]) ,(InfixDecl (18,1) InfixR 2 [(Ident "<|>" 0),(Ident "<||>" 0)]) ,(TypeSig (37,1) [(Ident "<|>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))])))) ,(FunctionDecl (38,1) (Ident "<|>" 0) [(Equation (38,1) (OpLhs (VariablePattern (Ident "p" 2)) (Ident "<|>" 0) (VariablePattern (Ident "_" 3))) (SimpleRhs (38,11) (Lambda [(VariablePattern (Ident "sentence" 5))] (Apply (Variable (QualIdent Nothing (Ident "p" 2))) (Variable (QualIdent Nothing (Ident "sentence" 5))))) [])),(Equation (39,1) (OpLhs (VariablePattern (Ident "_" 7)) (Ident "<|>" 0) (VariablePattern (Ident "q" 6))) (SimpleRhs (39,11) (Lambda [(VariablePattern (Ident "sentence" 9))] (Apply (Variable (QualIdent Nothing (Ident "q" 6))) (Variable (QualIdent Nothing (Ident "sentence" 9))))) []))]) ,(TypeSig (43,1) [(Ident "<||>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "r" 0)),(VariableType (Ident "t" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "r" 0)),(VariableType (Ident "t" 0))]) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "r" 0)),(VariableType (Ident "t" 0))])))) ,(FunctionDecl (44,1) (Ident "<||>" 0) [(Equation (44,1) (OpLhs (VariablePattern (Ident "p" 10)) (Ident "<||>" 0) (VariablePattern (Ident "q" 10))) (SimpleRhs (44,12) (Lambda [(VariablePattern (Ident "rep" 12))] (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 10))) (Variable (QualIdent Nothing (Ident "rep" 12)))) (InfixOp (QualIdent (Just "Parser") (Ident "<|>" 0))) (Apply (Variable (QualIdent Nothing (Ident "q" 10))) (Variable (QualIdent Nothing (Ident "rep" 12)))))) []))]) ,(TypeSig (49,1) [(Ident "<*>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))])))) ,(FunctionDecl (50,1) (Ident "<*>" 0) [(Equation (50,1) (OpLhs (VariablePattern (Ident "p1" 13)) (Ident "<*>" 0) (VariablePattern (Ident "p2" 13))) (SimpleRhs (50,13) (Variable (QualIdent Nothing (Ident "seq" 14))) [(FunctionDecl (51,8) (Ident "seq" 14) [(Equation (51,8) (FunLhs (Ident "seq" 14) [(VariablePattern (Ident "sentence" 15))]) (SimpleRhs (51,23) (InfixApply (Variable (QualIdent Nothing (Ident "p2" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Apply (Variable (QualIdent Nothing (Ident "p1" 13))) (Variable (QualIdent Nothing (Ident "sentence" 15))))) []))])]))]) ,(TypeSig (55,1) [(Ident ">>>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "token" 0))]) (ArrowType (VariableType (Ident "rep" 0)) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "rep" 0)),(VariableType (Ident "token" 0))])))) ,(FunctionDecl (56,1) (Ident ">>>" 0) [(Equation (56,1) (ApLhs (OpLhs (VariablePattern (Ident "parser" 17)) (Ident ">>>" 0) (VariablePattern (Ident "repexp" 17))) [(VariablePattern (Ident "rep" 17)),(VariablePattern (Ident "sentence" 17))]) (SimpleRhs (56,36) (InfixApply (Variable (QualIdent Nothing (Ident "attach" 18))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Apply (Variable (QualIdent Nothing (Ident "parser" 17))) (Variable (QualIdent Nothing (Ident "sentence" 17))))) [(FunctionDecl (57,9) (Ident "attach" 18) [(Equation (57,9) (FunLhs (Ident "attach" 18) [(VariablePattern (Ident "rest" 19))]) (GuardedRhs [(CondExpr (57,21) (InfixApply (Variable (QualIdent Nothing (Ident "repexp" 17))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Variable (QualIdent Nothing (Ident "rep" 17)))) (Variable (QualIdent Nothing (Ident "rest" 19))))] []))])]))]) ,(TypeSig (63,1) [(Ident "empty" 0)] (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "_" 0))])) ,(FunctionDecl (64,1) (Ident "empty" 0) [(Equation (64,1) (FunLhs (Ident "empty" 0) [(VariablePattern (Ident "sentence" 21))]) (SimpleRhs (64,18) (Variable (QualIdent Nothing (Ident "sentence" 21))) []))]) ,(TypeSig (67,1) [(Ident "terminal" 0)] (ArrowType (VariableType (Ident "token" 0)) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "token" 0))]))) ,(FunctionDecl (68,1) (Ident "terminal" 0) [(Equation (68,1) (FunLhs (Ident "terminal" 0) [(VariablePattern (Ident "sym" 23)),(ParenPattern (InfixPattern (VariablePattern (Ident "token" 23)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "tokens" 23))))]) (GuardedRhs [(CondExpr (68,29) (InfixApply (Variable (QualIdent Nothing (Ident "sym" 23))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Variable (QualIdent Nothing (Ident "token" 23)))) (Variable (QualIdent Nothing (Ident "tokens" 23))))] []))]) ,(TypeSig (72,1) [(Ident "satisfy" 0)] (ArrowType (ArrowType (VariableType (Ident "token" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "token" 0)),(VariableType (Ident "token" 0))]))) ,(FunctionDecl (73,1) (Ident "satisfy" 0) [(Equation (73,1) (FunLhs (Ident "satisfy" 0) [(VariablePattern (Ident "pred" 25)),(VariablePattern (Ident "sym" 25)),(ParenPattern (InfixPattern (VariablePattern (Ident "token" 25)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "tokens" 25))))]) (GuardedRhs [(CondExpr (73,33) (InfixApply (InfixApply (Apply (Variable (QualIdent Nothing (Ident "pred" 25))) (Variable (QualIdent Nothing (Ident "token" 25)))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "sym" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Variable (QualIdent Nothing (Ident "token" 25))))) (Variable (QualIdent Nothing (Ident "tokens" 25))))] []))]) ,(TypeSig (78,1) [(Ident "star" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "rep" 0)),(VariableType (Ident "token" 0))]) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(ListType (VariableType (Ident "rep" 0))),(VariableType (Ident "token" 0))]))) ,(FunctionDecl (79,1) (Ident "star" 0) [(Equation (79,1) (FunLhs (Ident "star" 0) [(VariablePattern (Ident "p" 27))]) (SimpleRhs (79,13) (InfixApply (InfixApply (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 27))) (Variable (QualIdent Nothing (Ident "x" 28)))) (InfixOp (QualIdent (Just "Parser") (Ident "<*>" 0))) (Apply (Paren (Apply (Variable (QualIdent (Just "Parser") (Ident "star" 0))) (Variable (QualIdent Nothing (Ident "p" 27))))) (Variable (QualIdent Nothing (Ident "xs" 28))))) (InfixOp (QualIdent (Just "Parser") (Ident ">>>" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 28))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 28)))))) (InfixOp (QualIdent (Just "Parser") (Ident "<||>" 0))) (InfixApply (Variable (QualIdent (Just "Parser") (Ident "empty" 0))) (InfixOp (QualIdent (Just "Parser") (Ident ">>>" 0))) (List []))) [(ExtraVariables (80,54) [(Ident "x" 28),(Ident "xs" 28)])]))]) ,(TypeSig (84,1) [(Ident "some" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "rep" 0)),(VariableType (Ident "token" 0))]) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(ListType (VariableType (Ident "rep" 0))),(VariableType (Ident "token" 0))]))) ,(FunctionDecl (85,1) (Ident "some" 0) [(Equation (85,1) (FunLhs (Ident "some" 0) [(VariablePattern (Ident "p" 29))]) (SimpleRhs (85,10) (InfixApply (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 29))) (Variable (QualIdent Nothing (Ident "x" 30)))) (InfixOp (QualIdent (Just "Parser") (Ident "<*>" 0))) (Apply (Paren (Apply (Variable (QualIdent (Just "Parser") (Ident "star" 0))) (Variable (QualIdent Nothing (Ident "p" 29))))) (Variable (QualIdent Nothing (Ident "xs" 30))))) (InfixOp (QualIdent (Just "Parser") (Ident ">>>" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 30))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 30)))))) [(ExtraVariables (85,54) [(Ident "x" 30),(Ident "xs" 30)])]))]) ]