Module "Array" (Just (Exporting (6,3) [(Export (QualIdent Nothing (Ident "Array" 0))),(Export (QualIdent Nothing (Ident "emptyErrorArray" 0))),(Export (QualIdent Nothing (Ident "emptyDefaultArray" 0))),(Export (QualIdent Nothing (Ident "listToDefaultArray" 0))),(Export (QualIdent Nothing (Ident "listToErrorArray" 0))),(Export (QualIdent Nothing (Ident "//" 0))),(Export (QualIdent Nothing (Ident "update" 0))),(Export (QualIdent Nothing (Ident "applyAt" 0))),(Export (QualIdent Nothing (Ident "!" 0))),(Export (QualIdent Nothing (Ident "combine" 0))),(Export (QualIdent Nothing (Ident "combineSimilar" 0))),(Export (QualIdent Nothing (Ident "foldArray" 0))),(Export (QualIdent Nothing (Ident "arrayToList" 0)))])) [(ImportDecl (1,1) "Prelude" False Nothing Nothing) ,(ImportDecl (22,1) "Integer" False Nothing Nothing) ,(DataDecl (26,1) (Ident "Array" 0) [(Ident "b" 0)] [(ConstrDecl (26,16) [] (Ident "Array" 0) [(ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))),(ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))])])]) ,(DataDecl (28,1) (Ident "Entry" 0) [(Ident "b" 0)] [(ConstrDecl (28,16) [] (Ident "Entry" 0) [(VariableType (Ident "b" 0)),(ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]),(ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))])]),(ConstrDecl (28,46) [] (Ident "Empty" 0) [])]) ,(InfixDecl (24,1) InfixL 9 [(Ident "!" 0),(Ident "//" 0)]) ,(TypeSig (33,1) [(Ident "emptyErrorArray" 0)] (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])) ,(FunctionDecl (34,1) (Ident "emptyErrorArray" 0) [(Equation (34,1) (FunLhs (Ident "emptyErrorArray" 0) []) (SimpleRhs (34,19) (Apply (Variable (QualIdent (Just "Array") (Ident "emptyDefaultArray" 0))) (Variable (QualIdent (Just "Array") (Ident "errorArray" 0)))) []))]) ,(TypeSig (36,1) [(Ident "errorArray" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "_" 0)))) ,(FunctionDecl (37,1) (Ident "errorArray" 0) [(Equation (37,1) (FunLhs (Ident "errorArray" 0) [(VariablePattern (Ident "idx" 4))]) (SimpleRhs (37,19) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "Array index ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "idx" 4)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String " not initialized")))))) []))]) ,(TypeSig (42,1) [(Ident "emptyDefaultArray" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))) ,(FunctionDecl (43,1) (Ident "emptyDefaultArray" 0) [(Equation (43,1) (FunLhs (Ident "emptyDefaultArray" 0) [(VariablePattern (Ident "default" 6))]) (SimpleRhs (43,29) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 6)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) []))]) ,(TypeSig (51,1) [(Ident "//" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])))) ,(FunctionDecl (52,1) (Ident "//" 0) [(Equation (52,1) (OpLhs (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 8)),(VariablePattern (Ident "array" 8))]) (Ident "//" 0) (VariablePattern (Ident "modifications" 8))) (SimpleRhs (53,3) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 8)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "n" 10)),(VariablePattern (Ident "v" 10))]),(VariablePattern (Ident "a" 10))] (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 8))) (Variable (QualIdent Nothing (Ident "n" 10)))))) (Variable (QualIdent Nothing (Ident "a" 10)))) (Variable (QualIdent Nothing (Ident "n" 10)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "v" 10))))))))) (Variable (QualIdent Nothing (Ident "array" 8)))) (Variable (QualIdent Nothing (Ident "modifications" 8)))))) []))]) ,(TypeSig (61,1) [(Ident "update" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))))) ,(FunctionDecl (62,1) (Ident "update" 0) [(Equation (62,1) (FunLhs (Ident "update" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 11)),(VariablePattern (Ident "a" 11))])),(VariablePattern (Ident "i" 11)),(VariablePattern (Ident "v" 11))]) (SimpleRhs (63,3) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 11)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 11))) (Variable (QualIdent Nothing (Ident "i" 11)))))) (Variable (QualIdent Nothing (Ident "a" 11)))) (Variable (QualIdent Nothing (Ident "i" 11)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "v" 11)))))))) []))]) ,(TypeSig (70,1) [(Ident "applyAt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))))) ,(FunctionDecl (71,1) (Ident "applyAt" 0) [(Equation (71,1) (FunLhs (Ident "applyAt" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 13)),(VariablePattern (Ident "a" 13))])),(VariablePattern (Ident "n" 13)),(VariablePattern (Ident "f" 13))]) (SimpleRhs (71,33) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 13)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 13))) (Variable (QualIdent Nothing (Ident "n" 13)))))) (Variable (QualIdent Nothing (Ident "a" 13)))) (Variable (QualIdent Nothing (Ident "n" 13)))) (Variable (QualIdent Nothing (Ident "f" 13)))))) []))]) ,(TypeSig (74,1) [(Ident "at" 0)] (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))])))))) ,(FunctionDecl (75,1) (Ident "at" 0) [(Equation (75,1) (FunLhs (Ident "at" 0) [(VariablePattern (Ident "default" 15)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "n" 15)),(VariablePattern (Ident "f" 15))]) (GuardedRhs [(CondExpr (76,3) (InfixApply (Variable (QualIdent Nothing (Ident "n" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 17) 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 15))) (Variable (QualIdent Nothing (Ident "default" 15)))))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))))),(CondExpr (77,3) (Apply (Variable (QualIdent (Just "Integer") (Ident "odd" 0))) (Variable (QualIdent Nothing (Ident "n" 15)))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 18) 2))))) (Variable (QualIdent Nothing (Ident "f" 15)))))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))))),(CondExpr (78,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 19) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 20) 1))))) (Variable (QualIdent Nothing (Ident "f" 15)))))))] [])),(Equation (79,1) (FunLhs (Ident "at" 0) [(VariablePattern (Ident "default" 21)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "v" 21)),(VariablePattern (Ident "al" 21)),(VariablePattern (Ident "ar" 21))])),(VariablePattern (Ident "n" 21)),(VariablePattern (Ident "f" 21))]) (GuardedRhs [(CondExpr (80,3) (InfixApply (Variable (QualIdent Nothing (Ident "n" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 23) 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 21))) (Variable (QualIdent Nothing (Ident "v" 21)))))) (Variable (QualIdent Nothing (Ident "al" 21)))) (Variable (QualIdent Nothing (Ident "ar" 21))))),(CondExpr (81,3) (Apply (Variable (QualIdent (Just "Integer") (Ident "odd" 0))) (Variable (QualIdent Nothing (Ident "n" 21)))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "v" 21)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 21)))) (Variable (QualIdent Nothing (Ident "al" 21)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 24) 2))))) (Variable (QualIdent Nothing (Ident "f" 21)))))) (Variable (QualIdent Nothing (Ident "ar" 21))))),(CondExpr (82,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "v" 21)))) (Variable (QualIdent Nothing (Ident "al" 21)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 21)))) (Variable (QualIdent Nothing (Ident "ar" 21)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 25) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 26) 1))))) (Variable (QualIdent Nothing (Ident "f" 21)))))))] []))]) ,(TypeSig (88,1) [(Ident "!" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))))) ,(FunctionDecl (89,1) (Ident "!" 0) [(Equation (89,1) (OpLhs (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 27)),(VariablePattern (Ident "array" 27))]) (Ident "!" 0) (VariablePattern (Ident "i" 27))) (SimpleRhs (89,27) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "from" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 27))) (Variable (QualIdent Nothing (Ident "i" 27)))))) (Variable (QualIdent Nothing (Ident "array" 27)))) (Variable (QualIdent Nothing (Ident "i" 27)))) []))]) ,(TypeSig (91,1) [(Ident "from" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "a" 0)))))) ,(FunctionDecl (92,1) (Ident "from" 0) [(Equation (92,1) (FunLhs (Ident "from" 0) [(VariablePattern (Ident "default" 29)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "_" 30))]) (SimpleRhs (92,24) (Variable (QualIdent Nothing (Ident "default" 29))) [])),(Equation (93,1) (FunLhs (Ident "from" 0) [(VariablePattern (Ident "default" 32)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "v" 32)),(VariablePattern (Ident "al" 32)),(VariablePattern (Ident "ar" 32))])),(VariablePattern (Ident "n" 32))]) (GuardedRhs [(CondExpr (94,3) (InfixApply (Variable (QualIdent Nothing (Ident "n" 32))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 34) 0))) (Variable (QualIdent Nothing (Ident "v" 32)))),(CondExpr (95,3) (Apply (Variable (QualIdent (Just "Integer") (Ident "odd" 0))) (Variable (QualIdent Nothing (Ident "n" 32)))) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "from" 0))) (Variable (QualIdent Nothing (Ident "default" 32)))) (Variable (QualIdent Nothing (Ident "al" 32)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 32))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 35) 2)))))),(CondExpr (96,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "from" 0))) (Variable (QualIdent Nothing (Ident "default" 32)))) (Variable (QualIdent Nothing (Ident "ar" 32)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 32))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 36) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 37) 1))))))] []))]) ,(TypeSig (99,1) [(Ident "split" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "a" 0)))]))) ,(FunctionDecl (100,1) (Ident "split" 0) [(Equation (100,1) (FunLhs (Ident "split" 0) [(ListPattern [])]) (SimpleRhs (100,12) (Tuple [(List []),(List [])]) [])),(Equation (101,1) (FunLhs (Ident "split" 0) [(ListPattern [(VariablePattern (Ident "x" 40))])]) (SimpleRhs (101,13) (Tuple [(List [(Variable (QualIdent Nothing (Ident "x" 40)))]),(List [])]) [])),(Equation (102,1) (FunLhs (Ident "split" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 42)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "y" 42)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xys" 42)))))]) (SimpleRhs (102,19) (Let [(PatternDecl (102,23) (TuplePattern [(VariablePattern (Ident "xs" 44)),(VariablePattern (Ident "ys" 44))]) (SimpleRhs (102,33) (Apply (Variable (QualIdent (Just "Array") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "xys" 42)))) []))] (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 42))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 44)))),(InfixApply (Variable (QualIdent Nothing (Ident "y" 42))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 44))))])) []))]) ,(TypeSig (108,1) [(Ident "listToDefaultArray" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))) (ArrowType (ListType (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])))) ,(FunctionDecl (109,1) (Ident "listToDefaultArray" 0) [(Equation (109,1) (FunLhs (Ident "listToDefaultArray" 0) [(VariablePattern (Ident "def" 46))]) (SimpleRhs (109,26) (InfixApply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "def" 46)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Array") (Ident "listToArray" 0)))) []))]) ,(TypeSig (113,1) [(Ident "listToErrorArray" 0)] (ArrowType (ListType (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))) ,(FunctionDecl (114,1) (Ident "listToErrorArray" 0) [(Equation (114,1) (FunLhs (Ident "listToErrorArray" 0) []) (SimpleRhs (114,20) (Apply (Variable (QualIdent (Just "Array") (Ident "listToDefaultArray" 0))) (Variable (QualIdent (Just "Array") (Ident "errorArray" 0)))) []))]) ,(TypeSig (117,1) [(Ident "listToArray" 0)] (ArrowType (ListType (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]))) ,(FunctionDecl (118,1) (Ident "listToArray" 0) [(Equation (118,1) (FunLhs (Ident "listToArray" 0) [(ListPattern [])]) (SimpleRhs (118,18) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))) [])),(Equation (119,1) (FunLhs (Ident "listToArray" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 52)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 52))))]) (SimpleRhs (119,22) (Let [(PatternDecl (119,26) (TuplePattern [(VariablePattern (Ident "ys" 54)),(VariablePattern (Ident "zs" 54))]) (SimpleRhs (119,36) (Apply (Variable (QualIdent (Just "Array") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "xs" 52)))) []))] (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "x" 52)))) (Paren (Apply (Variable (QualIdent (Just "Array") (Ident "listToArray" 0))) (Variable (QualIdent Nothing (Ident "ys" 54)))))) (Paren (Apply (Variable (QualIdent (Just "Array") (Ident "listToArray" 0))) (Variable (QualIdent Nothing (Ident "zs" 54))))))) []))]) ,(TypeSig (126,1) [(Ident "combine" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "c" 0))]))))) ,(FunctionDecl (127,1) (Ident "combine" 0) [(Equation (127,1) (FunLhs (Ident "combine" 0) [(VariablePattern (Ident "f" 56)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "def1" 56)),(VariablePattern (Ident "a1" 56))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "def2" 56)),(VariablePattern (Ident "a2" 56))]))]) (SimpleRhs (128,3) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Paren (Lambda [(VariablePattern (Ident "i" 58))] (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 56))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def1" 56))) (Variable (QualIdent Nothing (Ident "i" 58)))))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def2" 56))) (Variable (QualIdent Nothing (Ident "i" 58))))))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 56)))) (Variable (QualIdent Nothing (Ident "def1" 56)))) (Variable (QualIdent Nothing (Ident "def2" 56)))) (Variable (QualIdent Nothing (Ident "a1" 56)))) (Variable (QualIdent Nothing (Ident "a2" 56)))) (Literal (Int (Ident "_" 59) 0))) (Literal (Int (Ident "_" 60) 1))))) []))]) ,(TypeSig (130,1) [(Ident "comb" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "a" 0))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "c" 0))]))))))))) ,(FunctionDecl (132,1) (Ident "comb" 0) [(Equation (132,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "_" 62)),(VariablePattern (Ident "_" 63)),(VariablePattern (Ident "_" 64)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "_" 65)),(VariablePattern (Ident "_" 66))]) (SimpleRhs (132,30) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))) [])),(Equation (133,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "f" 68)),(VariablePattern (Ident "def1" 68)),(VariablePattern (Ident "def2" 68)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 68)),(VariablePattern (Ident "xl" 68)),(VariablePattern (Ident "xr" 68))])),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "b" 68)),(VariablePattern (Ident "o" 68))]) (SimpleRhs (134,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 68))) (Variable (QualIdent Nothing (Ident "x" 68)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def2" 68))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "b" 68))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "o" 68)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 70) 1))))))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 68)))) (Variable (QualIdent Nothing (Ident "def1" 68)))) (Variable (QualIdent Nothing (Ident "def2" 68)))) (Variable (QualIdent Nothing (Ident "xl" 68)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (Literal (Int (Ident "_" 71) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 68)))))) (Variable (QualIdent Nothing (Ident "o" 68)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 68)))) (Variable (QualIdent Nothing (Ident "def1" 68)))) (Variable (QualIdent Nothing (Ident "def2" 68)))) (Variable (QualIdent Nothing (Ident "xr" 68)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (Literal (Int (Ident "_" 72) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 68)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "o" 68))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "b" 68)))))))) [])),(Equation (137,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "f" 73)),(VariablePattern (Ident "def1" 73)),(VariablePattern (Ident "def2" 73)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "y" 73)),(VariablePattern (Ident "yl" 73)),(VariablePattern (Ident "yr" 73))])),(VariablePattern (Ident "b" 73)),(VariablePattern (Ident "o" 73))]) (SimpleRhs (138,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 73))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def1" 73))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "b" 73))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "o" 73)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 75) 1))))))) (Variable (QualIdent Nothing (Ident "y" 73)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 73)))) (Variable (QualIdent Nothing (Ident "def1" 73)))) (Variable (QualIdent Nothing (Ident "def2" 73)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "yl" 73)))) (Paren (InfixApply (Literal (Int (Ident "_" 76) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 73)))))) (Variable (QualIdent Nothing (Ident "o" 73)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 73)))) (Variable (QualIdent Nothing (Ident "def1" 73)))) (Variable (QualIdent Nothing (Ident "def2" 73)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "yr" 73)))) (Paren (InfixApply (Literal (Int (Ident "_" 77) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 73)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "o" 73))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "b" 73)))))))) [])),(Equation (141,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "f" 78)),(VariablePattern (Ident "def1" 78)),(VariablePattern (Ident "def2" 78)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 78)),(VariablePattern (Ident "xl" 78)),(VariablePattern (Ident "xr" 78))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "y" 78)),(VariablePattern (Ident "yl" 78)),(VariablePattern (Ident "yr" 78))])),(VariablePattern (Ident "b" 78)),(VariablePattern (Ident "o" 78))]) (SimpleRhs (142,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 78))) (Variable (QualIdent Nothing (Ident "x" 78)))) (Variable (QualIdent Nothing (Ident "y" 78)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 78)))) (Variable (QualIdent Nothing (Ident "def1" 78)))) (Variable (QualIdent Nothing (Ident "def2" 78)))) (Variable (QualIdent Nothing (Ident "xl" 78)))) (Variable (QualIdent Nothing (Ident "yl" 78)))) (Paren (InfixApply (Literal (Int (Ident "_" 80) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 78)))))) (Variable (QualIdent Nothing (Ident "o" 78)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 78)))) (Variable (QualIdent Nothing (Ident "def1" 78)))) (Variable (QualIdent Nothing (Ident "def2" 78)))) (Variable (QualIdent Nothing (Ident "xr" 78)))) (Variable (QualIdent Nothing (Ident "yr" 78)))) (Paren (InfixApply (Literal (Int (Ident "_" 81) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 78)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "o" 78))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "b" 78)))))))) []))]) ,(TypeSig (152,1) [(Ident "combineSimilar" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]))))) ,(FunctionDecl (153,1) (Ident "combineSimilar" 0) [(Equation (153,1) (FunLhs (Ident "combineSimilar" 0) [(VariablePattern (Ident "f" 82)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "def" 82)),(VariablePattern (Ident "a1" 82))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "_" 83)),(VariablePattern (Ident "a2" 82))]))]) (SimpleRhs (153,49) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "def" 82)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "combSim" 0))) (Variable (QualIdent Nothing (Ident "f" 82)))) (Variable (QualIdent Nothing (Ident "a1" 82)))) (Variable (QualIdent Nothing (Ident "a2" 82)))))) []))]) ,(TypeSig (155,1) [(Ident "combSim" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]))))) ,(FunctionDecl (156,1) (Ident "combSim" 0) [(Equation (156,1) (FunLhs (Ident "combSim" 0) [(VariablePattern (Ident "_" 86)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "a2" 85))]) (SimpleRhs (156,22) (Variable (QualIdent Nothing (Ident "a2" 85))) [])),(Equation (157,1) (FunLhs (Ident "combSim" 0) [(VariablePattern (Ident "_" 89)),(AsPattern (Ident "a1" 88) (ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "_" 90)),(VariablePattern (Ident "_" 91)),(VariablePattern (Ident "_" 92))]))),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) [])]) (SimpleRhs (157,36) (Variable (QualIdent Nothing (Ident "a1" 88))) [])),(Equation (158,1) (FunLhs (Ident "combSim" 0) [(VariablePattern (Ident "f" 94)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 94)),(VariablePattern (Ident "xl" 94)),(VariablePattern (Ident "xr" 94))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "y" 94)),(VariablePattern (Ident "yl" 94)),(VariablePattern (Ident "yr" 94))]))]) (SimpleRhs (159,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 94))) (Variable (QualIdent Nothing (Ident "x" 94)))) (Variable (QualIdent Nothing (Ident "y" 94)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "combSim" 0))) (Variable (QualIdent Nothing (Ident "f" 94)))) (Variable (QualIdent Nothing (Ident "xl" 94)))) (Variable (QualIdent Nothing (Ident "yl" 94)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "combSim" 0))) (Variable (QualIdent Nothing (Ident "f" 94)))) (Variable (QualIdent Nothing (Ident "xr" 94)))) (Variable (QualIdent Nothing (Ident "yr" 94)))))) []))]) ,(TypeSig (162,1) [(Ident "foldArray" 0)] (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (163,1) (Ident "foldArray" 0) [(Equation (163,1) (FunLhs (Ident "foldArray" 0) [(VariablePattern (Ident "emp" 96)),(VariablePattern (Ident "ent" 96)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "_" 97)),(VariablePattern (Ident "es" 96))]))]) (SimpleRhs (163,34) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldEntries" 0))) (Variable (QualIdent Nothing (Ident "emp" 96)))) (Variable (QualIdent Nothing (Ident "ent" 96)))) (Variable (QualIdent Nothing (Ident "es" 96)))) []))]) ,(FunctionDecl (165,1) (Ident "foldEntries" 0) [(Equation (165,1) (FunLhs (Ident "foldEntries" 0) [(VariablePattern (Ident "emp" 99)),(VariablePattern (Ident "_" 100)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) [])]) (SimpleRhs (165,27) (Variable (QualIdent Nothing (Ident "emp" 99))) [])),(Equation (166,1) (FunLhs (Ident "foldEntries" 0) [(VariablePattern (Ident "emp" 102)),(VariablePattern (Ident "ent" 102)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 102)),(VariablePattern (Ident "a1" 102)),(VariablePattern (Ident "a2" 102))]))]) (SimpleRhs (167,3) (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "ent" 102))) (Variable (QualIdent Nothing (Ident "x" 102)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldEntries" 0))) (Variable (QualIdent Nothing (Ident "emp" 102)))) (Variable (QualIdent Nothing (Ident "ent" 102)))) (Variable (QualIdent Nothing (Ident "a1" 102)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldEntries" 0))) (Variable (QualIdent Nothing (Ident "emp" 102)))) (Variable (QualIdent Nothing (Ident "ent" 102)))) (Variable (QualIdent Nothing (Ident "a2" 102)))))) []))]) ,(TypeSig (169,1) [(Ident "arrayToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0))))) ,(FunctionDecl (170,1) (Ident "arrayToList" 0) [(Equation (170,1) (FunLhs (Ident "arrayToList" 0) []) (SimpleRhs (170,15) (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldArray" 0))) (List [])) (Paren (Lambda [(VariablePattern (Ident "x" 106)),(VariablePattern (Ident "ys" 106)),(VariablePattern (Ident "zs" 106))] (InfixApply (Variable (QualIdent Nothing (Ident "x" 106))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "ys" 106))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "zs" 106)))))))) []))]) ]