diff --git a/src/Language/PureScript/AST/Declarations.hs b/src/Language/PureScript/AST/Declarations.hs index 4fbc7a247..1993cc94c 100644 --- a/src/Language/PureScript/AST/Declarations.hs +++ b/src/Language/PureScript/AST/Declarations.hs @@ -394,7 +394,7 @@ data Declaration -- | -- A data type declaration (data or newtype, name, arguments, data constructors) -- - = DataDeclaration SourceAnn DataDeclType (ProperName 'TypeName) [(Text, Maybe SourceType)] [DataConstructorDeclaration] + = DataDeclaration SourceAnn DataDeclType (ProperName 'TypeName) [(Text, SourceType)] [DataConstructorDeclaration] -- | -- A minimal mutually recursive set of data type declarations -- @@ -402,7 +402,7 @@ data Declaration -- | -- A type synonym declaration (name, arguments, type) -- - | TypeSynonymDeclaration SourceAnn (ProperName 'TypeName) [(Text, Maybe SourceType)] SourceType + | TypeSynonymDeclaration SourceAnn (ProperName 'TypeName) [(Text, SourceType)] SourceType -- | -- A kind signature declaration -- @@ -445,7 +445,7 @@ data Declaration -- | -- A type class declaration (name, argument, implies, member declarations) -- - | TypeClassDeclaration SourceAnn (ProperName 'ClassName) [(Text, Maybe SourceType)] [SourceConstraint] [FunctionalDependency] [Declaration] + | TypeClassDeclaration SourceAnn (ProperName 'ClassName) [(Text, SourceType)] [SourceConstraint] [FunctionalDependency] [Declaration] -- | -- A type instance declaration (instance chain, chain index, name, -- dependencies, class name, instance types, member declarations) diff --git a/src/Language/PureScript/AST/Traversals.hs b/src/Language/PureScript/AST/Traversals.hs index abbe6e5a1..ea555c9a6 100644 --- a/src/Language/PureScript/AST/Traversals.hs +++ b/src/Language/PureScript/AST/Traversals.hs @@ -677,17 +677,17 @@ accumTypes accumTypes f = everythingOnValues mappend forDecls forValues forBinders (const mempty) (const mempty) where forDecls (DataDeclaration _ _ _ args dctors) = - foldMap (foldMap f . snd) args <> + foldMap ( f . snd) args <> foldMap (foldMap (f . snd) . dataCtorFields) dctors forDecls (ExternDataDeclaration _ _ ty) = f ty forDecls (ExternDeclaration _ _ ty) = f ty forDecls (TypeClassDeclaration _ _ args implies _ _) = - foldMap (foldMap (foldMap f)) args <> + foldMap (foldMap f) args <> foldMap (foldMap f . constraintArgs) implies forDecls (TypeInstanceDeclaration _ _ _ _ _ cs _ tys _) = foldMap (foldMap f . constraintArgs) cs <> foldMap f tys forDecls (TypeSynonymDeclaration _ _ args ty) = - foldMap (foldMap f . snd) args <> + foldMap (f . snd) args <> f ty forDecls (KindDeclaration _ _ _ ty) = f ty forDecls (TypeDeclaration td) = f (tydeclType td) diff --git a/src/Language/PureScript/CST/Convert.hs b/src/Language/PureScript/CST/Convert.hs index c75d333dc..e9f286b2b 100644 --- a/src/Language/PureScript/CST/Convert.hs +++ b/src/Language/PureScript/CST/Convert.hs @@ -121,8 +121,12 @@ convertType' withinVta fileName = go rowTail go = \case - TypeVar _ a -> - T.TypeVar (sourceName fileName a) . getIdent $ nameValue a + TypeKinded _ (TypeVar _ a) _ kd -> + T.TypeVar (sourceName fileName a) (getIdent $ nameValue a) (go kd) + TypeVar _ a -> error $ "tyvar " + <> Text.unpack (getIdent $ nameValue a) + <> " lacks kind annotation (TODO: better error)" + -- T.TypeVar (sourceName fileName a) (getIdent $ nameValue a) (go ki) TypeConstructor _ a -> T.TypeConstructor (sourceQualName fileName a) $ qualified a TypeWildcard _ a -> @@ -145,8 +149,9 @@ convertType' withinVta fileName = go mkForAll a b v t = do let ann' = widenLeft (tokAnn $ nameTok a) $ T.getAnnForType t T.ForAll ann' (maybe T.TypeVarInvisible (const T.TypeVarVisible) v) (getIdent $ nameValue a) b t Nothing - k (TypeVarKinded (Wrapped _ (Labeled (v, a) _ b) _)) = mkForAll a (Just (go b)) v - k (TypeVarName (v, a)) = mkForAll a Nothing v + k (TypeVarKinded (Wrapped _ (Labeled (v, a) _ b) _)) = mkForAll a ( (go b)) v + -- TODO: Fix this better + k (TypeVarName (v, a)) = error "forall w/o kind annotation" -- mkForAll a Nothing v ty' = foldr k (go ty) bindings ann = widenLeft (tokAnn kw) $ T.getAnnForType ty' T.setAnnForType ann ty' @@ -602,8 +607,8 @@ convertDeclaration fileName decl = case decl of TypeUnaryRow{} -> "Row" goTypeVar = \case - TypeVarKinded (Wrapped _ (Labeled (_, x) _ y) _) -> (getIdent $ nameValue x, Just $ convertType fileName y) - TypeVarName (_, x) -> (getIdent $ nameValue x, Nothing) + TypeVarKinded (Wrapped _ (Labeled (_, x) _ y) _) -> (getIdent $ nameValue x, convertType fileName y) + TypeVarName (_, x) -> error $ "Missing kind annotation for type variable: " <> Text.unpack (getIdent $ nameValue x) -- , Nothing) goInstanceBinding = \case InstanceBindingSignature _ lbl -> diff --git a/src/Language/PureScript/CST/Flatten.hs b/src/Language/PureScript/CST/Flatten.hs index 890614070..831d4cace 100644 --- a/src/Language/PureScript/CST/Flatten.hs +++ b/src/Language/PureScript/CST/Flatten.hs @@ -278,7 +278,7 @@ flattenLabeled ka kc (Labeled a b c) = ka a <> pure b <> kc c flattenType :: Type a -> DList SourceToken flattenType = \case - TypeVar _ a -> pure $ nameTok a + TypeVar _ a -> pure (nameTok a) TypeConstructor _ a -> pure $ qualTok a TypeWildcard _ a -> pure a TypeHole _ a -> pure $ nameTok a diff --git a/src/Language/PureScript/CST/Parser.hs b/src/Language/PureScript/CST/Parser.hs new file mode 100644 index 000000000..87177dded --- /dev/null +++ b/src/Language/PureScript/CST/Parser.hs @@ -0,0 +1,12491 @@ +{-# OPTIONS_GHC -w #-} +module Language.PureScript.CST.Parser + ( parseType + , parseExpr + , parseDecl + , parseIdent + , parseOperator + , parseModule + , parseImportDeclP + , parseDeclP + , parseExprP + , parseTypeP + , parseModuleNameP + , parseQualIdentP + , parse + , PartialResult(..) + ) where + +import Prelude hiding (lex) + +import Control.Monad ((<=<), when) +import Data.Bifunctor (second) +import Data.Foldable (foldl', for_, toList) +import qualified Data.List.NonEmpty as NE +import Data.Text (Text) +import Data.Traversable (for, sequence) +import Language.PureScript.CST.Errors +import Language.PureScript.CST.Flatten (flattenType) +import Language.PureScript.CST.Lexer +import Language.PureScript.CST.Monad +import Language.PureScript.CST.Positions +import Language.PureScript.CST.Types +import Language.PureScript.CST.Utils +import qualified Language.PureScript.Names as N +import qualified Language.PureScript.Roles as R +import Language.PureScript.PSString (PSString) +import qualified Data.Array as Happy_Data_Array +import qualified Data.Bits as Bits +import Control.Applicative(Applicative(..)) +import Control.Monad (ap) + +-- parser produced by Happy Version 1.20.1.1 + +data HappyAbsSyn + = HappyTerminal (SourceToken) + | HappyErrorToken Prelude.Int + | HappyAbsSyn26 (Name N.ModuleName) + | HappyAbsSyn27 (QualifiedProperName) + | HappyAbsSyn28 (ProperName) + | HappyAbsSyn29 (QualifiedName Ident) + | HappyAbsSyn30 (Name Ident) + | HappyAbsSyn31 (QualifiedOpName) + | HappyAbsSyn32 (OpName) + | HappyAbsSyn35 (Label) + | HappyAbsSyn37 ((SourceToken, PSString)) + | HappyAbsSyn38 ((SourceToken, Char)) + | HappyAbsSyn39 ((SourceToken, Either Integer Double)) + | HappyAbsSyn40 ((SourceToken, Integer)) + | HappyAbsSyn41 ((SourceToken, Bool)) + | HappyAbsSyn42 (Type ()) + | HappyAbsSyn50 (Row ()) + | HappyAbsSyn51 (Labeled Label (Type ())) + | HappyAbsSyn52 (TypeVarBinding ()) + | HappyAbsSyn54 (SourceToken) + | HappyAbsSyn55 (Where ()) + | HappyAbsSyn56 (Expr ()) + | HappyAbsSyn66 (RecordLabeled (Expr ())) + | HappyAbsSyn67 (Either (RecordLabeled (Expr ())) (RecordUpdate ())) + | HappyAbsSyn68 (RecordUpdate ()) + | HappyAbsSyn69 (LetBinding ()) + | HappyAbsSyn70 ((Separated (Binder ()), Guarded ())) + | HappyAbsSyn71 (Guarded ()) + | HappyAbsSyn72 (GuardedExpr ()) + | HappyAbsSyn75 (DoBlock ()) + | HappyAbsSyn76 ((SourceToken, [DoStatement ()])) + | HappyAbsSyn77 ([DoStatement ()]) + | HappyAbsSyn80 ((SourceToken, Separated (PatternGuard ()))) + | HappyAbsSyn81 ((PatternGuard (), [(SourceToken, PatternGuard ())])) + | HappyAbsSyn82 (Expr()) + | HappyAbsSyn83 ([(SourceToken, PatternGuard ())]) + | HappyAbsSyn84 ((Binder (), SourceToken)) + | HappyAbsSyn85 (Binder ()) + | HappyAbsSyn89 (RecordLabeled (Binder ())) + | HappyAbsSyn90 (Module ()) + | HappyAbsSyn91 (([Declaration ()], [Comment LineFeed])) + | HappyAbsSyn92 ([ImportDecl ()]) + | HappyAbsSyn94 (([ImportDecl ()], [Declaration ()])) + | HappyAbsSyn95 (TmpModuleDecl ()) + | HappyAbsSyn97 (Maybe (DelimitedNonEmpty (Export ()))) + | HappyAbsSyn98 (Export ()) + | HappyAbsSyn99 ((DataMembers ())) + | HappyAbsSyn100 (ImportDecl ()) + | HappyAbsSyn101 (Maybe (Maybe SourceToken, DelimitedNonEmpty (Import ()))) + | HappyAbsSyn102 (Import ()) + | HappyAbsSyn103 (Declaration ()) + | HappyAbsSyn104 (DataHead ()) + | HappyAbsSyn107 (DataCtor ()) + | HappyAbsSyn108 (Either (Declaration ()) (ClassHead ())) + | HappyAbsSyn109 (Labeled (Name (N.ProperName 'N.TypeName)) (Type ())) + | HappyAbsSyn110 ((OneOrDelimited (Constraint ()), SourceToken)) + | HappyAbsSyn111 ((Name (N.ProperName 'N.ClassName), [TypeVarBinding ()], Maybe (SourceToken, Separated ClassFundep))) + | HappyAbsSyn112 (Maybe (SourceToken, Separated ClassFundep)) + | HappyAbsSyn113 (ClassFundep) + | HappyAbsSyn114 (Labeled (Name Ident) (Type ())) + | HappyAbsSyn115 (InstanceHead ()) + | HappyAbsSyn116 (OneOrDelimited (Constraint ())) + | HappyAbsSyn117 (Constraint ()) + | HappyAbsSyn118 (InstanceBinding ()) + | HappyAbsSyn119 (FixityFields) + | HappyAbsSyn120 ((SourceToken, Fixity)) + | HappyAbsSyn121 (Role) + | HappyAbsSyn128 (Delimited (Binder ())) + | HappyAbsSyn129 (Delimited (Expr ())) + | HappyAbsSyn130 (Delimited (RecordLabeled (Binder ()))) + | HappyAbsSyn131 (Delimited (RecordLabeled (Expr ()))) + | HappyAbsSyn132 (NE.NonEmpty (Binder ())) + | HappyAbsSyn133 (NE.NonEmpty (GuardedExpr ())) + | HappyAbsSyn135 (NE.NonEmpty (Name Ident)) + | HappyAbsSyn136 (NE.NonEmpty (Role)) + | HappyAbsSyn137 (NE.NonEmpty (TypeVarBinding ())) + | HappyAbsSyn138 ([(Binder ())]) + | HappyAbsSyn139 ([(Type ())]) + | HappyAbsSyn140 ([(TypeVarBinding ())]) + | HappyAbsSyn142 (NE.NonEmpty ((Separated (Binder ()), Guarded ()))) + | HappyAbsSyn143 (NE.NonEmpty (Labeled (Name Ident) (Type ()))) + | HappyAbsSyn144 (NE.NonEmpty (InstanceBinding ())) + | HappyAbsSyn145 (NE.NonEmpty (LetBinding ())) + | HappyAbsSyn146 (NE.NonEmpty (TmpModuleDecl ())) + | HappyAbsSyn147 (Separated (Binder ())) + | HappyAbsSyn148 (Separated (Constraint ())) + | HappyAbsSyn149 (Separated (DataCtor ())) + | HappyAbsSyn150 (Separated (Declaration ())) + | HappyAbsSyn151 (Separated (Export ())) + | HappyAbsSyn152 (Separated (Expr ())) + | HappyAbsSyn153 (Separated (ClassFundep)) + | HappyAbsSyn154 (Separated (Import ())) + | HappyAbsSyn155 (Separated (Label)) + | HappyAbsSyn156 (Separated (ProperName)) + | HappyAbsSyn157 (Separated (RecordUpdate ())) + | HappyAbsSyn158 (Separated (Either (RecordLabeled (Expr ())) (RecordUpdate ()))) + | HappyAbsSyn159 (Separated (Labeled Label (Type ()))) + | HappyAbsSyn160 (NE.NonEmpty (Type ())) + | HappyAbsSyn174 (Separated (RecordLabeled (Binder ()))) + | HappyAbsSyn175 (Separated (RecordLabeled (Expr ()))) + | HappyAbsSyn176 ([(SourceToken, (Binder ()))]) + | HappyAbsSyn177 ([(SourceToken, (Constraint ()))]) + | HappyAbsSyn178 ([(SourceToken, (DataCtor ()))]) + | HappyAbsSyn179 ([(SourceToken, (Declaration ()))]) + | HappyAbsSyn180 ([(SourceToken, (Export ()))]) + | HappyAbsSyn181 ([(SourceToken, (Expr ()))]) + | HappyAbsSyn182 ([(SourceToken, (ClassFundep))]) + | HappyAbsSyn183 ([(SourceToken, (Import ()))]) + | HappyAbsSyn184 ([(SourceToken, (Label))]) + | HappyAbsSyn185 ([(SourceToken, (ProperName))]) + | HappyAbsSyn186 ([(SourceToken, (RecordUpdate ()))]) + | HappyAbsSyn187 ([(SourceToken, (Either (RecordLabeled (Expr ())) (RecordUpdate ())))]) + | HappyAbsSyn188 ([(SourceToken, (Labeled Label (Type ())))]) + | HappyAbsSyn192 ([(SourceToken, (RecordLabeled (Binder ())))]) + | HappyAbsSyn193 ([(SourceToken, (RecordLabeled (Expr ())))]) + +{- to allow type-synonyms as our monads (likely + - with explicitly-specified bind and return) + - in Haskell98, it seems that with + - /type M a = .../, then /(HappyReduction M)/ + - is not allowed. But Happy is a + - code-generator that can just substitute it. +type HappyReduction m = + Prelude.Int + -> (SourceToken) + -> HappyState (SourceToken) (HappyStk HappyAbsSyn -> m HappyAbsSyn) + -> [HappyState (SourceToken) (HappyStk HappyAbsSyn -> m HappyAbsSyn)] + -> HappyStk HappyAbsSyn + -> m HappyAbsSyn +-} + +action_0, + action_1, + action_2, + action_3, + action_4, + action_5, + action_6, + action_7, + action_8, + action_9, + action_10, + action_11, + action_12, + action_13, + action_14, + action_15, + action_16, + action_17, + action_18, + action_19, + action_20, + action_21, + action_22, + action_23, + action_24, + action_25, + action_26, + action_27, + action_28, + action_29, + action_30, + action_31, + action_32, + action_33, + action_34, + action_35, + action_36, + action_37, + action_38, + action_39, + action_40, + action_41, + action_42, + action_43, + action_44, + action_45, + action_46, + action_47, + action_48, + action_49, + action_50, + action_51, + action_52, + action_53, + action_54, + action_55, + action_56, + action_57, + action_58, + action_59, + action_60, + action_61, + action_62, + action_63, + action_64, + action_65, + action_66, + action_67, + action_68, + action_69, + action_70, + action_71, + action_72, + action_73, + action_74, + action_75, + action_76, + action_77, + action_78, + action_79, + action_80, + action_81, + action_82, + action_83, + action_84, + action_85, + action_86, + action_87, + action_88, + action_89, + action_90, + action_91, + action_92, + action_93, + action_94, + action_95, + action_96, + action_97, + action_98, + action_99, + action_100, + action_101, + action_102, + action_103, + action_104, + action_105, + action_106, + action_107, + action_108, + action_109, + action_110, + action_111, + action_112, + action_113, + action_114, + action_115, + action_116, + action_117, + action_118, + action_119, + action_120, + action_121, + action_122, + action_123, + action_124, + action_125, + action_126, + action_127, + action_128, + action_129, + action_130, + action_131, + action_132, + action_133, + action_134, + action_135, + action_136, + action_137, + action_138, + action_139, + action_140, + action_141, + action_142, + action_143, + action_144, + action_145, + action_146, + action_147, + action_148, + action_149, + action_150, + action_151, + action_152, + action_153, + action_154, + action_155, + action_156, + action_157, + action_158, + action_159, + action_160, + action_161, + action_162, + action_163, + action_164, + action_165, + action_166, + action_167, + action_168, + action_169, + action_170, + action_171, + action_172, + action_173, + action_174, + action_175, + action_176, + action_177, + action_178, + action_179, + action_180, + action_181, + action_182, + action_183, + action_184, + action_185, + action_186, + action_187, + action_188, + action_189, + action_190, + action_191, + action_192, + action_193, + action_194, + action_195, + action_196, + action_197, + action_198, + action_199, + action_200, + action_201, + action_202, + action_203, + action_204, + action_205, + action_206, + action_207, + action_208, + action_209, + action_210, + action_211, + action_212, + action_213, + action_214, + action_215, + action_216, + action_217, + action_218, + action_219, + action_220, + action_221, + action_222, + action_223, + action_224, + action_225, + action_226, + action_227, + action_228, + action_229, + action_230, + action_231, + action_232, + action_233, + action_234, + action_235, + action_236, + action_237, + action_238, + action_239, + action_240, + action_241, + action_242, + action_243, + action_244, + action_245, + action_246, + action_247, + action_248, + action_249, + action_250, + action_251, + action_252, + action_253, + action_254, + action_255, + action_256, + action_257, + action_258, + action_259, + action_260, + action_261, + action_262, + action_263, + action_264, + action_265, + action_266, + action_267, + action_268, + action_269, + action_270, + action_271, + action_272, + action_273, + action_274, + action_275, + action_276, + action_277, + action_278, + action_279, + action_280, + action_281, + action_282, + action_283, + action_284, + action_285, + action_286, + action_287, + action_288, + action_289, + action_290, + action_291, + action_292, + action_293, + action_294, + action_295, + action_296, + action_297, + action_298, + action_299, + action_300, + action_301, + action_302, + action_303, + action_304, + action_305, + action_306, + action_307, + action_308, + action_309, + action_310, + action_311, + action_312, + action_313, + action_314, + action_315, + action_316, + action_317, + action_318, + action_319, + action_320, + action_321, + action_322, + action_323, + action_324, + action_325, + action_326, + action_327, + action_328, + action_329, + action_330, + action_331, + action_332, + action_333, + action_334, + action_335, + action_336, + action_337, + action_338, + action_339, + action_340, + action_341, + action_342, + action_343, + action_344, + action_345, + action_346, + action_347, + action_348, + action_349, + action_350, + action_351, + action_352, + action_353, + action_354, + action_355, + action_356, + action_357, + action_358, + action_359, + action_360, + action_361, + action_362, + action_363, + action_364, + action_365, + action_366, + action_367, + action_368, + action_369, + action_370, + action_371, + action_372, + action_373, + action_374, + action_375, + action_376, + action_377, + action_378, + action_379, + action_380, + action_381, + action_382, + action_383, + action_384, + action_385, + action_386, + action_387, + action_388, + action_389, + action_390, + action_391, + action_392, + action_393, + action_394, + action_395, + action_396, + action_397, + action_398, + action_399, + action_400, + action_401, + action_402, + action_403, + action_404, + action_405, + action_406, + action_407, + action_408, + action_409, + action_410, + action_411, + action_412, + action_413, + action_414, + action_415, + action_416, + action_417, + action_418, + action_419, + action_420, + action_421, + action_422, + action_423, + action_424, + action_425, + action_426, + action_427, + action_428, + action_429, + action_430, + action_431, + action_432, + action_433, + action_434, + action_435, + action_436, + action_437, + action_438, + action_439, + action_440, + action_441, + action_442, + action_443, + action_444, + action_445, + action_446, + action_447, + action_448, + action_449, + action_450, + action_451, + action_452, + action_453, + action_454, + action_455, + action_456, + action_457, + action_458, + action_459, + action_460, + action_461, + action_462, + action_463, + action_464, + action_465, + action_466, + action_467, + action_468, + action_469, + action_470, + action_471, + action_472, + action_473, + action_474, + action_475, + action_476, + action_477, + action_478, + action_479, + action_480, + action_481, + action_482, + action_483, + action_484, + action_485, + action_486, + action_487, + action_488, + action_489, + action_490, + action_491, + action_492, + action_493, + action_494, + action_495, + action_496, + action_497, + action_498, + action_499, + action_500, + action_501, + action_502, + action_503, + action_504, + action_505, + action_506, + action_507, + action_508, + action_509, + action_510, + action_511, + action_512, + action_513, + action_514, + action_515, + action_516, + action_517, + action_518, + action_519, + action_520, + action_521, + action_522, + action_523, + action_524, + action_525, + action_526, + action_527, + action_528, + action_529, + action_530, + action_531, + action_532, + action_533, + action_534, + action_535, + action_536, + action_537, + action_538, + action_539, + action_540, + action_541, + action_542, + action_543, + action_544, + action_545, + action_546, + action_547, + action_548, + action_549, + action_550, + action_551, + action_552, + action_553, + action_554, + action_555, + action_556, + action_557, + action_558, + action_559, + action_560, + action_561, + action_562, + action_563, + action_564, + action_565, + action_566, + action_567, + action_568, + action_569, + action_570, + action_571, + action_572, + action_573, + action_574, + action_575, + action_576, + action_577, + action_578, + action_579, + action_580, + action_581, + action_582, + action_583, + action_584, + action_585, + action_586, + action_587, + action_588, + action_589, + action_590, + action_591, + action_592, + action_593, + action_594, + action_595, + action_596, + action_597, + action_598, + action_599, + action_600, + action_601, + action_602, + action_603, + action_604, + action_605, + action_606, + action_607, + action_608, + action_609, + action_610, + action_611, + action_612, + action_613, + action_614, + action_615, + action_616, + action_617, + action_618, + action_619, + action_620, + action_621, + action_622, + action_623, + action_624, + action_625, + action_626, + action_627, + action_628, + action_629, + action_630, + action_631, + action_632, + action_633, + action_634, + action_635, + action_636, + action_637, + action_638, + action_639, + action_640, + action_641, + action_642, + action_643, + action_644, + action_645, + action_646, + action_647, + action_648, + action_649, + action_650, + action_651, + action_652, + action_653, + action_654, + action_655, + action_656, + action_657, + action_658, + action_659, + action_660, + action_661, + action_662, + action_663, + action_664, + action_665, + action_666, + action_667, + action_668, + action_669, + action_670, + action_671, + action_672, + action_673, + action_674, + action_675, + action_676, + action_677, + action_678, + action_679, + action_680, + action_681, + action_682, + action_683, + action_684, + action_685, + action_686, + action_687, + action_688, + action_689, + action_690, + action_691, + action_692, + action_693, + action_694, + action_695, + action_696, + action_697, + action_698, + action_699, + action_700, + action_701, + action_702 :: () => Prelude.Int -> ({-HappyReduction (Parser) = -} + Prelude.Int + -> (SourceToken) + -> HappyState (SourceToken) (HappyStk HappyAbsSyn -> (Parser) HappyAbsSyn) + -> [HappyState (SourceToken) (HappyStk HappyAbsSyn -> (Parser) HappyAbsSyn)] + -> HappyStk HappyAbsSyn + -> (Parser) HappyAbsSyn) + +happyReduce_23, + happyReduce_24, + happyReduce_25, + happyReduce_26, + happyReduce_27, + happyReduce_28, + happyReduce_29, + happyReduce_30, + happyReduce_31, + happyReduce_32, + happyReduce_33, + happyReduce_34, + happyReduce_35, + happyReduce_36, + happyReduce_37, + happyReduce_38, + happyReduce_39, + happyReduce_40, + happyReduce_41, + happyReduce_42, + happyReduce_43, + happyReduce_44, + happyReduce_45, + happyReduce_46, + happyReduce_47, + happyReduce_48, + happyReduce_49, + happyReduce_50, + happyReduce_51, + happyReduce_52, + happyReduce_53, + happyReduce_54, + happyReduce_55, + happyReduce_56, + happyReduce_57, + happyReduce_58, + happyReduce_59, + happyReduce_60, + happyReduce_61, + happyReduce_62, + happyReduce_63, + happyReduce_64, + happyReduce_65, + happyReduce_66, + happyReduce_67, + happyReduce_68, + happyReduce_69, + happyReduce_70, + happyReduce_71, + happyReduce_72, + happyReduce_73, + happyReduce_74, + happyReduce_75, + happyReduce_76, + happyReduce_77, + happyReduce_78, + happyReduce_79, + happyReduce_80, + happyReduce_81, + happyReduce_82, + happyReduce_83, + happyReduce_84, + happyReduce_85, + happyReduce_86, + happyReduce_87, + happyReduce_88, + happyReduce_89, + happyReduce_90, + happyReduce_91, + happyReduce_92, + happyReduce_93, + happyReduce_94, + happyReduce_95, + happyReduce_96, + happyReduce_97, + happyReduce_98, + happyReduce_99, + happyReduce_100, + happyReduce_101, + happyReduce_102, + happyReduce_103, + happyReduce_104, + happyReduce_105, + happyReduce_106, + happyReduce_107, + happyReduce_108, + happyReduce_109, + happyReduce_110, + happyReduce_111, + happyReduce_112, + happyReduce_113, + happyReduce_114, + happyReduce_115, + happyReduce_116, + happyReduce_117, + happyReduce_118, + happyReduce_119, + happyReduce_120, + happyReduce_121, + happyReduce_122, + happyReduce_123, + happyReduce_124, + happyReduce_125, + happyReduce_126, + happyReduce_127, + happyReduce_128, + happyReduce_129, + happyReduce_130, + happyReduce_131, + happyReduce_132, + happyReduce_133, + happyReduce_134, + happyReduce_135, + happyReduce_136, + happyReduce_137, + happyReduce_138, + happyReduce_139, + happyReduce_140, + happyReduce_141, + happyReduce_142, + happyReduce_143, + happyReduce_144, + happyReduce_145, + happyReduce_146, + happyReduce_147, + happyReduce_148, + happyReduce_149, + happyReduce_150, + happyReduce_151, + happyReduce_152, + happyReduce_153, + happyReduce_154, + happyReduce_155, + happyReduce_156, + happyReduce_157, + happyReduce_158, + happyReduce_159, + happyReduce_160, + happyReduce_161, + happyReduce_162, + happyReduce_163, + happyReduce_164, + happyReduce_165, + happyReduce_166, + happyReduce_167, + happyReduce_168, + happyReduce_169, + happyReduce_170, + happyReduce_171, + happyReduce_172, + happyReduce_173, + happyReduce_174, + happyReduce_175, + happyReduce_176, + happyReduce_177, + happyReduce_178, + happyReduce_179, + happyReduce_180, + happyReduce_181, + happyReduce_182, + happyReduce_183, + happyReduce_184, + happyReduce_185, + happyReduce_186, + happyReduce_187, + happyReduce_188, + happyReduce_189, + happyReduce_190, + happyReduce_191, + happyReduce_192, + happyReduce_193, + happyReduce_194, + happyReduce_195, + happyReduce_196, + happyReduce_197, + happyReduce_198, + happyReduce_199, + happyReduce_200, + happyReduce_201, + happyReduce_202, + happyReduce_203, + happyReduce_204, + happyReduce_205, + happyReduce_206, + happyReduce_207, + happyReduce_208, + happyReduce_209, + happyReduce_210, + happyReduce_211, + happyReduce_212, + happyReduce_213, + happyReduce_214, + happyReduce_215, + happyReduce_216, + happyReduce_217, + happyReduce_218, + happyReduce_219, + happyReduce_220, + happyReduce_221, + happyReduce_222, + happyReduce_223, + happyReduce_224, + happyReduce_225, + happyReduce_226, + happyReduce_227, + happyReduce_228, + happyReduce_229, + happyReduce_230, + happyReduce_231, + happyReduce_232, + happyReduce_233, + happyReduce_234, + happyReduce_235, + happyReduce_236, + happyReduce_237, + happyReduce_238, + happyReduce_239, + happyReduce_240, + happyReduce_241, + happyReduce_242, + happyReduce_243, + happyReduce_244, + happyReduce_245, + happyReduce_246, + happyReduce_247, + happyReduce_248, + happyReduce_249, + happyReduce_250, + happyReduce_251, + happyReduce_252, + happyReduce_253, + happyReduce_254, + happyReduce_255, + happyReduce_256, + happyReduce_257, + happyReduce_258, + happyReduce_259, + happyReduce_260, + happyReduce_261, + happyReduce_262, + happyReduce_263, + happyReduce_264, + happyReduce_265, + happyReduce_266, + happyReduce_267, + happyReduce_268, + happyReduce_269, + happyReduce_270, + happyReduce_271, + happyReduce_272, + happyReduce_273, + happyReduce_274, + happyReduce_275, + happyReduce_276, + happyReduce_277, + happyReduce_278, + happyReduce_279, + happyReduce_280, + happyReduce_281, + happyReduce_282, + happyReduce_283, + happyReduce_284, + happyReduce_285, + happyReduce_286, + happyReduce_287, + happyReduce_288, + happyReduce_289, + happyReduce_290, + happyReduce_291, + happyReduce_292, + happyReduce_293, + happyReduce_294, + happyReduce_295, + happyReduce_296, + happyReduce_297, + happyReduce_298, + happyReduce_299, + happyReduce_300, + happyReduce_301, + happyReduce_302, + happyReduce_303, + happyReduce_304, + happyReduce_305, + happyReduce_306, + happyReduce_307, + happyReduce_308, + happyReduce_309, + happyReduce_310, + happyReduce_311, + happyReduce_312, + happyReduce_313, + happyReduce_314, + happyReduce_315, + happyReduce_316, + happyReduce_317, + happyReduce_318, + happyReduce_319, + happyReduce_320, + happyReduce_321, + happyReduce_322, + happyReduce_323, + happyReduce_324, + happyReduce_325, + happyReduce_326, + happyReduce_327, + happyReduce_328, + happyReduce_329, + happyReduce_330, + happyReduce_331, + happyReduce_332, + happyReduce_333, + happyReduce_334, + happyReduce_335, + happyReduce_336, + happyReduce_337, + happyReduce_338, + happyReduce_339, + happyReduce_340, + happyReduce_341, + happyReduce_342, + happyReduce_343, + happyReduce_344, + happyReduce_345, + happyReduce_346, + happyReduce_347, + happyReduce_348, + happyReduce_349, + happyReduce_350, + happyReduce_351, + happyReduce_352, + happyReduce_353, + happyReduce_354, + happyReduce_355, + happyReduce_356, + happyReduce_357, + happyReduce_358, + happyReduce_359, + happyReduce_360, + happyReduce_361, + happyReduce_362, + happyReduce_363, + happyReduce_364, + happyReduce_365, + happyReduce_366, + happyReduce_367, + happyReduce_368, + happyReduce_369, + happyReduce_370, + happyReduce_371, + happyReduce_372, + happyReduce_373, + happyReduce_374, + happyReduce_375, + happyReduce_376, + happyReduce_377, + happyReduce_378, + happyReduce_379, + happyReduce_380, + happyReduce_381, + happyReduce_382, + happyReduce_383, + happyReduce_384, + happyReduce_385, + happyReduce_386, + happyReduce_387, + happyReduce_388, + happyReduce_389, + happyReduce_390, + happyReduce_391, + happyReduce_392, + happyReduce_393, + happyReduce_394, + happyReduce_395, + happyReduce_396, + happyReduce_397, + happyReduce_398, + happyReduce_399, + happyReduce_400, + happyReduce_401, + happyReduce_402, + happyReduce_403, + happyReduce_404, + happyReduce_405, + happyReduce_406, + happyReduce_407, + happyReduce_408, + happyReduce_409, + happyReduce_410, + happyReduce_411, + happyReduce_412, + happyReduce_413, + happyReduce_414, + happyReduce_415, + happyReduce_416, + happyReduce_417, + happyReduce_418, + happyReduce_419, + happyReduce_420, + happyReduce_421, + happyReduce_422, + happyReduce_423, + happyReduce_424, + happyReduce_425, + happyReduce_426, + happyReduce_427, + happyReduce_428, + happyReduce_429, + happyReduce_430, + happyReduce_431, + happyReduce_432, + happyReduce_433, + happyReduce_434, + happyReduce_435, + happyReduce_436 :: () => ({-HappyReduction (Parser) = -} + Prelude.Int + -> (SourceToken) + -> HappyState (SourceToken) (HappyStk HappyAbsSyn -> (Parser) HappyAbsSyn) + -> [HappyState (SourceToken) (HappyStk HappyAbsSyn -> (Parser) HappyAbsSyn)] + -> HappyStk HappyAbsSyn + -> (Parser) HappyAbsSyn) + +happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int +happyExpList = Happy_Data_Array.listArray (0,5391) ([0,0,0,0,0,0,0,0,0,0,0,0,10,1184,44,60955,233,0,0,0,0,0,0,0,0,0,0,0,43008,32768,35387,27778,59377,7,0,0,0,0,0,0,0,0,0,0,0,0,16384,512,33200,0,0,0,0,0,0,0,0,0,0,0,0,0,5120,32,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28788,39838,8,0,0,0,0,0,0,0,0,0,0,0,0,0,53248,30913,8814,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35869,9959,2,0,0,0,0,0,0,0,0,0,0,0,0,42,36576,8354,64603,505,0,0,0,0,0,0,0,0,0,0,0,10240,32768,45074,27648,42936,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,256,49160,1542,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,2,10478,45578,40901,31,0,0,0,0,0,0,0,0,0,0,0,49152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,36576,8354,64603,505,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,40960,2,8266,45058,1669,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,832,2,0,6144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2688,2048,2177,5824,31770,0,0,0,0,0,0,0,0,0,0,0,0,42,1184,34,26715,496,0,0,0,0,0,0,0,0,0,0,0,16384,0,57336,65535,32807,1,0,0,0,0,0,0,0,0,0,0,0,1696,18944,544,34224,7942,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5120,128,8300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,1056,32,60955,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2053,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,15744,33418,61804,2023,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2688,47104,10403,5832,32383,0,0,0,0,0,0,0,0,0,0,0,0,16,65024,65527,2559,96,0,0,0,0,0,0,0,0,0,0,0,43008,32769,35387,27778,59377,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,10,33032,49160,6678,124,0,0,0,0,0,0,0,0,0,0,0,10752,57344,41614,23328,63996,1,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2688,47104,10403,5832,32383,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,672,60928,2600,50610,8095,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2061,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1920,8,0,24576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,1056,32,60955,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20480,512,33200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2560,41472,65534,65535,59887,0,0,0,0,0,0,0,0,0,0,0,0,0,63496,65503,10239,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,2050,8258,45058,1669,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,2049,1728,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35869,9959,2,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49616,28281,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,512,128,8196,6912,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,8192,2048,64,45058,129,0,0,0,0,0,0,0,0,0,0,0,0,640,2048,2049,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,514,33200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,4098,128,8300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,45058,1929,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,160,18944,704,57776,3742,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,0,49226,45058,40673,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,4736,176,47212,935,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,640,43136,65535,65535,14971,0,0,0,0,0,0,0,0,0,0,0,0,0,65026,65527,2559,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,16384,2049,1728,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1280,32,2075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32784,27648,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,2,296,49160,31622,58,0,0,0,0,0,0,0,0,0,0,0,2560,40960,11268,6912,59886,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,0,49226,45058,40673,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,2,296,49163,31622,58,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,4736,136,41324,1985,0,0,0,0,0,0,0,0,0,0,0,40960,2,10478,45578,40901,31,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,42,1184,34,26715,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43008,32768,35387,27778,59377,7,0,0,0,0,0,0,0,0,0,0,0,0,57344,65407,40959,1536,0,0,0,0,0,0,0,0,0,0,0,0,4,65408,65533,639,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,4224,128,47212,935,0,0,0,0,0,0,0,0,0,0,0,40960,2,10478,45578,40901,31,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,6144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,1056,32,60955,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2688,10240,2177,5824,31770,0,0,0,0,0,0,0,0,0,0,0,0,10,1184,44,60955,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,672,16896,544,34224,7942,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,65023,32767,6146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43008,32768,34834,27648,49569,7,0,0,0,0,0,0,0,0,0,0,0,672,18944,544,34224,7942,0,0,0,0,0,0,0,0,0,0,0,32768,10,33064,49160,6678,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,45058,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,529,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16392,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57344,65407,40959,1536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10752,57344,41614,23328,63996,1,0,0,0,0,0,0,0,0,0,0,0,168,15232,33418,61804,2023,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2688,47104,10403,5832,32383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43008,32768,35387,27778,59377,7,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,10,41912,51240,32534,126,0,0,0,0,0,0,0,0,0,0,0,10752,9088,8709,23296,61544,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5376,8,0,24576,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,20480,128,45677,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8196,6912,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,0,49226,45058,40673,14,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2560,40960,11268,6912,59886,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,65023,32767,6146,0,0,0,0,0,0,0,0,0,0,0,0,10,1184,44,60955,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,18944,704,57776,3742,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43008,32768,35387,27778,59377,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,2,264,49160,31622,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,1056,32,60955,233,0,0,0,0,0,0,0,0,0,0,0,0,0,32784,27648,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,512,33200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,16384,512,33200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,49160,518,0,0,0,0,0,0,0,0,0,0,0,0,2560,40960,11268,6912,59886,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24576,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2560,40960,11268,6912,59886,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32848,27648,690,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,320,45058,2761,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,16896,512,57776,3742,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2560,8192,8196,6912,59886,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,0,49226,45058,40673,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5120,32,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,32848,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,168,4226,136,41324,1985,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,10,41912,51240,32534,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10240,32768,45074,27648,42936,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40960,0,49226,45058,40673,14,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,672,18944,544,34224,7942,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,10752,57344,41614,23328,63996,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,43008,32768,34834,27648,49569,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,65023,32767,6146,0,0,0,0,0,0,0,0,0,0,0,0,0,65024,65527,2559,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57344,65407,40959,1536,0,0,0,0,0,0,0,0,0,0,0,32768,10,41912,51240,32534,126,0,0,0,0,0,0,0,0,0,0,0,10752,57344,41614,23328,63996,1,0,0,0,0,0,0,0,0,0,0,0,168,15232,33418,61804,2023,0,0,0,0,0,0,0,0,0,0,0,40960,2,10478,45578,40901,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8196,6912,8,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,45058,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8196,6912,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,45058,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16386,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2053,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2688,47104,10403,5832,32383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,10,41912,51240,32534,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32848,27904,690,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,128,8300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,32,2075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,2,296,49163,31622,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1280,8,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,640,10240,2817,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10240,32768,45074,27648,42936,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32848,27648,690,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,640,2048,2049,34496,14971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,1184,34,26715,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,4736,136,41324,1985,0,0,0,0,0,0,0,0,0,0,0,40960,2,8266,45058,1669,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1192,15232,33418,61804,2023,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,65023,32767,6146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57336,65535,32807,1,0,0,0,0,0,0,0,0,0,0,0,672,60928,2600,50610,8095,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43008,32768,35387,27778,59377,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,10,41912,51240,32534,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,15232,33418,61804,2023,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20480,128,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ]) + +{-# NOINLINE happyExpListPerState #-} +happyExpListPerState st = + token_strs_expected + where token_strs = ["error","%dummy","%start_parseType","%start_parseExpr","%start_parseIdent","%start_parseOperator","%start_parseModuleBody","%start_parseDecl","%start_parseImportDeclP","%start_parseDeclP","%start_parseExprP","%start_parseTypeP","%start_parseModuleNameP","%start_parseQualIdentP","%start_parseModuleHeader","%start_parseDoStatement","%start_parseDoExpr","%start_parseDoNext","%start_parseGuardExpr","%start_parseGuardNext","%start_parseGuardStatement","%start_parseClassSignature","%start_parseClassSuper","%start_parseClassNameAndFundeps","%start_parseBinderAndArrow","moduleName","qualProperName","properName","qualIdent","ident","qualOp","op","qualSymbol","symbol","label","hole","string","char","number","int","boolean","type","type1","type2","type3","type4","type5","typeAtom","typeKindedAtom","row","rowLabel","typeVarBinding","typeVarBindingPlain","forall","exprWhere","expr","expr1","expr2","exprBacktick","expr3","expr4","expr5","expr6","expr7","exprAtom","recordLabel","recordUpdateOrLabel","recordUpdate","letBinding","caseBranch","guardedDecl","guardedDeclExpr","guardedCase","guardedCaseExpr","doBlock","adoBlock","doStatement","doExpr","doNext","guard","guardStatement","guardExpr","guardNext","binderAndArrow","binder","binder1","binder2","binderAtom","recordBinder","moduleHeader","moduleBody","moduleImports","importDecls","moduleDecls","moduleDecl","declElse","exports","export","dataMembers","importDecl","imports","import","decl","dataHead","typeHead","newtypeHead","dataCtor","classHead","classSignature","classSuper","classNameAndFundeps","fundeps","fundep","classMember","instHead","constraints","constraint","instBinding","fixity","infix","role","importDeclP","declP","exprP","typeP","moduleNameP","qualIdentP","delim__'['__binder__','__']'__","delim__'['__expr__','__']'__","delim__'{'__recordBinder__','__'}'__","delim__'{'__recordLabel__','__'}'__","many__binderAtom__","many__guardedCaseExpr__","many__guardedDeclExpr__","many__ident__","many__role__","many__typeVarBinding__","manyOrEmpty__binderAtom__","manyOrEmpty__typeAtom__","manyOrEmpty__typeVarBinding__","manyOrEmpty__typeVarBindingPlain__","manySep__caseBranch__'\\;'__","manySep__classMember__'\\;'__","manySep__instBinding__'\\;'__","manySep__letBinding__'\\;'__","manySep__moduleDecl__'\\;'__","sep__binder1__','__","sep__constraint__','__","sep__dataCtor__'|'__","sep__decl__declElse__","sep__export__','__","sep__expr__','__","sep__fundep__','__","sep__import__','__","sep__label__'.'__","sep__properName__','__","sep__recordUpdate__','__","sep__recordUpdateOrLabel__','__","sep__rowLabel__','__","many__typeAtom__","many__typeVarBindingPlain__","many1__binderAtom__","many1__guardedCaseExpr__","many1__guardedDeclExpr__","many1__ident__","many1__role__","many1__typeVarBinding__","manySep1__caseBranch__'\\;'__","manySep1__classMember__'\\;'__","manySep1__instBinding__'\\;'__","manySep1__letBinding__'\\;'__","manySep1__moduleDecl__'\\;'__","sep__binder__','__","sep__recordBinder__','__","sep__recordLabel__','__","sep1__binder1__','__","sep1__constraint__','__","sep1__dataCtor__'|'__","sep1__decl__declElse__","sep1__export__','__","sep1__expr__','__","sep1__fundep__','__","sep1__import__','__","sep1__label__'.'__","sep1__properName__','__","sep1__recordUpdate__','__","sep1__recordUpdateOrLabel__','__","sep1__rowLabel__','__","many1__typeAtom__","many1__typeVarBindingPlain__","sep1__binder__','__","sep1__recordBinder__','__","sep1__recordLabel__','__","'('","')'","'{'","'}'","'['","']'","'\\{'","'\\}'","'\\;'","'<-'","'->'","'<='","'=>'","':'","'::'","'='","'|'","'`'","'.'","','","'_'","'\\\\'","'-'","'@'","'ado'","'as'","'case'","'class'","'data'","'derive'","'do'","'else'","'false'","'forall'","'forallu'","'foreign'","'hiding'","'import'","'if'","'in'","'infix'","'infixl'","'infixr'","'instance'","'let'","'module'","'newtype'","'nominal'","'phantom'","'of'","'representational'","'role'","'then'","'true'","'type'","'where'","'(->)'","'(..)'","LOWER","QUAL_LOWER","UPPER","QUAL_UPPER","SYMBOL","QUAL_SYMBOL","OPERATOR","QUAL_OPERATOR","LIT_HOLE","LIT_CHAR","LIT_STRING","LIT_RAW_STRING","LIT_INT","LIT_NUMBER","%eof"] + bit_start = st Prelude.* 266 + bit_end = (st Prelude.+ 1) Prelude.* 266 + read_bit = readArrayBit happyExpList + bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1] + bits_indexed = Prelude.zip bits [0..265] + token_strs_expected = Prelude.concatMap f bits_indexed + f (Prelude.False, _) = [] + f (Prelude.True, nr) = [token_strs Prelude.!! nr] + +action_0 (194) = happyShift action_148 +action_0 (196) = happyShift action_149 +action_0 (214) = happyShift action_150 +action_0 (216) = happyShift action_151 +action_0 (219) = happyShift action_45 +action_0 (227) = happyShift action_152 +action_0 (228) = happyShift action_153 +action_0 (230) = happyShift action_47 +action_0 (241) = happyShift action_48 +action_0 (242) = happyShift action_49 +action_0 (244) = happyShift action_50 +action_0 (245) = happyShift action_51 +action_0 (250) = happyShift action_154 +action_0 (251) = happyShift action_112 +action_0 (252) = happyShift action_53 +action_0 (254) = happyShift action_54 +action_0 (255) = happyShift action_55 +action_0 (256) = happyShift action_115 +action_0 (257) = happyShift action_116 +action_0 (260) = happyShift action_117 +action_0 (262) = happyShift action_57 +action_0 (263) = happyShift action_58 +action_0 (264) = happyShift action_155 +action_0 (27) = happyGoto action_133 +action_0 (30) = happyGoto action_134 +action_0 (33) = happyGoto action_135 +action_0 (36) = happyGoto action_136 +action_0 (37) = happyGoto action_137 +action_0 (40) = happyGoto action_138 +action_0 (42) = happyGoto action_198 +action_0 (43) = happyGoto action_140 +action_0 (44) = happyGoto action_141 +action_0 (45) = happyGoto action_142 +action_0 (46) = happyGoto action_143 +action_0 (47) = happyGoto action_144 +action_0 (48) = happyGoto action_145 +action_0 (54) = happyGoto action_146 +action_0 _ = happyFail (happyExpListPerState 0) + +action_1 (194) = happyShift action_95 +action_1 (196) = happyShift action_96 +action_1 (198) = happyShift action_97 +action_1 (214) = happyShift action_98 +action_1 (215) = happyShift action_99 +action_1 (216) = happyShift action_100 +action_1 (218) = happyShift action_101 +action_1 (219) = happyShift action_102 +action_1 (220) = happyShift action_103 +action_1 (224) = happyShift action_104 +action_1 (226) = happyShift action_46 +action_1 (230) = happyShift action_105 +action_1 (232) = happyShift action_106 +action_1 (238) = happyShift action_107 +action_1 (241) = happyShift action_108 +action_1 (242) = happyShift action_109 +action_1 (244) = happyShift action_110 +action_1 (245) = happyShift action_111 +action_1 (247) = happyShift action_52 +action_1 (251) = happyShift action_112 +action_1 (252) = happyShift action_113 +action_1 (253) = happyShift action_114 +action_1 (254) = happyShift action_54 +action_1 (255) = happyShift action_55 +action_1 (256) = happyShift action_115 +action_1 (257) = happyShift action_116 +action_1 (260) = happyShift action_117 +action_1 (261) = happyShift action_56 +action_1 (262) = happyShift action_57 +action_1 (263) = happyShift action_58 +action_1 (264) = happyShift action_59 +action_1 (265) = happyShift action_60 +action_1 (27) = happyGoto action_74 +action_1 (29) = happyGoto action_75 +action_1 (33) = happyGoto action_76 +action_1 (36) = happyGoto action_77 +action_1 (37) = happyGoto action_78 +action_1 (38) = happyGoto action_79 +action_1 (39) = happyGoto action_80 +action_1 (41) = happyGoto action_81 +action_1 (56) = happyGoto action_197 +action_1 (57) = happyGoto action_122 +action_1 (58) = happyGoto action_83 +action_1 (60) = happyGoto action_84 +action_1 (61) = happyGoto action_85 +action_1 (62) = happyGoto action_86 +action_1 (63) = happyGoto action_87 +action_1 (64) = happyGoto action_88 +action_1 (65) = happyGoto action_89 +action_1 (75) = happyGoto action_90 +action_1 (76) = happyGoto action_91 +action_1 (129) = happyGoto action_93 +action_1 (131) = happyGoto action_94 +action_1 _ = happyFail (happyExpListPerState 1) + +action_2 (219) = happyShift action_45 +action_2 (230) = happyShift action_47 +action_2 (241) = happyShift action_48 +action_2 (242) = happyShift action_49 +action_2 (244) = happyShift action_50 +action_2 (245) = happyShift action_51 +action_2 (252) = happyShift action_53 +action_2 (30) = happyGoto action_196 +action_2 _ = happyFail (happyExpListPerState 2) + +action_3 (205) = happyShift action_192 +action_3 (207) = happyShift action_193 +action_3 (216) = happyShift action_194 +action_3 (258) = happyShift action_195 +action_3 (32) = happyGoto action_191 +action_3 _ = happyFail (happyExpListPerState 3) + +action_4 (219) = happyShift action_45 +action_4 (221) = happyShift action_168 +action_4 (222) = happyShift action_169 +action_4 (223) = happyShift action_170 +action_4 (229) = happyShift action_171 +action_4 (230) = happyShift action_47 +action_4 (231) = happyShift action_180 +action_4 (234) = happyShift action_172 +action_4 (235) = happyShift action_173 +action_4 (236) = happyShift action_174 +action_4 (237) = happyShift action_175 +action_4 (240) = happyShift action_176 +action_4 (241) = happyShift action_48 +action_4 (242) = happyShift action_49 +action_4 (244) = happyShift action_50 +action_4 (245) = happyShift action_51 +action_4 (248) = happyShift action_177 +action_4 (252) = happyShift action_53 +action_4 (30) = happyGoto action_158 +action_4 (91) = happyGoto action_182 +action_4 (94) = happyGoto action_183 +action_4 (95) = happyGoto action_184 +action_4 (100) = happyGoto action_185 +action_4 (103) = happyGoto action_186 +action_4 (104) = happyGoto action_160 +action_4 (105) = happyGoto action_161 +action_4 (106) = happyGoto action_162 +action_4 (108) = happyGoto action_163 +action_4 (115) = happyGoto action_164 +action_4 (119) = happyGoto action_165 +action_4 (120) = happyGoto action_166 +action_4 (146) = happyGoto action_187 +action_4 (150) = happyGoto action_188 +action_4 (172) = happyGoto action_189 +action_4 (179) = happyGoto action_190 +action_4 _ = happyReduce_249 + +action_5 (219) = happyShift action_45 +action_5 (221) = happyShift action_168 +action_5 (222) = happyShift action_169 +action_5 (223) = happyShift action_170 +action_5 (229) = happyShift action_171 +action_5 (230) = happyShift action_47 +action_5 (234) = happyShift action_172 +action_5 (235) = happyShift action_173 +action_5 (236) = happyShift action_174 +action_5 (237) = happyShift action_175 +action_5 (240) = happyShift action_176 +action_5 (241) = happyShift action_48 +action_5 (242) = happyShift action_49 +action_5 (244) = happyShift action_50 +action_5 (245) = happyShift action_51 +action_5 (248) = happyShift action_177 +action_5 (252) = happyShift action_53 +action_5 (30) = happyGoto action_158 +action_5 (103) = happyGoto action_181 +action_5 (104) = happyGoto action_160 +action_5 (105) = happyGoto action_161 +action_5 (106) = happyGoto action_162 +action_5 (108) = happyGoto action_163 +action_5 (115) = happyGoto action_164 +action_5 (119) = happyGoto action_165 +action_5 (120) = happyGoto action_166 +action_5 _ = happyFail (happyExpListPerState 5) + +action_6 (231) = happyShift action_180 +action_6 (100) = happyGoto action_178 +action_6 (122) = happyGoto action_179 +action_6 _ = happyFail (happyExpListPerState 6) + +action_7 (219) = happyShift action_45 +action_7 (221) = happyShift action_168 +action_7 (222) = happyShift action_169 +action_7 (223) = happyShift action_170 +action_7 (229) = happyShift action_171 +action_7 (230) = happyShift action_47 +action_7 (234) = happyShift action_172 +action_7 (235) = happyShift action_173 +action_7 (236) = happyShift action_174 +action_7 (237) = happyShift action_175 +action_7 (240) = happyShift action_176 +action_7 (241) = happyShift action_48 +action_7 (242) = happyShift action_49 +action_7 (244) = happyShift action_50 +action_7 (245) = happyShift action_51 +action_7 (248) = happyShift action_177 +action_7 (252) = happyShift action_53 +action_7 (30) = happyGoto action_158 +action_7 (103) = happyGoto action_159 +action_7 (104) = happyGoto action_160 +action_7 (105) = happyGoto action_161 +action_7 (106) = happyGoto action_162 +action_7 (108) = happyGoto action_163 +action_7 (115) = happyGoto action_164 +action_7 (119) = happyGoto action_165 +action_7 (120) = happyGoto action_166 +action_7 (123) = happyGoto action_167 +action_7 _ = happyFail (happyExpListPerState 7) + +action_8 (194) = happyShift action_95 +action_8 (196) = happyShift action_96 +action_8 (198) = happyShift action_97 +action_8 (214) = happyShift action_98 +action_8 (215) = happyShift action_99 +action_8 (216) = happyShift action_100 +action_8 (218) = happyShift action_101 +action_8 (219) = happyShift action_102 +action_8 (220) = happyShift action_103 +action_8 (224) = happyShift action_104 +action_8 (226) = happyShift action_46 +action_8 (230) = happyShift action_105 +action_8 (232) = happyShift action_106 +action_8 (238) = happyShift action_107 +action_8 (241) = happyShift action_108 +action_8 (242) = happyShift action_109 +action_8 (244) = happyShift action_110 +action_8 (245) = happyShift action_111 +action_8 (247) = happyShift action_52 +action_8 (251) = happyShift action_112 +action_8 (252) = happyShift action_113 +action_8 (253) = happyShift action_114 +action_8 (254) = happyShift action_54 +action_8 (255) = happyShift action_55 +action_8 (256) = happyShift action_115 +action_8 (257) = happyShift action_116 +action_8 (260) = happyShift action_117 +action_8 (261) = happyShift action_56 +action_8 (262) = happyShift action_57 +action_8 (263) = happyShift action_58 +action_8 (264) = happyShift action_59 +action_8 (265) = happyShift action_60 +action_8 (27) = happyGoto action_74 +action_8 (29) = happyGoto action_75 +action_8 (33) = happyGoto action_76 +action_8 (36) = happyGoto action_77 +action_8 (37) = happyGoto action_78 +action_8 (38) = happyGoto action_79 +action_8 (39) = happyGoto action_80 +action_8 (41) = happyGoto action_81 +action_8 (56) = happyGoto action_156 +action_8 (57) = happyGoto action_122 +action_8 (58) = happyGoto action_83 +action_8 (60) = happyGoto action_84 +action_8 (61) = happyGoto action_85 +action_8 (62) = happyGoto action_86 +action_8 (63) = happyGoto action_87 +action_8 (64) = happyGoto action_88 +action_8 (65) = happyGoto action_89 +action_8 (75) = happyGoto action_90 +action_8 (76) = happyGoto action_91 +action_8 (124) = happyGoto action_157 +action_8 (129) = happyGoto action_93 +action_8 (131) = happyGoto action_94 +action_8 _ = happyFail (happyExpListPerState 8) + +action_9 (194) = happyShift action_148 +action_9 (196) = happyShift action_149 +action_9 (214) = happyShift action_150 +action_9 (216) = happyShift action_151 +action_9 (219) = happyShift action_45 +action_9 (227) = happyShift action_152 +action_9 (228) = happyShift action_153 +action_9 (230) = happyShift action_47 +action_9 (241) = happyShift action_48 +action_9 (242) = happyShift action_49 +action_9 (244) = happyShift action_50 +action_9 (245) = happyShift action_51 +action_9 (250) = happyShift action_154 +action_9 (251) = happyShift action_112 +action_9 (252) = happyShift action_53 +action_9 (254) = happyShift action_54 +action_9 (255) = happyShift action_55 +action_9 (256) = happyShift action_115 +action_9 (257) = happyShift action_116 +action_9 (260) = happyShift action_117 +action_9 (262) = happyShift action_57 +action_9 (263) = happyShift action_58 +action_9 (264) = happyShift action_155 +action_9 (27) = happyGoto action_133 +action_9 (30) = happyGoto action_134 +action_9 (33) = happyGoto action_135 +action_9 (36) = happyGoto action_136 +action_9 (37) = happyGoto action_137 +action_9 (40) = happyGoto action_138 +action_9 (42) = happyGoto action_139 +action_9 (43) = happyGoto action_140 +action_9 (44) = happyGoto action_141 +action_9 (45) = happyGoto action_142 +action_9 (46) = happyGoto action_143 +action_9 (47) = happyGoto action_144 +action_9 (48) = happyGoto action_145 +action_9 (54) = happyGoto action_146 +action_9 (125) = happyGoto action_147 +action_9 _ = happyFail (happyExpListPerState 9) + +action_10 (254) = happyShift action_24 +action_10 (255) = happyShift action_132 +action_10 (26) = happyGoto action_130 +action_10 (126) = happyGoto action_131 +action_10 _ = happyFail (happyExpListPerState 10) + +action_11 (219) = happyShift action_102 +action_11 (230) = happyShift action_105 +action_11 (241) = happyShift action_108 +action_11 (242) = happyShift action_109 +action_11 (244) = happyShift action_110 +action_11 (245) = happyShift action_111 +action_11 (252) = happyShift action_113 +action_11 (253) = happyShift action_114 +action_11 (29) = happyGoto action_128 +action_11 (127) = happyGoto action_129 +action_11 _ = happyFail (happyExpListPerState 11) + +action_12 (239) = happyShift action_127 +action_12 (90) = happyGoto action_126 +action_12 _ = happyFail (happyExpListPerState 12) + +action_13 (238) = happyShift action_125 +action_13 (77) = happyGoto action_124 +action_13 _ = happyReduce_212 + +action_14 (194) = happyShift action_95 +action_14 (196) = happyShift action_96 +action_14 (198) = happyShift action_97 +action_14 (214) = happyShift action_98 +action_14 (215) = happyShift action_99 +action_14 (216) = happyShift action_100 +action_14 (218) = happyShift action_101 +action_14 (219) = happyShift action_102 +action_14 (220) = happyShift action_103 +action_14 (224) = happyShift action_104 +action_14 (226) = happyShift action_46 +action_14 (230) = happyShift action_105 +action_14 (232) = happyShift action_106 +action_14 (238) = happyShift action_107 +action_14 (241) = happyShift action_108 +action_14 (242) = happyShift action_109 +action_14 (244) = happyShift action_110 +action_14 (245) = happyShift action_111 +action_14 (247) = happyShift action_52 +action_14 (251) = happyShift action_112 +action_14 (252) = happyShift action_113 +action_14 (253) = happyShift action_114 +action_14 (254) = happyShift action_54 +action_14 (255) = happyShift action_55 +action_14 (256) = happyShift action_115 +action_14 (257) = happyShift action_116 +action_14 (260) = happyShift action_117 +action_14 (261) = happyShift action_56 +action_14 (262) = happyShift action_57 +action_14 (263) = happyShift action_58 +action_14 (264) = happyShift action_59 +action_14 (265) = happyShift action_60 +action_14 (27) = happyGoto action_74 +action_14 (29) = happyGoto action_75 +action_14 (33) = happyGoto action_76 +action_14 (36) = happyGoto action_77 +action_14 (37) = happyGoto action_78 +action_14 (38) = happyGoto action_79 +action_14 (39) = happyGoto action_80 +action_14 (41) = happyGoto action_81 +action_14 (56) = happyGoto action_121 +action_14 (57) = happyGoto action_122 +action_14 (58) = happyGoto action_83 +action_14 (60) = happyGoto action_84 +action_14 (61) = happyGoto action_85 +action_14 (62) = happyGoto action_86 +action_14 (63) = happyGoto action_87 +action_14 (64) = happyGoto action_88 +action_14 (65) = happyGoto action_89 +action_14 (75) = happyGoto action_90 +action_14 (76) = happyGoto action_91 +action_14 (78) = happyGoto action_123 +action_14 (129) = happyGoto action_93 +action_14 (131) = happyGoto action_94 +action_14 _ = happyFail (happyExpListPerState 14) + +action_15 (201) = happyShift action_119 +action_15 (202) = happyShift action_120 +action_15 (79) = happyGoto action_118 +action_15 _ = happyFail (happyExpListPerState 15) + +action_16 (194) = happyShift action_95 +action_16 (196) = happyShift action_96 +action_16 (198) = happyShift action_97 +action_16 (214) = happyShift action_98 +action_16 (215) = happyShift action_99 +action_16 (216) = happyShift action_100 +action_16 (218) = happyShift action_101 +action_16 (219) = happyShift action_102 +action_16 (220) = happyShift action_103 +action_16 (224) = happyShift action_104 +action_16 (226) = happyShift action_46 +action_16 (230) = happyShift action_105 +action_16 (232) = happyShift action_106 +action_16 (238) = happyShift action_107 +action_16 (241) = happyShift action_108 +action_16 (242) = happyShift action_109 +action_16 (244) = happyShift action_110 +action_16 (245) = happyShift action_111 +action_16 (247) = happyShift action_52 +action_16 (251) = happyShift action_112 +action_16 (252) = happyShift action_113 +action_16 (253) = happyShift action_114 +action_16 (254) = happyShift action_54 +action_16 (255) = happyShift action_55 +action_16 (256) = happyShift action_115 +action_16 (257) = happyShift action_116 +action_16 (260) = happyShift action_117 +action_16 (261) = happyShift action_56 +action_16 (262) = happyShift action_57 +action_16 (263) = happyShift action_58 +action_16 (264) = happyShift action_59 +action_16 (265) = happyShift action_60 +action_16 (27) = happyGoto action_74 +action_16 (29) = happyGoto action_75 +action_16 (33) = happyGoto action_76 +action_16 (36) = happyGoto action_77 +action_16 (37) = happyGoto action_78 +action_16 (38) = happyGoto action_79 +action_16 (39) = happyGoto action_80 +action_16 (41) = happyGoto action_81 +action_16 (57) = happyGoto action_82 +action_16 (58) = happyGoto action_83 +action_16 (60) = happyGoto action_84 +action_16 (61) = happyGoto action_85 +action_16 (62) = happyGoto action_86 +action_16 (63) = happyGoto action_87 +action_16 (64) = happyGoto action_88 +action_16 (65) = happyGoto action_89 +action_16 (75) = happyGoto action_90 +action_16 (76) = happyGoto action_91 +action_16 (82) = happyGoto action_92 +action_16 (129) = happyGoto action_93 +action_16 (131) = happyGoto action_94 +action_16 _ = happyFail (happyExpListPerState 16) + +action_17 (213) = happyShift action_73 +action_17 (83) = happyGoto action_72 +action_17 _ = happyReduce_220 + +action_18 (81) = happyGoto action_71 +action_18 _ = happyReduce_217 + +action_19 (254) = happyShift action_63 +action_19 (28) = happyGoto action_69 +action_19 (109) = happyGoto action_70 +action_19 _ = happyFail (happyExpListPerState 19) + +action_20 (194) = happyShift action_68 +action_20 (254) = happyShift action_54 +action_20 (255) = happyShift action_55 +action_20 (27) = happyGoto action_64 +action_20 (110) = happyGoto action_65 +action_20 (116) = happyGoto action_66 +action_20 (117) = happyGoto action_67 +action_20 _ = happyFail (happyExpListPerState 20) + +action_21 (254) = happyShift action_63 +action_21 (28) = happyGoto action_61 +action_21 (111) = happyGoto action_62 +action_21 _ = happyFail (happyExpListPerState 21) + +action_22 (194) = happyShift action_40 +action_22 (196) = happyShift action_41 +action_22 (198) = happyShift action_42 +action_22 (214) = happyShift action_43 +action_22 (216) = happyShift action_44 +action_22 (219) = happyShift action_45 +action_22 (226) = happyShift action_46 +action_22 (230) = happyShift action_47 +action_22 (241) = happyShift action_48 +action_22 (242) = happyShift action_49 +action_22 (244) = happyShift action_50 +action_22 (245) = happyShift action_51 +action_22 (247) = happyShift action_52 +action_22 (252) = happyShift action_53 +action_22 (254) = happyShift action_54 +action_22 (255) = happyShift action_55 +action_22 (261) = happyShift action_56 +action_22 (262) = happyShift action_57 +action_22 (263) = happyShift action_58 +action_22 (264) = happyShift action_59 +action_22 (265) = happyShift action_60 +action_22 (27) = happyGoto action_25 +action_22 (30) = happyGoto action_26 +action_22 (37) = happyGoto action_27 +action_22 (38) = happyGoto action_28 +action_22 (39) = happyGoto action_29 +action_22 (41) = happyGoto action_30 +action_22 (84) = happyGoto action_31 +action_22 (85) = happyGoto action_32 +action_22 (86) = happyGoto action_33 +action_22 (87) = happyGoto action_34 +action_22 (88) = happyGoto action_35 +action_22 (128) = happyGoto action_36 +action_22 (130) = happyGoto action_37 +action_22 (132) = happyGoto action_38 +action_22 (162) = happyGoto action_39 +action_22 _ = happyFail (happyExpListPerState 22) + +action_23 (254) = happyShift action_24 +action_23 _ = happyFail (happyExpListPerState 23) + +action_24 _ = happyReduce_23 + +action_25 _ = happyReduce_231 + +action_26 (194) = happyReduce_229 +action_26 (195) = happyReduce_229 +action_26 (196) = happyReduce_229 +action_26 (197) = happyReduce_229 +action_26 (198) = happyReduce_229 +action_26 (199) = happyReduce_229 +action_26 (201) = happyReduce_229 +action_26 (203) = happyReduce_229 +action_26 (204) = happyReduce_229 +action_26 (205) = happyReduce_229 +action_26 (207) = happyReduce_229 +action_26 (208) = happyReduce_229 +action_26 (209) = happyReduce_229 +action_26 (210) = happyReduce_229 +action_26 (213) = happyReduce_229 +action_26 (214) = happyReduce_229 +action_26 (216) = happyReduce_229 +action_26 (217) = happyShift action_354 +action_26 (219) = happyReduce_229 +action_26 (226) = happyReduce_229 +action_26 (230) = happyReduce_229 +action_26 (241) = happyReduce_229 +action_26 (242) = happyReduce_229 +action_26 (244) = happyReduce_229 +action_26 (245) = happyReduce_229 +action_26 (247) = happyReduce_229 +action_26 (252) = happyReduce_229 +action_26 (254) = happyReduce_229 +action_26 (255) = happyReduce_229 +action_26 (258) = happyReduce_229 +action_26 (259) = happyReduce_229 +action_26 (261) = happyReduce_229 +action_26 (262) = happyReduce_229 +action_26 (263) = happyReduce_229 +action_26 (264) = happyReduce_229 +action_26 (265) = happyReduce_229 +action_26 _ = happyReduce_229 + +action_27 _ = happyReduce_234 + +action_28 _ = happyReduce_233 + +action_29 _ = happyReduce_235 + +action_30 _ = happyReduce_232 + +action_31 (1) = happyAccept +action_31 _ = happyFail (happyExpListPerState 31) + +action_32 (203) = happyShift action_353 +action_32 _ = happyFail (happyExpListPerState 32) + +action_33 (205) = happyShift action_293 +action_33 (207) = happyShift action_295 +action_33 (208) = happyShift action_352 +action_33 (216) = happyShift action_296 +action_33 (258) = happyShift action_297 +action_33 (259) = happyShift action_298 +action_33 (31) = happyGoto action_351 +action_33 _ = happyReduce_222 + +action_34 _ = happyReduce_224 + +action_35 _ = happyReduce_376 + +action_36 _ = happyReduce_236 + +action_37 _ = happyReduce_237 + +action_38 _ = happyReduce_226 + +action_39 (194) = happyShift action_40 +action_39 (195) = happyReduce_342 +action_39 (196) = happyShift action_41 +action_39 (197) = happyReduce_342 +action_39 (198) = happyShift action_42 +action_39 (199) = happyReduce_342 +action_39 (201) = happyReduce_342 +action_39 (203) = happyReduce_342 +action_39 (204) = happyReduce_342 +action_39 (205) = happyReduce_342 +action_39 (207) = happyReduce_342 +action_39 (208) = happyReduce_342 +action_39 (209) = happyReduce_342 +action_39 (210) = happyReduce_342 +action_39 (213) = happyReduce_342 +action_39 (214) = happyShift action_43 +action_39 (216) = happyReduce_342 +action_39 (219) = happyShift action_45 +action_39 (226) = happyShift action_46 +action_39 (230) = happyShift action_47 +action_39 (241) = happyShift action_48 +action_39 (242) = happyShift action_49 +action_39 (244) = happyShift action_50 +action_39 (245) = happyShift action_51 +action_39 (247) = happyShift action_52 +action_39 (252) = happyShift action_53 +action_39 (254) = happyShift action_54 +action_39 (255) = happyShift action_55 +action_39 (258) = happyReduce_342 +action_39 (259) = happyReduce_342 +action_39 (261) = happyShift action_56 +action_39 (262) = happyShift action_57 +action_39 (263) = happyShift action_58 +action_39 (264) = happyShift action_59 +action_39 (265) = happyShift action_60 +action_39 (27) = happyGoto action_25 +action_39 (30) = happyGoto action_26 +action_39 (37) = happyGoto action_27 +action_39 (38) = happyGoto action_28 +action_39 (39) = happyGoto action_29 +action_39 (41) = happyGoto action_30 +action_39 (88) = happyGoto action_350 +action_39 (128) = happyGoto action_36 +action_39 (130) = happyGoto action_37 +action_39 _ = happyReduce_342 + +action_40 (194) = happyShift action_40 +action_40 (196) = happyShift action_41 +action_40 (198) = happyShift action_42 +action_40 (214) = happyShift action_43 +action_40 (216) = happyShift action_44 +action_40 (219) = happyShift action_45 +action_40 (226) = happyShift action_46 +action_40 (230) = happyShift action_47 +action_40 (241) = happyShift action_48 +action_40 (242) = happyShift action_49 +action_40 (244) = happyShift action_50 +action_40 (245) = happyShift action_51 +action_40 (247) = happyShift action_52 +action_40 (252) = happyShift action_53 +action_40 (254) = happyShift action_54 +action_40 (255) = happyShift action_55 +action_40 (261) = happyShift action_56 +action_40 (262) = happyShift action_57 +action_40 (263) = happyShift action_58 +action_40 (264) = happyShift action_59 +action_40 (265) = happyShift action_60 +action_40 (27) = happyGoto action_25 +action_40 (30) = happyGoto action_26 +action_40 (37) = happyGoto action_27 +action_40 (38) = happyGoto action_28 +action_40 (39) = happyGoto action_29 +action_40 (41) = happyGoto action_30 +action_40 (85) = happyGoto action_349 +action_40 (86) = happyGoto action_33 +action_40 (87) = happyGoto action_34 +action_40 (88) = happyGoto action_35 +action_40 (128) = happyGoto action_36 +action_40 (130) = happyGoto action_37 +action_40 (132) = happyGoto action_38 +action_40 (162) = happyGoto action_39 +action_40 _ = happyFail (happyExpListPerState 40) + +action_41 (197) = happyShift action_348 +action_41 (218) = happyShift action_230 +action_41 (219) = happyShift action_231 +action_41 (220) = happyShift action_232 +action_41 (221) = happyShift action_233 +action_41 (222) = happyShift action_234 +action_41 (223) = happyShift action_235 +action_41 (224) = happyShift action_236 +action_41 (225) = happyShift action_237 +action_41 (226) = happyShift action_238 +action_41 (227) = happyShift action_239 +action_41 (229) = happyShift action_240 +action_41 (230) = happyShift action_241 +action_41 (231) = happyShift action_242 +action_41 (232) = happyShift action_243 +action_41 (233) = happyShift action_244 +action_41 (234) = happyShift action_245 +action_41 (235) = happyShift action_246 +action_41 (236) = happyShift action_247 +action_41 (237) = happyShift action_248 +action_41 (238) = happyShift action_249 +action_41 (239) = happyShift action_250 +action_41 (240) = happyShift action_251 +action_41 (241) = happyShift action_252 +action_41 (242) = happyShift action_253 +action_41 (243) = happyShift action_254 +action_41 (244) = happyShift action_255 +action_41 (245) = happyShift action_256 +action_41 (246) = happyShift action_257 +action_41 (247) = happyShift action_258 +action_41 (248) = happyShift action_259 +action_41 (249) = happyShift action_260 +action_41 (252) = happyShift action_261 +action_41 (262) = happyShift action_262 +action_41 (263) = happyShift action_263 +action_41 (35) = happyGoto action_344 +action_41 (89) = happyGoto action_345 +action_41 (174) = happyGoto action_346 +action_41 (192) = happyGoto action_347 +action_41 _ = happyFail (happyExpListPerState 41) + +action_42 (194) = happyShift action_40 +action_42 (196) = happyShift action_41 +action_42 (198) = happyShift action_42 +action_42 (199) = happyShift action_343 +action_42 (214) = happyShift action_43 +action_42 (216) = happyShift action_44 +action_42 (219) = happyShift action_45 +action_42 (226) = happyShift action_46 +action_42 (230) = happyShift action_47 +action_42 (241) = happyShift action_48 +action_42 (242) = happyShift action_49 +action_42 (244) = happyShift action_50 +action_42 (245) = happyShift action_51 +action_42 (247) = happyShift action_52 +action_42 (252) = happyShift action_53 +action_42 (254) = happyShift action_54 +action_42 (255) = happyShift action_55 +action_42 (261) = happyShift action_56 +action_42 (262) = happyShift action_57 +action_42 (263) = happyShift action_58 +action_42 (264) = happyShift action_59 +action_42 (265) = happyShift action_60 +action_42 (27) = happyGoto action_25 +action_42 (30) = happyGoto action_26 +action_42 (37) = happyGoto action_27 +action_42 (38) = happyGoto action_28 +action_42 (39) = happyGoto action_29 +action_42 (41) = happyGoto action_30 +action_42 (85) = happyGoto action_340 +action_42 (86) = happyGoto action_33 +action_42 (87) = happyGoto action_34 +action_42 (88) = happyGoto action_35 +action_42 (128) = happyGoto action_36 +action_42 (130) = happyGoto action_37 +action_42 (132) = happyGoto action_38 +action_42 (162) = happyGoto action_39 +action_42 (173) = happyGoto action_341 +action_42 (191) = happyGoto action_342 +action_42 _ = happyFail (happyExpListPerState 42) + +action_43 _ = happyReduce_228 + +action_44 (264) = happyShift action_59 +action_44 (265) = happyShift action_60 +action_44 (39) = happyGoto action_339 +action_44 _ = happyFail (happyExpListPerState 44) + +action_45 _ = happyReduce_37 + +action_46 _ = happyReduce_99 + +action_47 _ = happyReduce_38 + +action_48 _ = happyReduce_40 + +action_49 _ = happyReduce_42 + +action_50 _ = happyReduce_41 + +action_51 _ = happyReduce_39 + +action_52 _ = happyReduce_98 + +action_53 _ = happyReduce_36 + +action_54 _ = happyReduce_25 + +action_55 _ = happyReduce_26 + +action_56 _ = happyReduce_94 + +action_57 _ = happyReduce_92 + +action_58 _ = happyReduce_93 + +action_59 _ = happyReduce_95 + +action_60 _ = happyReduce_96 + +action_61 (194) = happyShift action_288 +action_61 (217) = happyShift action_289 +action_61 (219) = happyShift action_45 +action_61 (230) = happyShift action_47 +action_61 (241) = happyShift action_48 +action_61 (242) = happyShift action_49 +action_61 (244) = happyShift action_50 +action_61 (245) = happyShift action_51 +action_61 (252) = happyShift action_53 +action_61 (30) = happyGoto action_284 +action_61 (52) = happyGoto action_285 +action_61 (137) = happyGoto action_337 +action_61 (140) = happyGoto action_338 +action_61 (167) = happyGoto action_287 +action_61 _ = happyReduce_352 + +action_62 (1) = happyAccept +action_62 _ = happyFail (happyExpListPerState 62) + +action_63 _ = happyReduce_27 + +action_64 (194) = happyShift action_148 +action_64 (196) = happyShift action_149 +action_64 (214) = happyShift action_150 +action_64 (219) = happyShift action_45 +action_64 (230) = happyShift action_47 +action_64 (241) = happyShift action_48 +action_64 (242) = happyShift action_49 +action_64 (244) = happyShift action_50 +action_64 (245) = happyShift action_51 +action_64 (250) = happyShift action_154 +action_64 (251) = happyShift action_112 +action_64 (252) = happyShift action_53 +action_64 (254) = happyShift action_54 +action_64 (255) = happyShift action_55 +action_64 (256) = happyShift action_115 +action_64 (257) = happyShift action_116 +action_64 (260) = happyShift action_117 +action_64 (262) = happyShift action_57 +action_64 (263) = happyShift action_58 +action_64 (264) = happyShift action_155 +action_64 (27) = happyGoto action_133 +action_64 (30) = happyGoto action_134 +action_64 (33) = happyGoto action_135 +action_64 (36) = happyGoto action_136 +action_64 (37) = happyGoto action_137 +action_64 (40) = happyGoto action_138 +action_64 (48) = happyGoto action_333 +action_64 (139) = happyGoto action_334 +action_64 (160) = happyGoto action_335 +action_64 (189) = happyGoto action_336 +action_64 _ = happyReduce_350 + +action_65 (1) = happyAccept +action_65 _ = happyFail (happyExpListPerState 65) + +action_66 (205) = happyShift action_332 +action_66 _ = happyFail (happyExpListPerState 66) + +action_67 _ = happyReduce_313 + +action_68 (194) = happyShift action_331 +action_68 (254) = happyShift action_54 +action_68 (255) = happyShift action_55 +action_68 (27) = happyGoto action_64 +action_68 (117) = happyGoto action_328 +action_68 (148) = happyGoto action_329 +action_68 (177) = happyGoto action_330 +action_68 _ = happyFail (happyExpListPerState 68) + +action_69 (208) = happyShift action_327 +action_69 _ = happyFail (happyExpListPerState 69) + +action_70 (1) = happyAccept +action_70 _ = happyFail (happyExpListPerState 70) + +action_71 (1) = happyAccept +action_71 _ = happyFail (happyExpListPerState 71) + +action_72 (1) = happyAccept +action_72 _ = happyFail (happyExpListPerState 72) + +action_73 _ = happyReduce_219 + +action_74 _ = happyReduce_179 + +action_75 _ = happyReduce_178 + +action_76 _ = happyReduce_180 + +action_77 _ = happyReduce_177 + +action_78 _ = happyReduce_183 + +action_79 _ = happyReduce_182 + +action_80 _ = happyReduce_184 + +action_81 _ = happyReduce_181 + +action_82 (205) = happyShift action_293 +action_82 (207) = happyShift action_295 +action_82 (216) = happyShift action_296 +action_82 (258) = happyShift action_297 +action_82 (259) = happyShift action_298 +action_82 (31) = happyGoto action_302 +action_82 _ = happyReduce_218 + +action_83 (1) = happyReduce_151 +action_83 (194) = happyReduce_151 +action_83 (195) = happyReduce_151 +action_83 (196) = happyReduce_151 +action_83 (197) = happyReduce_151 +action_83 (198) = happyReduce_151 +action_83 (199) = happyReduce_151 +action_83 (201) = happyReduce_151 +action_83 (202) = happyReduce_151 +action_83 (205) = happyReduce_151 +action_83 (207) = happyReduce_151 +action_83 (208) = happyReduce_151 +action_83 (210) = happyReduce_151 +action_83 (211) = happyShift action_326 +action_83 (213) = happyReduce_151 +action_83 (214) = happyReduce_151 +action_83 (215) = happyReduce_151 +action_83 (216) = happyReduce_151 +action_83 (217) = happyReduce_151 +action_83 (218) = happyReduce_151 +action_83 (219) = happyReduce_151 +action_83 (220) = happyReduce_151 +action_83 (224) = happyReduce_151 +action_83 (225) = happyReduce_151 +action_83 (226) = happyReduce_151 +action_83 (230) = happyReduce_151 +action_83 (232) = happyReduce_151 +action_83 (238) = happyReduce_151 +action_83 (241) = happyReduce_151 +action_83 (242) = happyReduce_151 +action_83 (243) = happyReduce_151 +action_83 (244) = happyReduce_151 +action_83 (245) = happyReduce_151 +action_83 (246) = happyReduce_151 +action_83 (247) = happyReduce_151 +action_83 (249) = happyReduce_151 +action_83 (251) = happyReduce_151 +action_83 (252) = happyReduce_151 +action_83 (253) = happyReduce_151 +action_83 (254) = happyReduce_151 +action_83 (255) = happyReduce_151 +action_83 (256) = happyReduce_151 +action_83 (257) = happyReduce_151 +action_83 (258) = happyReduce_151 +action_83 (259) = happyReduce_151 +action_83 (260) = happyReduce_151 +action_83 (261) = happyReduce_151 +action_83 (262) = happyReduce_151 +action_83 (263) = happyReduce_151 +action_83 (264) = happyReduce_151 +action_83 (265) = happyReduce_151 +action_83 (266) = happyReduce_151 +action_83 _ = happyReduce_151 + +action_84 _ = happyReduce_153 + +action_85 (1) = happyReduce_157 +action_85 (194) = happyShift action_95 +action_85 (195) = happyReduce_157 +action_85 (196) = happyShift action_96 +action_85 (197) = happyReduce_157 +action_85 (198) = happyShift action_97 +action_85 (199) = happyReduce_157 +action_85 (201) = happyReduce_157 +action_85 (202) = happyReduce_157 +action_85 (205) = happyReduce_157 +action_85 (207) = happyReduce_157 +action_85 (208) = happyReduce_157 +action_85 (210) = happyReduce_157 +action_85 (211) = happyReduce_157 +action_85 (213) = happyReduce_157 +action_85 (214) = happyShift action_98 +action_85 (215) = happyShift action_99 +action_85 (216) = happyReduce_157 +action_85 (217) = happyShift action_325 +action_85 (218) = happyShift action_101 +action_85 (219) = happyShift action_102 +action_85 (220) = happyShift action_103 +action_85 (224) = happyShift action_104 +action_85 (225) = happyReduce_157 +action_85 (226) = happyShift action_46 +action_85 (230) = happyShift action_105 +action_85 (232) = happyShift action_106 +action_85 (238) = happyShift action_107 +action_85 (241) = happyShift action_108 +action_85 (242) = happyShift action_109 +action_85 (243) = happyReduce_157 +action_85 (244) = happyShift action_110 +action_85 (245) = happyShift action_111 +action_85 (246) = happyReduce_157 +action_85 (247) = happyShift action_52 +action_85 (249) = happyReduce_157 +action_85 (251) = happyShift action_112 +action_85 (252) = happyShift action_113 +action_85 (253) = happyShift action_114 +action_85 (254) = happyShift action_54 +action_85 (255) = happyShift action_55 +action_85 (256) = happyShift action_115 +action_85 (257) = happyShift action_116 +action_85 (258) = happyReduce_157 +action_85 (259) = happyReduce_157 +action_85 (260) = happyShift action_117 +action_85 (261) = happyShift action_56 +action_85 (262) = happyShift action_57 +action_85 (263) = happyShift action_58 +action_85 (264) = happyShift action_59 +action_85 (265) = happyShift action_60 +action_85 (266) = happyReduce_157 +action_85 (27) = happyGoto action_74 +action_85 (29) = happyGoto action_75 +action_85 (33) = happyGoto action_76 +action_85 (36) = happyGoto action_77 +action_85 (37) = happyGoto action_78 +action_85 (38) = happyGoto action_79 +action_85 (39) = happyGoto action_80 +action_85 (41) = happyGoto action_81 +action_85 (62) = happyGoto action_324 +action_85 (63) = happyGoto action_87 +action_85 (64) = happyGoto action_88 +action_85 (65) = happyGoto action_89 +action_85 (75) = happyGoto action_90 +action_85 (76) = happyGoto action_91 +action_85 (129) = happyGoto action_93 +action_85 (131) = happyGoto action_94 +action_85 _ = happyReduce_157 + +action_86 _ = happyReduce_159 + +action_87 _ = happyReduce_162 + +action_88 (1) = happyReduce_171 +action_88 (194) = happyReduce_171 +action_88 (195) = happyReduce_171 +action_88 (196) = happyShift action_323 +action_88 (197) = happyReduce_171 +action_88 (198) = happyReduce_171 +action_88 (199) = happyReduce_171 +action_88 (201) = happyReduce_171 +action_88 (202) = happyReduce_171 +action_88 (205) = happyReduce_171 +action_88 (207) = happyReduce_171 +action_88 (208) = happyReduce_171 +action_88 (210) = happyReduce_171 +action_88 (211) = happyReduce_171 +action_88 (213) = happyReduce_171 +action_88 (214) = happyReduce_171 +action_88 (215) = happyReduce_171 +action_88 (216) = happyReduce_171 +action_88 (217) = happyReduce_171 +action_88 (218) = happyReduce_171 +action_88 (219) = happyReduce_171 +action_88 (220) = happyReduce_171 +action_88 (224) = happyReduce_171 +action_88 (225) = happyReduce_171 +action_88 (226) = happyReduce_171 +action_88 (230) = happyReduce_171 +action_88 (232) = happyReduce_171 +action_88 (238) = happyReduce_171 +action_88 (241) = happyReduce_171 +action_88 (242) = happyReduce_171 +action_88 (243) = happyReduce_171 +action_88 (244) = happyReduce_171 +action_88 (245) = happyReduce_171 +action_88 (246) = happyReduce_171 +action_88 (247) = happyReduce_171 +action_88 (249) = happyReduce_171 +action_88 (251) = happyReduce_171 +action_88 (252) = happyReduce_171 +action_88 (253) = happyReduce_171 +action_88 (254) = happyReduce_171 +action_88 (255) = happyReduce_171 +action_88 (256) = happyReduce_171 +action_88 (257) = happyReduce_171 +action_88 (258) = happyReduce_171 +action_88 (259) = happyReduce_171 +action_88 (260) = happyReduce_171 +action_88 (261) = happyReduce_171 +action_88 (262) = happyReduce_171 +action_88 (263) = happyReduce_171 +action_88 (264) = happyReduce_171 +action_88 (265) = happyReduce_171 +action_88 (266) = happyReduce_171 +action_88 _ = happyReduce_171 + +action_89 (212) = happyShift action_322 +action_89 _ = happyReduce_174 + +action_90 _ = happyReduce_164 + +action_91 (233) = happyShift action_321 +action_91 _ = happyFail (happyExpListPerState 91) + +action_92 (1) = happyAccept +action_92 _ = happyFail (happyExpListPerState 92) + +action_93 _ = happyReduce_185 + +action_94 _ = happyReduce_186 + +action_95 (194) = happyShift action_95 +action_95 (196) = happyShift action_96 +action_95 (198) = happyShift action_97 +action_95 (214) = happyShift action_98 +action_95 (215) = happyShift action_99 +action_95 (216) = happyShift action_100 +action_95 (218) = happyShift action_101 +action_95 (219) = happyShift action_102 +action_95 (220) = happyShift action_103 +action_95 (224) = happyShift action_104 +action_95 (226) = happyShift action_46 +action_95 (230) = happyShift action_105 +action_95 (232) = happyShift action_106 +action_95 (238) = happyShift action_107 +action_95 (241) = happyShift action_108 +action_95 (242) = happyShift action_109 +action_95 (244) = happyShift action_110 +action_95 (245) = happyShift action_111 +action_95 (247) = happyShift action_52 +action_95 (251) = happyShift action_112 +action_95 (252) = happyShift action_113 +action_95 (253) = happyShift action_114 +action_95 (254) = happyShift action_54 +action_95 (255) = happyShift action_55 +action_95 (256) = happyShift action_115 +action_95 (257) = happyShift action_116 +action_95 (260) = happyShift action_117 +action_95 (261) = happyShift action_56 +action_95 (262) = happyShift action_57 +action_95 (263) = happyShift action_58 +action_95 (264) = happyShift action_59 +action_95 (265) = happyShift action_60 +action_95 (27) = happyGoto action_74 +action_95 (29) = happyGoto action_75 +action_95 (33) = happyGoto action_76 +action_95 (36) = happyGoto action_77 +action_95 (37) = happyGoto action_78 +action_95 (38) = happyGoto action_79 +action_95 (39) = happyGoto action_80 +action_95 (41) = happyGoto action_81 +action_95 (56) = happyGoto action_320 +action_95 (57) = happyGoto action_122 +action_95 (58) = happyGoto action_83 +action_95 (60) = happyGoto action_84 +action_95 (61) = happyGoto action_85 +action_95 (62) = happyGoto action_86 +action_95 (63) = happyGoto action_87 +action_95 (64) = happyGoto action_88 +action_95 (65) = happyGoto action_89 +action_95 (75) = happyGoto action_90 +action_95 (76) = happyGoto action_91 +action_95 (129) = happyGoto action_93 +action_95 (131) = happyGoto action_94 +action_95 _ = happyFail (happyExpListPerState 95) + +action_96 (197) = happyShift action_319 +action_96 (218) = happyShift action_230 +action_96 (219) = happyShift action_231 +action_96 (220) = happyShift action_232 +action_96 (221) = happyShift action_233 +action_96 (222) = happyShift action_234 +action_96 (223) = happyShift action_235 +action_96 (224) = happyShift action_236 +action_96 (225) = happyShift action_237 +action_96 (226) = happyShift action_238 +action_96 (227) = happyShift action_239 +action_96 (229) = happyShift action_240 +action_96 (230) = happyShift action_241 +action_96 (231) = happyShift action_242 +action_96 (232) = happyShift action_243 +action_96 (233) = happyShift action_244 +action_96 (234) = happyShift action_245 +action_96 (235) = happyShift action_246 +action_96 (236) = happyShift action_247 +action_96 (237) = happyShift action_248 +action_96 (238) = happyShift action_249 +action_96 (239) = happyShift action_250 +action_96 (240) = happyShift action_251 +action_96 (241) = happyShift action_252 +action_96 (242) = happyShift action_253 +action_96 (243) = happyShift action_254 +action_96 (244) = happyShift action_255 +action_96 (245) = happyShift action_256 +action_96 (246) = happyShift action_257 +action_96 (247) = happyShift action_258 +action_96 (248) = happyShift action_259 +action_96 (249) = happyShift action_260 +action_96 (252) = happyShift action_261 +action_96 (262) = happyShift action_262 +action_96 (263) = happyShift action_263 +action_96 (35) = happyGoto action_315 +action_96 (66) = happyGoto action_316 +action_96 (175) = happyGoto action_317 +action_96 (193) = happyGoto action_318 +action_96 _ = happyFail (happyExpListPerState 96) + +action_97 (194) = happyShift action_95 +action_97 (196) = happyShift action_96 +action_97 (198) = happyShift action_97 +action_97 (199) = happyShift action_314 +action_97 (214) = happyShift action_98 +action_97 (215) = happyShift action_99 +action_97 (216) = happyShift action_100 +action_97 (218) = happyShift action_101 +action_97 (219) = happyShift action_102 +action_97 (220) = happyShift action_103 +action_97 (224) = happyShift action_104 +action_97 (226) = happyShift action_46 +action_97 (230) = happyShift action_105 +action_97 (232) = happyShift action_106 +action_97 (238) = happyShift action_107 +action_97 (241) = happyShift action_108 +action_97 (242) = happyShift action_109 +action_97 (244) = happyShift action_110 +action_97 (245) = happyShift action_111 +action_97 (247) = happyShift action_52 +action_97 (251) = happyShift action_112 +action_97 (252) = happyShift action_113 +action_97 (253) = happyShift action_114 +action_97 (254) = happyShift action_54 +action_97 (255) = happyShift action_55 +action_97 (256) = happyShift action_115 +action_97 (257) = happyShift action_116 +action_97 (260) = happyShift action_117 +action_97 (261) = happyShift action_56 +action_97 (262) = happyShift action_57 +action_97 (263) = happyShift action_58 +action_97 (264) = happyShift action_59 +action_97 (265) = happyShift action_60 +action_97 (27) = happyGoto action_74 +action_97 (29) = happyGoto action_75 +action_97 (33) = happyGoto action_76 +action_97 (36) = happyGoto action_77 +action_97 (37) = happyGoto action_78 +action_97 (38) = happyGoto action_79 +action_97 (39) = happyGoto action_80 +action_97 (41) = happyGoto action_81 +action_97 (56) = happyGoto action_307 +action_97 (57) = happyGoto action_122 +action_97 (58) = happyGoto action_83 +action_97 (60) = happyGoto action_84 +action_97 (61) = happyGoto action_85 +action_97 (62) = happyGoto action_86 +action_97 (63) = happyGoto action_87 +action_97 (64) = happyGoto action_88 +action_97 (65) = happyGoto action_89 +action_97 (75) = happyGoto action_90 +action_97 (76) = happyGoto action_91 +action_97 (129) = happyGoto action_93 +action_97 (131) = happyGoto action_94 +action_97 (152) = happyGoto action_313 +action_97 (181) = happyGoto action_309 +action_97 _ = happyFail (happyExpListPerState 97) + +action_98 _ = happyReduce_176 + +action_99 (194) = happyShift action_40 +action_99 (196) = happyShift action_41 +action_99 (198) = happyShift action_42 +action_99 (214) = happyShift action_43 +action_99 (219) = happyShift action_45 +action_99 (226) = happyShift action_46 +action_99 (230) = happyShift action_47 +action_99 (241) = happyShift action_48 +action_99 (242) = happyShift action_49 +action_99 (244) = happyShift action_50 +action_99 (245) = happyShift action_51 +action_99 (247) = happyShift action_52 +action_99 (252) = happyShift action_53 +action_99 (254) = happyShift action_54 +action_99 (255) = happyShift action_55 +action_99 (261) = happyShift action_56 +action_99 (262) = happyShift action_57 +action_99 (263) = happyShift action_58 +action_99 (264) = happyShift action_59 +action_99 (265) = happyShift action_60 +action_99 (27) = happyGoto action_25 +action_99 (30) = happyGoto action_26 +action_99 (37) = happyGoto action_27 +action_99 (38) = happyGoto action_28 +action_99 (39) = happyGoto action_29 +action_99 (41) = happyGoto action_30 +action_99 (88) = happyGoto action_35 +action_99 (128) = happyGoto action_36 +action_99 (130) = happyGoto action_37 +action_99 (132) = happyGoto action_312 +action_99 (162) = happyGoto action_39 +action_99 _ = happyFail (happyExpListPerState 99) + +action_100 (194) = happyShift action_95 +action_100 (196) = happyShift action_96 +action_100 (198) = happyShift action_97 +action_100 (214) = happyShift action_98 +action_100 (215) = happyShift action_99 +action_100 (216) = happyShift action_100 +action_100 (218) = happyShift action_101 +action_100 (219) = happyShift action_102 +action_100 (220) = happyShift action_103 +action_100 (224) = happyShift action_104 +action_100 (226) = happyShift action_46 +action_100 (230) = happyShift action_105 +action_100 (232) = happyShift action_106 +action_100 (238) = happyShift action_107 +action_100 (241) = happyShift action_108 +action_100 (242) = happyShift action_109 +action_100 (244) = happyShift action_110 +action_100 (245) = happyShift action_111 +action_100 (247) = happyShift action_52 +action_100 (251) = happyShift action_112 +action_100 (252) = happyShift action_113 +action_100 (253) = happyShift action_114 +action_100 (254) = happyShift action_54 +action_100 (255) = happyShift action_55 +action_100 (256) = happyShift action_115 +action_100 (257) = happyShift action_116 +action_100 (260) = happyShift action_117 +action_100 (261) = happyShift action_56 +action_100 (262) = happyShift action_57 +action_100 (263) = happyShift action_58 +action_100 (264) = happyShift action_59 +action_100 (265) = happyShift action_60 +action_100 (27) = happyGoto action_74 +action_100 (29) = happyGoto action_75 +action_100 (33) = happyGoto action_76 +action_100 (36) = happyGoto action_77 +action_100 (37) = happyGoto action_78 +action_100 (38) = happyGoto action_79 +action_100 (39) = happyGoto action_80 +action_100 (41) = happyGoto action_81 +action_100 (60) = happyGoto action_311 +action_100 (61) = happyGoto action_85 +action_100 (62) = happyGoto action_86 +action_100 (63) = happyGoto action_87 +action_100 (64) = happyGoto action_88 +action_100 (65) = happyGoto action_89 +action_100 (75) = happyGoto action_90 +action_100 (76) = happyGoto action_91 +action_100 (129) = happyGoto action_93 +action_100 (131) = happyGoto action_94 +action_100 _ = happyFail (happyExpListPerState 100) + +action_101 (200) = happyShift action_310 +action_101 _ = happyFail (happyExpListPerState 101) + +action_102 _ = happyReduce_30 + +action_103 (194) = happyShift action_95 +action_103 (196) = happyShift action_96 +action_103 (198) = happyShift action_97 +action_103 (214) = happyShift action_98 +action_103 (215) = happyShift action_99 +action_103 (216) = happyShift action_100 +action_103 (218) = happyShift action_101 +action_103 (219) = happyShift action_102 +action_103 (220) = happyShift action_103 +action_103 (224) = happyShift action_104 +action_103 (226) = happyShift action_46 +action_103 (230) = happyShift action_105 +action_103 (232) = happyShift action_106 +action_103 (238) = happyShift action_107 +action_103 (241) = happyShift action_108 +action_103 (242) = happyShift action_109 +action_103 (244) = happyShift action_110 +action_103 (245) = happyShift action_111 +action_103 (247) = happyShift action_52 +action_103 (251) = happyShift action_112 +action_103 (252) = happyShift action_113 +action_103 (253) = happyShift action_114 +action_103 (254) = happyShift action_54 +action_103 (255) = happyShift action_55 +action_103 (256) = happyShift action_115 +action_103 (257) = happyShift action_116 +action_103 (260) = happyShift action_117 +action_103 (261) = happyShift action_56 +action_103 (262) = happyShift action_57 +action_103 (263) = happyShift action_58 +action_103 (264) = happyShift action_59 +action_103 (265) = happyShift action_60 +action_103 (27) = happyGoto action_74 +action_103 (29) = happyGoto action_75 +action_103 (33) = happyGoto action_76 +action_103 (36) = happyGoto action_77 +action_103 (37) = happyGoto action_78 +action_103 (38) = happyGoto action_79 +action_103 (39) = happyGoto action_80 +action_103 (41) = happyGoto action_81 +action_103 (56) = happyGoto action_307 +action_103 (57) = happyGoto action_122 +action_103 (58) = happyGoto action_83 +action_103 (60) = happyGoto action_84 +action_103 (61) = happyGoto action_85 +action_103 (62) = happyGoto action_86 +action_103 (63) = happyGoto action_87 +action_103 (64) = happyGoto action_88 +action_103 (65) = happyGoto action_89 +action_103 (75) = happyGoto action_90 +action_103 (76) = happyGoto action_91 +action_103 (129) = happyGoto action_93 +action_103 (131) = happyGoto action_94 +action_103 (152) = happyGoto action_308 +action_103 (181) = happyGoto action_309 +action_103 _ = happyFail (happyExpListPerState 103) + +action_104 (200) = happyShift action_306 +action_104 _ = happyFail (happyExpListPerState 104) + +action_105 _ = happyReduce_31 + +action_106 (194) = happyShift action_95 +action_106 (196) = happyShift action_96 +action_106 (198) = happyShift action_97 +action_106 (214) = happyShift action_98 +action_106 (215) = happyShift action_99 +action_106 (216) = happyShift action_100 +action_106 (218) = happyShift action_101 +action_106 (219) = happyShift action_102 +action_106 (220) = happyShift action_103 +action_106 (224) = happyShift action_104 +action_106 (226) = happyShift action_46 +action_106 (230) = happyShift action_105 +action_106 (232) = happyShift action_106 +action_106 (238) = happyShift action_107 +action_106 (241) = happyShift action_108 +action_106 (242) = happyShift action_109 +action_106 (244) = happyShift action_110 +action_106 (245) = happyShift action_111 +action_106 (247) = happyShift action_52 +action_106 (251) = happyShift action_112 +action_106 (252) = happyShift action_113 +action_106 (253) = happyShift action_114 +action_106 (254) = happyShift action_54 +action_106 (255) = happyShift action_55 +action_106 (256) = happyShift action_115 +action_106 (257) = happyShift action_116 +action_106 (260) = happyShift action_117 +action_106 (261) = happyShift action_56 +action_106 (262) = happyShift action_57 +action_106 (263) = happyShift action_58 +action_106 (264) = happyShift action_59 +action_106 (265) = happyShift action_60 +action_106 (27) = happyGoto action_74 +action_106 (29) = happyGoto action_75 +action_106 (33) = happyGoto action_76 +action_106 (36) = happyGoto action_77 +action_106 (37) = happyGoto action_78 +action_106 (38) = happyGoto action_79 +action_106 (39) = happyGoto action_80 +action_106 (41) = happyGoto action_81 +action_106 (56) = happyGoto action_305 +action_106 (57) = happyGoto action_122 +action_106 (58) = happyGoto action_83 +action_106 (60) = happyGoto action_84 +action_106 (61) = happyGoto action_85 +action_106 (62) = happyGoto action_86 +action_106 (63) = happyGoto action_87 +action_106 (64) = happyGoto action_88 +action_106 (65) = happyGoto action_89 +action_106 (75) = happyGoto action_90 +action_106 (76) = happyGoto action_91 +action_106 (129) = happyGoto action_93 +action_106 (131) = happyGoto action_94 +action_106 _ = happyFail (happyExpListPerState 106) + +action_107 (200) = happyShift action_304 +action_107 _ = happyFail (happyExpListPerState 107) + +action_108 _ = happyReduce_33 + +action_109 _ = happyReduce_35 + +action_110 _ = happyReduce_34 + +action_111 _ = happyReduce_32 + +action_112 _ = happyReduce_54 + +action_113 _ = happyReduce_28 + +action_114 _ = happyReduce_29 + +action_115 _ = happyReduce_52 + +action_116 _ = happyReduce_53 + +action_117 _ = happyReduce_91 + +action_118 (1) = happyAccept +action_118 _ = happyFail (happyExpListPerState 118) + +action_119 _ = happyReduce_215 + +action_120 _ = happyReduce_214 + +action_121 _ = happyReduce_213 + +action_122 (1) = happyReduce_149 +action_122 (194) = happyReduce_149 +action_122 (195) = happyReduce_149 +action_122 (196) = happyReduce_149 +action_122 (197) = happyReduce_149 +action_122 (198) = happyReduce_149 +action_122 (199) = happyReduce_149 +action_122 (201) = happyReduce_149 +action_122 (202) = happyReduce_149 +action_122 (205) = happyShift action_293 +action_122 (207) = happyShift action_295 +action_122 (208) = happyShift action_303 +action_122 (210) = happyReduce_149 +action_122 (211) = happyReduce_149 +action_122 (213) = happyReduce_149 +action_122 (214) = happyReduce_149 +action_122 (215) = happyReduce_149 +action_122 (216) = happyShift action_296 +action_122 (217) = happyReduce_149 +action_122 (218) = happyReduce_149 +action_122 (219) = happyReduce_149 +action_122 (220) = happyReduce_149 +action_122 (224) = happyReduce_149 +action_122 (225) = happyReduce_149 +action_122 (226) = happyReduce_149 +action_122 (230) = happyReduce_149 +action_122 (232) = happyReduce_149 +action_122 (238) = happyReduce_149 +action_122 (241) = happyReduce_149 +action_122 (242) = happyReduce_149 +action_122 (243) = happyReduce_149 +action_122 (244) = happyReduce_149 +action_122 (245) = happyReduce_149 +action_122 (246) = happyReduce_149 +action_122 (247) = happyReduce_149 +action_122 (249) = happyReduce_149 +action_122 (251) = happyReduce_149 +action_122 (252) = happyReduce_149 +action_122 (253) = happyReduce_149 +action_122 (254) = happyReduce_149 +action_122 (255) = happyReduce_149 +action_122 (256) = happyReduce_149 +action_122 (257) = happyReduce_149 +action_122 (258) = happyShift action_297 +action_122 (259) = happyShift action_298 +action_122 (260) = happyReduce_149 +action_122 (261) = happyReduce_149 +action_122 (262) = happyReduce_149 +action_122 (263) = happyReduce_149 +action_122 (264) = happyReduce_149 +action_122 (265) = happyReduce_149 +action_122 (266) = happyReduce_149 +action_122 (31) = happyGoto action_302 +action_122 _ = happyReduce_149 + +action_123 (1) = happyAccept +action_123 _ = happyFail (happyExpListPerState 123) + +action_124 (1) = happyAccept +action_124 _ = happyFail (happyExpListPerState 124) + +action_125 (200) = happyShift action_301 +action_125 _ = happyFail (happyExpListPerState 125) + +action_126 (1) = happyAccept +action_126 _ = happyFail (happyExpListPerState 126) + +action_127 (254) = happyShift action_24 +action_127 (255) = happyShift action_132 +action_127 (26) = happyGoto action_300 +action_127 _ = happyFail (happyExpListPerState 127) + +action_128 _ = happyReduce_333 + +action_129 (1) = happyAccept +action_129 _ = happyFail (happyExpListPerState 129) + +action_130 _ = happyReduce_332 + +action_131 (1) = happyAccept +action_131 _ = happyFail (happyExpListPerState 131) + +action_132 _ = happyReduce_24 + +action_133 _ = happyReduce_115 + +action_134 _ = happyReduce_114 + +action_135 _ = happyReduce_116 + +action_136 _ = happyReduce_119 + +action_137 _ = happyReduce_117 + +action_138 _ = happyReduce_118 + +action_139 _ = happyReduce_331 + +action_140 (1) = happyReduce_100 +action_140 (194) = happyReduce_100 +action_140 (195) = happyReduce_100 +action_140 (196) = happyReduce_100 +action_140 (197) = happyReduce_100 +action_140 (198) = happyReduce_100 +action_140 (199) = happyReduce_100 +action_140 (201) = happyReduce_100 +action_140 (202) = happyReduce_100 +action_140 (203) = happyReduce_100 +action_140 (205) = happyReduce_100 +action_140 (207) = happyReduce_100 +action_140 (208) = happyShift action_299 +action_140 (210) = happyReduce_100 +action_140 (211) = happyReduce_100 +action_140 (213) = happyReduce_100 +action_140 (214) = happyReduce_100 +action_140 (215) = happyReduce_100 +action_140 (216) = happyReduce_100 +action_140 (217) = happyReduce_100 +action_140 (218) = happyReduce_100 +action_140 (219) = happyReduce_100 +action_140 (220) = happyReduce_100 +action_140 (224) = happyReduce_100 +action_140 (225) = happyReduce_100 +action_140 (226) = happyReduce_100 +action_140 (230) = happyReduce_100 +action_140 (232) = happyReduce_100 +action_140 (238) = happyReduce_100 +action_140 (241) = happyReduce_100 +action_140 (242) = happyReduce_100 +action_140 (243) = happyReduce_100 +action_140 (244) = happyReduce_100 +action_140 (245) = happyReduce_100 +action_140 (246) = happyReduce_100 +action_140 (247) = happyReduce_100 +action_140 (249) = happyReduce_100 +action_140 (251) = happyReduce_100 +action_140 (252) = happyReduce_100 +action_140 (253) = happyReduce_100 +action_140 (254) = happyReduce_100 +action_140 (255) = happyReduce_100 +action_140 (256) = happyReduce_100 +action_140 (257) = happyReduce_100 +action_140 (258) = happyReduce_100 +action_140 (259) = happyReduce_100 +action_140 (260) = happyReduce_100 +action_140 (261) = happyReduce_100 +action_140 (262) = happyReduce_100 +action_140 (263) = happyReduce_100 +action_140 (264) = happyReduce_100 +action_140 (265) = happyReduce_100 +action_140 (266) = happyReduce_100 +action_140 _ = happyReduce_100 + +action_141 _ = happyReduce_102 + +action_142 (1) = happyReduce_104 +action_142 (194) = happyReduce_104 +action_142 (195) = happyReduce_104 +action_142 (196) = happyReduce_104 +action_142 (197) = happyReduce_104 +action_142 (198) = happyReduce_104 +action_142 (199) = happyReduce_104 +action_142 (201) = happyReduce_104 +action_142 (202) = happyReduce_104 +action_142 (203) = happyReduce_104 +action_142 (204) = happyShift action_292 +action_142 (205) = happyShift action_293 +action_142 (206) = happyShift action_294 +action_142 (207) = happyShift action_295 +action_142 (208) = happyReduce_104 +action_142 (210) = happyReduce_104 +action_142 (211) = happyReduce_104 +action_142 (213) = happyReduce_104 +action_142 (214) = happyReduce_104 +action_142 (215) = happyReduce_104 +action_142 (216) = happyShift action_296 +action_142 (217) = happyReduce_104 +action_142 (218) = happyReduce_104 +action_142 (219) = happyReduce_104 +action_142 (220) = happyReduce_104 +action_142 (224) = happyReduce_104 +action_142 (225) = happyReduce_104 +action_142 (226) = happyReduce_104 +action_142 (230) = happyReduce_104 +action_142 (232) = happyReduce_104 +action_142 (238) = happyReduce_104 +action_142 (241) = happyReduce_104 +action_142 (242) = happyReduce_104 +action_142 (243) = happyReduce_104 +action_142 (244) = happyReduce_104 +action_142 (245) = happyReduce_104 +action_142 (246) = happyReduce_104 +action_142 (247) = happyReduce_104 +action_142 (249) = happyReduce_104 +action_142 (251) = happyReduce_104 +action_142 (252) = happyReduce_104 +action_142 (253) = happyReduce_104 +action_142 (254) = happyReduce_104 +action_142 (255) = happyReduce_104 +action_142 (256) = happyReduce_104 +action_142 (257) = happyReduce_104 +action_142 (258) = happyShift action_297 +action_142 (259) = happyShift action_298 +action_142 (260) = happyReduce_104 +action_142 (261) = happyReduce_104 +action_142 (262) = happyReduce_104 +action_142 (263) = happyReduce_104 +action_142 (264) = happyReduce_104 +action_142 (265) = happyReduce_104 +action_142 (266) = happyReduce_104 +action_142 (31) = happyGoto action_291 +action_142 _ = happyReduce_104 + +action_143 (1) = happyReduce_107 +action_143 (194) = happyReduce_107 +action_143 (195) = happyReduce_107 +action_143 (196) = happyReduce_107 +action_143 (197) = happyReduce_107 +action_143 (198) = happyReduce_107 +action_143 (199) = happyReduce_107 +action_143 (201) = happyReduce_107 +action_143 (202) = happyReduce_107 +action_143 (203) = happyReduce_107 +action_143 (204) = happyReduce_107 +action_143 (205) = happyReduce_107 +action_143 (206) = happyReduce_107 +action_143 (207) = happyReduce_107 +action_143 (208) = happyReduce_107 +action_143 (210) = happyReduce_107 +action_143 (211) = happyReduce_107 +action_143 (213) = happyReduce_107 +action_143 (214) = happyReduce_107 +action_143 (215) = happyReduce_107 +action_143 (216) = happyReduce_107 +action_143 (217) = happyReduce_107 +action_143 (218) = happyReduce_107 +action_143 (219) = happyReduce_107 +action_143 (220) = happyReduce_107 +action_143 (224) = happyReduce_107 +action_143 (225) = happyReduce_107 +action_143 (226) = happyReduce_107 +action_143 (230) = happyReduce_107 +action_143 (232) = happyReduce_107 +action_143 (238) = happyReduce_107 +action_143 (241) = happyReduce_107 +action_143 (242) = happyReduce_107 +action_143 (243) = happyReduce_107 +action_143 (244) = happyReduce_107 +action_143 (245) = happyReduce_107 +action_143 (246) = happyReduce_107 +action_143 (247) = happyReduce_107 +action_143 (249) = happyReduce_107 +action_143 (251) = happyReduce_107 +action_143 (252) = happyReduce_107 +action_143 (253) = happyReduce_107 +action_143 (254) = happyReduce_107 +action_143 (255) = happyReduce_107 +action_143 (256) = happyReduce_107 +action_143 (257) = happyReduce_107 +action_143 (258) = happyReduce_107 +action_143 (259) = happyReduce_107 +action_143 (260) = happyReduce_107 +action_143 (261) = happyReduce_107 +action_143 (262) = happyReduce_107 +action_143 (263) = happyReduce_107 +action_143 (264) = happyReduce_107 +action_143 (265) = happyReduce_107 +action_143 (266) = happyReduce_107 +action_143 _ = happyReduce_107 + +action_144 (1) = happyReduce_109 +action_144 (194) = happyShift action_148 +action_144 (195) = happyReduce_109 +action_144 (196) = happyShift action_149 +action_144 (197) = happyReduce_109 +action_144 (198) = happyReduce_109 +action_144 (199) = happyReduce_109 +action_144 (201) = happyReduce_109 +action_144 (202) = happyReduce_109 +action_144 (203) = happyReduce_109 +action_144 (204) = happyReduce_109 +action_144 (205) = happyReduce_109 +action_144 (206) = happyReduce_109 +action_144 (207) = happyReduce_109 +action_144 (208) = happyReduce_109 +action_144 (210) = happyReduce_109 +action_144 (211) = happyReduce_109 +action_144 (213) = happyReduce_109 +action_144 (214) = happyShift action_150 +action_144 (215) = happyReduce_109 +action_144 (216) = happyReduce_109 +action_144 (217) = happyReduce_109 +action_144 (218) = happyReduce_109 +action_144 (219) = happyShift action_45 +action_144 (220) = happyReduce_109 +action_144 (224) = happyReduce_109 +action_144 (225) = happyReduce_109 +action_144 (226) = happyReduce_109 +action_144 (230) = happyShift action_47 +action_144 (232) = happyReduce_109 +action_144 (238) = happyReduce_109 +action_144 (241) = happyShift action_48 +action_144 (242) = happyShift action_49 +action_144 (243) = happyReduce_109 +action_144 (244) = happyShift action_50 +action_144 (245) = happyShift action_51 +action_144 (246) = happyReduce_109 +action_144 (247) = happyReduce_109 +action_144 (249) = happyReduce_109 +action_144 (250) = happyShift action_154 +action_144 (251) = happyShift action_112 +action_144 (252) = happyShift action_53 +action_144 (253) = happyReduce_109 +action_144 (254) = happyShift action_54 +action_144 (255) = happyShift action_55 +action_144 (256) = happyShift action_115 +action_144 (257) = happyShift action_116 +action_144 (258) = happyReduce_109 +action_144 (259) = happyReduce_109 +action_144 (260) = happyShift action_117 +action_144 (261) = happyReduce_109 +action_144 (262) = happyShift action_57 +action_144 (263) = happyShift action_58 +action_144 (264) = happyShift action_155 +action_144 (265) = happyReduce_109 +action_144 (266) = happyReduce_109 +action_144 (27) = happyGoto action_133 +action_144 (30) = happyGoto action_134 +action_144 (33) = happyGoto action_135 +action_144 (36) = happyGoto action_136 +action_144 (37) = happyGoto action_137 +action_144 (40) = happyGoto action_138 +action_144 (48) = happyGoto action_290 +action_144 _ = happyReduce_109 + +action_145 _ = happyReduce_111 + +action_146 (194) = happyShift action_288 +action_146 (217) = happyShift action_289 +action_146 (219) = happyShift action_45 +action_146 (230) = happyShift action_47 +action_146 (241) = happyShift action_48 +action_146 (242) = happyShift action_49 +action_146 (244) = happyShift action_50 +action_146 (245) = happyShift action_51 +action_146 (252) = happyShift action_53 +action_146 (30) = happyGoto action_284 +action_146 (52) = happyGoto action_285 +action_146 (137) = happyGoto action_286 +action_146 (167) = happyGoto action_287 +action_146 _ = happyFail (happyExpListPerState 146) + +action_147 (1) = happyAccept +action_147 _ = happyFail (happyExpListPerState 147) + +action_148 (194) = happyShift action_271 +action_148 (196) = happyShift action_272 +action_148 (210) = happyShift action_229 +action_148 (214) = happyShift action_273 +action_148 (216) = happyShift action_151 +action_148 (218) = happyShift action_230 +action_148 (219) = happyShift action_274 +action_148 (220) = happyShift action_232 +action_148 (221) = happyShift action_233 +action_148 (222) = happyShift action_234 +action_148 (223) = happyShift action_235 +action_148 (224) = happyShift action_236 +action_148 (225) = happyShift action_237 +action_148 (226) = happyShift action_238 +action_148 (227) = happyShift action_275 +action_148 (228) = happyShift action_153 +action_148 (229) = happyShift action_240 +action_148 (230) = happyShift action_276 +action_148 (231) = happyShift action_242 +action_148 (232) = happyShift action_243 +action_148 (233) = happyShift action_244 +action_148 (234) = happyShift action_245 +action_148 (235) = happyShift action_246 +action_148 (236) = happyShift action_247 +action_148 (237) = happyShift action_248 +action_148 (238) = happyShift action_249 +action_148 (239) = happyShift action_250 +action_148 (240) = happyShift action_251 +action_148 (241) = happyShift action_277 +action_148 (242) = happyShift action_278 +action_148 (243) = happyShift action_254 +action_148 (244) = happyShift action_279 +action_148 (245) = happyShift action_280 +action_148 (246) = happyShift action_257 +action_148 (247) = happyShift action_258 +action_148 (248) = happyShift action_259 +action_148 (249) = happyShift action_260 +action_148 (250) = happyShift action_154 +action_148 (251) = happyShift action_112 +action_148 (252) = happyShift action_281 +action_148 (254) = happyShift action_54 +action_148 (255) = happyShift action_55 +action_148 (256) = happyShift action_115 +action_148 (257) = happyShift action_116 +action_148 (260) = happyShift action_117 +action_148 (262) = happyShift action_282 +action_148 (263) = happyShift action_283 +action_148 (264) = happyShift action_155 +action_148 (27) = happyGoto action_264 +action_148 (30) = happyGoto action_134 +action_148 (33) = happyGoto action_265 +action_148 (35) = happyGoto action_224 +action_148 (36) = happyGoto action_266 +action_148 (37) = happyGoto action_137 +action_148 (40) = happyGoto action_267 +action_148 (43) = happyGoto action_268 +action_148 (44) = happyGoto action_141 +action_148 (45) = happyGoto action_142 +action_148 (46) = happyGoto action_143 +action_148 (47) = happyGoto action_144 +action_148 (48) = happyGoto action_145 +action_148 (49) = happyGoto action_269 +action_148 (50) = happyGoto action_270 +action_148 (51) = happyGoto action_226 +action_148 (54) = happyGoto action_146 +action_148 (159) = happyGoto action_227 +action_148 (188) = happyGoto action_228 +action_148 _ = happyReduce_134 + +action_149 (210) = happyShift action_229 +action_149 (218) = happyShift action_230 +action_149 (219) = happyShift action_231 +action_149 (220) = happyShift action_232 +action_149 (221) = happyShift action_233 +action_149 (222) = happyShift action_234 +action_149 (223) = happyShift action_235 +action_149 (224) = happyShift action_236 +action_149 (225) = happyShift action_237 +action_149 (226) = happyShift action_238 +action_149 (227) = happyShift action_239 +action_149 (229) = happyShift action_240 +action_149 (230) = happyShift action_241 +action_149 (231) = happyShift action_242 +action_149 (232) = happyShift action_243 +action_149 (233) = happyShift action_244 +action_149 (234) = happyShift action_245 +action_149 (235) = happyShift action_246 +action_149 (236) = happyShift action_247 +action_149 (237) = happyShift action_248 +action_149 (238) = happyShift action_249 +action_149 (239) = happyShift action_250 +action_149 (240) = happyShift action_251 +action_149 (241) = happyShift action_252 +action_149 (242) = happyShift action_253 +action_149 (243) = happyShift action_254 +action_149 (244) = happyShift action_255 +action_149 (245) = happyShift action_256 +action_149 (246) = happyShift action_257 +action_149 (247) = happyShift action_258 +action_149 (248) = happyShift action_259 +action_149 (249) = happyShift action_260 +action_149 (252) = happyShift action_261 +action_149 (262) = happyShift action_262 +action_149 (263) = happyShift action_263 +action_149 (35) = happyGoto action_224 +action_149 (50) = happyGoto action_225 +action_149 (51) = happyGoto action_226 +action_149 (159) = happyGoto action_227 +action_149 (188) = happyGoto action_228 +action_149 _ = happyReduce_134 + +action_150 _ = happyReduce_113 + +action_151 (264) = happyShift action_155 +action_151 (40) = happyGoto action_223 +action_151 _ = happyFail (happyExpListPerState 151) + +action_152 _ = happyReduce_145 + +action_153 _ = happyReduce_146 + +action_154 _ = happyReduce_120 + +action_155 _ = happyReduce_97 + +action_156 _ = happyReduce_330 + +action_157 (1) = happyAccept +action_157 _ = happyFail (happyExpListPerState 157) + +action_158 (194) = happyShift action_40 +action_158 (196) = happyShift action_41 +action_158 (198) = happyShift action_42 +action_158 (208) = happyShift action_222 +action_158 (214) = happyShift action_43 +action_158 (219) = happyShift action_45 +action_158 (226) = happyShift action_46 +action_158 (230) = happyShift action_47 +action_158 (241) = happyShift action_48 +action_158 (242) = happyShift action_49 +action_158 (244) = happyShift action_50 +action_158 (245) = happyShift action_51 +action_158 (247) = happyShift action_52 +action_158 (252) = happyShift action_53 +action_158 (254) = happyShift action_54 +action_158 (255) = happyShift action_55 +action_158 (261) = happyShift action_56 +action_158 (262) = happyShift action_57 +action_158 (263) = happyShift action_58 +action_158 (264) = happyShift action_59 +action_158 (265) = happyShift action_60 +action_158 (27) = happyGoto action_25 +action_158 (30) = happyGoto action_26 +action_158 (37) = happyGoto action_27 +action_158 (38) = happyGoto action_28 +action_158 (39) = happyGoto action_29 +action_158 (41) = happyGoto action_30 +action_158 (88) = happyGoto action_35 +action_158 (128) = happyGoto action_36 +action_158 (130) = happyGoto action_37 +action_158 (132) = happyGoto action_220 +action_158 (138) = happyGoto action_221 +action_158 (162) = happyGoto action_39 +action_158 _ = happyReduce_348 + +action_159 _ = happyReduce_329 + +action_160 (209) = happyShift action_219 +action_160 _ = happyReduce_277 + +action_161 (209) = happyShift action_218 +action_161 _ = happyFail (happyExpListPerState 161) + +action_162 (209) = happyShift action_217 +action_162 _ = happyFail (happyExpListPerState 162) + +action_163 (249) = happyShift action_216 +action_163 _ = happyReduce_281 + +action_164 (249) = happyShift action_215 +action_164 _ = happyReduce_283 + +action_165 _ = happyReduce_292 + +action_166 (264) = happyShift action_155 +action_166 (40) = happyGoto action_214 +action_166 _ = happyFail (happyExpListPerState 166) + +action_167 (1) = happyAccept +action_167 _ = happyFail (happyExpListPerState 167) + +action_168 _ = happyReduce_300 + +action_169 (254) = happyShift action_63 +action_169 (28) = happyGoto action_213 +action_169 _ = happyFail (happyExpListPerState 169) + +action_170 (237) = happyShift action_175 +action_170 (240) = happyShift action_212 +action_170 (115) = happyGoto action_211 +action_170 _ = happyFail (happyExpListPerState 170) + +action_171 (231) = happyShift action_210 +action_171 _ = happyFail (happyExpListPerState 171) + +action_172 _ = happyReduce_322 + +action_173 _ = happyReduce_323 + +action_174 _ = happyReduce_324 + +action_175 (194) = happyShift action_68 +action_175 (219) = happyShift action_45 +action_175 (230) = happyShift action_47 +action_175 (241) = happyShift action_48 +action_175 (242) = happyShift action_49 +action_175 (244) = happyShift action_50 +action_175 (245) = happyShift action_51 +action_175 (252) = happyShift action_53 +action_175 (254) = happyShift action_54 +action_175 (255) = happyShift action_55 +action_175 (27) = happyGoto action_207 +action_175 (30) = happyGoto action_208 +action_175 (116) = happyGoto action_209 +action_175 (117) = happyGoto action_67 +action_175 _ = happyFail (happyExpListPerState 175) + +action_176 (254) = happyShift action_63 +action_176 (28) = happyGoto action_206 +action_176 _ = happyFail (happyExpListPerState 176) + +action_177 (245) = happyShift action_205 +action_177 (254) = happyShift action_63 +action_177 (28) = happyGoto action_204 +action_177 _ = happyFail (happyExpListPerState 177) + +action_178 _ = happyReduce_328 + +action_179 (1) = happyAccept +action_179 _ = happyFail (happyExpListPerState 179) + +action_180 (254) = happyShift action_24 +action_180 (255) = happyShift action_132 +action_180 (26) = happyGoto action_203 +action_180 _ = happyFail (happyExpListPerState 180) + +action_181 (266) = happyAccept +action_181 _ = happyFail (happyExpListPerState 181) + +action_182 (266) = happyAccept +action_182 _ = happyFail (happyExpListPerState 182) + +action_183 (201) = happyShift action_202 +action_183 _ = happyFail (happyExpListPerState 183) + +action_184 _ = happyReduce_396 + +action_185 _ = happyReduce_250 + +action_186 (201) = happyReduce_407 +action_186 (202) = happyReduce_407 +action_186 (225) = happyReduce_407 +action_186 _ = happyReduce_407 + +action_187 _ = happyReduce_248 + +action_188 _ = happyReduce_251 + +action_189 (202) = happyShift action_201 +action_189 _ = happyReduce_360 + +action_190 (225) = happyShift action_200 +action_190 (96) = happyGoto action_199 +action_190 _ = happyReduce_364 + +action_191 (266) = happyAccept +action_191 _ = happyFail (happyExpListPerState 191) + +action_192 _ = happyReduce_49 + +action_193 _ = happyReduce_51 + +action_194 _ = happyReduce_50 + +action_195 _ = happyReduce_48 + +action_196 (266) = happyAccept +action_196 _ = happyFail (happyExpListPerState 196) + +action_197 (266) = happyAccept +action_197 _ = happyFail (happyExpListPerState 197) + +action_198 (266) = happyAccept +action_198 _ = happyFail (happyExpListPerState 198) + +action_199 (219) = happyShift action_45 +action_199 (221) = happyShift action_168 +action_199 (222) = happyShift action_169 +action_199 (223) = happyShift action_170 +action_199 (229) = happyShift action_171 +action_199 (230) = happyShift action_47 +action_199 (234) = happyShift action_172 +action_199 (235) = happyShift action_173 +action_199 (236) = happyShift action_174 +action_199 (237) = happyShift action_175 +action_199 (240) = happyShift action_176 +action_199 (241) = happyShift action_48 +action_199 (242) = happyShift action_49 +action_199 (244) = happyShift action_50 +action_199 (245) = happyShift action_51 +action_199 (248) = happyShift action_177 +action_199 (252) = happyShift action_53 +action_199 (30) = happyGoto action_158 +action_199 (103) = happyGoto action_469 +action_199 (104) = happyGoto action_160 +action_199 (105) = happyGoto action_161 +action_199 (106) = happyGoto action_162 +action_199 (108) = happyGoto action_163 +action_199 (115) = happyGoto action_164 +action_199 (119) = happyGoto action_165 +action_199 (120) = happyGoto action_166 +action_199 _ = happyFail (happyExpListPerState 199) + +action_200 (202) = happyShift action_468 +action_200 _ = happyReduce_252 + +action_201 (219) = happyShift action_45 +action_201 (221) = happyShift action_168 +action_201 (222) = happyShift action_169 +action_201 (223) = happyShift action_170 +action_201 (229) = happyShift action_171 +action_201 (230) = happyShift action_47 +action_201 (231) = happyShift action_180 +action_201 (234) = happyShift action_172 +action_201 (235) = happyShift action_173 +action_201 (236) = happyShift action_174 +action_201 (237) = happyShift action_175 +action_201 (240) = happyShift action_176 +action_201 (241) = happyShift action_48 +action_201 (242) = happyShift action_49 +action_201 (244) = happyShift action_50 +action_201 (245) = happyShift action_51 +action_201 (248) = happyShift action_177 +action_201 (252) = happyShift action_53 +action_201 (30) = happyGoto action_158 +action_201 (95) = happyGoto action_467 +action_201 (100) = happyGoto action_185 +action_201 (103) = happyGoto action_186 +action_201 (104) = happyGoto action_160 +action_201 (105) = happyGoto action_161 +action_201 (106) = happyGoto action_162 +action_201 (108) = happyGoto action_163 +action_201 (115) = happyGoto action_164 +action_201 (119) = happyGoto action_165 +action_201 (120) = happyGoto action_166 +action_201 (150) = happyGoto action_188 +action_201 (179) = happyGoto action_190 +action_201 _ = happyFail (happyExpListPerState 201) + +action_202 _ = happyReduce_243 + +action_203 (194) = happyShift action_465 +action_203 (230) = happyShift action_466 +action_203 (101) = happyGoto action_464 +action_203 _ = happyReduce_268 + +action_204 (194) = happyShift action_451 +action_204 (208) = happyShift action_463 +action_204 (219) = happyShift action_45 +action_204 (230) = happyShift action_47 +action_204 (241) = happyShift action_48 +action_204 (242) = happyShift action_49 +action_204 (244) = happyShift action_50 +action_204 (245) = happyShift action_51 +action_204 (252) = happyShift action_53 +action_204 (30) = happyGoto action_446 +action_204 (53) = happyGoto action_447 +action_204 (141) = happyGoto action_462 +action_204 (161) = happyGoto action_449 +action_204 (190) = happyGoto action_450 +action_204 _ = happyReduce_354 + +action_205 (254) = happyShift action_63 +action_205 (28) = happyGoto action_461 +action_205 _ = happyFail (happyExpListPerState 205) + +action_206 (194) = happyShift action_451 +action_206 (208) = happyShift action_460 +action_206 (219) = happyShift action_45 +action_206 (230) = happyShift action_47 +action_206 (241) = happyShift action_48 +action_206 (242) = happyShift action_49 +action_206 (244) = happyShift action_50 +action_206 (245) = happyShift action_51 +action_206 (252) = happyShift action_53 +action_206 (30) = happyGoto action_446 +action_206 (53) = happyGoto action_447 +action_206 (141) = happyGoto action_459 +action_206 (161) = happyGoto action_449 +action_206 (190) = happyGoto action_450 +action_206 _ = happyReduce_354 + +action_207 (194) = happyShift action_148 +action_207 (196) = happyShift action_149 +action_207 (214) = happyShift action_150 +action_207 (219) = happyShift action_45 +action_207 (230) = happyShift action_47 +action_207 (241) = happyShift action_48 +action_207 (242) = happyShift action_49 +action_207 (244) = happyShift action_50 +action_207 (245) = happyShift action_51 +action_207 (250) = happyShift action_154 +action_207 (251) = happyShift action_112 +action_207 (252) = happyShift action_53 +action_207 (254) = happyShift action_54 +action_207 (255) = happyShift action_55 +action_207 (256) = happyShift action_115 +action_207 (257) = happyShift action_116 +action_207 (260) = happyShift action_117 +action_207 (262) = happyShift action_57 +action_207 (263) = happyShift action_58 +action_207 (264) = happyShift action_155 +action_207 (27) = happyGoto action_133 +action_207 (30) = happyGoto action_134 +action_207 (33) = happyGoto action_135 +action_207 (36) = happyGoto action_136 +action_207 (37) = happyGoto action_137 +action_207 (40) = happyGoto action_138 +action_207 (48) = happyGoto action_333 +action_207 (139) = happyGoto action_458 +action_207 (160) = happyGoto action_335 +action_207 (189) = happyGoto action_336 +action_207 _ = happyReduce_350 + +action_208 (208) = happyShift action_457 +action_208 _ = happyFail (happyExpListPerState 208) + +action_209 (206) = happyShift action_456 +action_209 _ = happyFail (happyExpListPerState 209) + +action_210 (219) = happyShift action_45 +action_210 (222) = happyShift action_455 +action_210 (230) = happyShift action_47 +action_210 (241) = happyShift action_48 +action_210 (242) = happyShift action_49 +action_210 (244) = happyShift action_50 +action_210 (245) = happyShift action_51 +action_210 (252) = happyShift action_53 +action_210 (30) = happyGoto action_454 +action_210 _ = happyFail (happyExpListPerState 210) + +action_211 _ = happyReduce_288 + +action_212 (237) = happyShift action_175 +action_212 (115) = happyGoto action_453 +action_212 _ = happyFail (happyExpListPerState 212) + +action_213 (194) = happyShift action_451 +action_213 (208) = happyShift action_452 +action_213 (219) = happyShift action_45 +action_213 (230) = happyShift action_47 +action_213 (241) = happyShift action_48 +action_213 (242) = happyShift action_49 +action_213 (244) = happyShift action_50 +action_213 (245) = happyShift action_51 +action_213 (252) = happyShift action_53 +action_213 (30) = happyGoto action_446 +action_213 (53) = happyGoto action_447 +action_213 (141) = happyGoto action_448 +action_213 (161) = happyGoto action_449 +action_213 (190) = happyGoto action_450 +action_213 _ = happyReduce_354 + +action_214 (219) = happyShift action_102 +action_214 (230) = happyShift action_105 +action_214 (241) = happyShift action_108 +action_214 (242) = happyShift action_109 +action_214 (244) = happyShift action_110 +action_214 (245) = happyShift action_111 +action_214 (248) = happyShift action_445 +action_214 (252) = happyShift action_113 +action_214 (253) = happyShift action_114 +action_214 (254) = happyShift action_54 +action_214 (255) = happyShift action_55 +action_214 (27) = happyGoto action_443 +action_214 (29) = happyGoto action_444 +action_214 _ = happyFail (happyExpListPerState 214) + +action_215 (200) = happyShift action_442 +action_215 _ = happyFail (happyExpListPerState 215) + +action_216 (200) = happyShift action_441 +action_216 _ = happyFail (happyExpListPerState 216) + +action_217 (254) = happyShift action_63 +action_217 (28) = happyGoto action_440 +action_217 _ = happyFail (happyExpListPerState 217) + +action_218 (194) = happyShift action_148 +action_218 (196) = happyShift action_149 +action_218 (214) = happyShift action_150 +action_218 (216) = happyShift action_151 +action_218 (219) = happyShift action_45 +action_218 (227) = happyShift action_152 +action_218 (228) = happyShift action_153 +action_218 (230) = happyShift action_47 +action_218 (241) = happyShift action_48 +action_218 (242) = happyShift action_49 +action_218 (244) = happyShift action_50 +action_218 (245) = happyShift action_51 +action_218 (250) = happyShift action_154 +action_218 (251) = happyShift action_112 +action_218 (252) = happyShift action_53 +action_218 (254) = happyShift action_54 +action_218 (255) = happyShift action_55 +action_218 (256) = happyShift action_115 +action_218 (257) = happyShift action_116 +action_218 (260) = happyShift action_117 +action_218 (262) = happyShift action_57 +action_218 (263) = happyShift action_58 +action_218 (264) = happyShift action_155 +action_218 (27) = happyGoto action_133 +action_218 (30) = happyGoto action_134 +action_218 (33) = happyGoto action_135 +action_218 (36) = happyGoto action_136 +action_218 (37) = happyGoto action_137 +action_218 (40) = happyGoto action_138 +action_218 (42) = happyGoto action_439 +action_218 (43) = happyGoto action_140 +action_218 (44) = happyGoto action_141 +action_218 (45) = happyGoto action_142 +action_218 (46) = happyGoto action_143 +action_218 (47) = happyGoto action_144 +action_218 (48) = happyGoto action_145 +action_218 (54) = happyGoto action_146 +action_218 _ = happyFail (happyExpListPerState 218) + +action_219 (254) = happyShift action_63 +action_219 (28) = happyGoto action_435 +action_219 (107) = happyGoto action_436 +action_219 (149) = happyGoto action_437 +action_219 (178) = happyGoto action_438 +action_219 _ = happyFail (happyExpListPerState 219) + +action_220 _ = happyReduce_349 + +action_221 (209) = happyShift action_433 +action_221 (210) = happyShift action_434 +action_221 (71) = happyGoto action_428 +action_221 (72) = happyGoto action_429 +action_221 (80) = happyGoto action_430 +action_221 (134) = happyGoto action_431 +action_221 (164) = happyGoto action_432 +action_221 _ = happyFail (happyExpListPerState 221) + +action_222 (194) = happyShift action_148 +action_222 (196) = happyShift action_149 +action_222 (214) = happyShift action_150 +action_222 (216) = happyShift action_151 +action_222 (219) = happyShift action_45 +action_222 (227) = happyShift action_152 +action_222 (228) = happyShift action_153 +action_222 (230) = happyShift action_47 +action_222 (241) = happyShift action_48 +action_222 (242) = happyShift action_49 +action_222 (244) = happyShift action_50 +action_222 (245) = happyShift action_51 +action_222 (250) = happyShift action_154 +action_222 (251) = happyShift action_112 +action_222 (252) = happyShift action_53 +action_222 (254) = happyShift action_54 +action_222 (255) = happyShift action_55 +action_222 (256) = happyShift action_115 +action_222 (257) = happyShift action_116 +action_222 (260) = happyShift action_117 +action_222 (262) = happyShift action_57 +action_222 (263) = happyShift action_58 +action_222 (264) = happyShift action_155 +action_222 (27) = happyGoto action_133 +action_222 (30) = happyGoto action_134 +action_222 (33) = happyGoto action_135 +action_222 (36) = happyGoto action_136 +action_222 (37) = happyGoto action_137 +action_222 (40) = happyGoto action_138 +action_222 (42) = happyGoto action_427 +action_222 (43) = happyGoto action_140 +action_222 (44) = happyGoto action_141 +action_222 (45) = happyGoto action_142 +action_222 (46) = happyGoto action_143 +action_222 (47) = happyGoto action_144 +action_222 (48) = happyGoto action_145 +action_222 (54) = happyGoto action_146 +action_222 _ = happyFail (happyExpListPerState 222) + +action_223 _ = happyReduce_110 + +action_224 (208) = happyShift action_426 +action_224 _ = happyFail (happyExpListPerState 224) + +action_225 (197) = happyShift action_425 +action_225 _ = happyFail (happyExpListPerState 225) + +action_226 (195) = happyReduce_425 +action_226 (197) = happyReduce_425 +action_226 (210) = happyReduce_425 +action_226 (213) = happyReduce_425 +action_226 _ = happyReduce_425 + +action_227 (210) = happyShift action_424 +action_227 _ = happyReduce_136 + +action_228 (213) = happyShift action_423 +action_228 _ = happyReduce_373 + +action_229 (194) = happyShift action_148 +action_229 (196) = happyShift action_149 +action_229 (214) = happyShift action_150 +action_229 (216) = happyShift action_151 +action_229 (219) = happyShift action_45 +action_229 (227) = happyShift action_152 +action_229 (228) = happyShift action_153 +action_229 (230) = happyShift action_47 +action_229 (241) = happyShift action_48 +action_229 (242) = happyShift action_49 +action_229 (244) = happyShift action_50 +action_229 (245) = happyShift action_51 +action_229 (250) = happyShift action_154 +action_229 (251) = happyShift action_112 +action_229 (252) = happyShift action_53 +action_229 (254) = happyShift action_54 +action_229 (255) = happyShift action_55 +action_229 (256) = happyShift action_115 +action_229 (257) = happyShift action_116 +action_229 (260) = happyShift action_117 +action_229 (262) = happyShift action_57 +action_229 (263) = happyShift action_58 +action_229 (264) = happyShift action_155 +action_229 (27) = happyGoto action_133 +action_229 (30) = happyGoto action_134 +action_229 (33) = happyGoto action_135 +action_229 (36) = happyGoto action_136 +action_229 (37) = happyGoto action_137 +action_229 (40) = happyGoto action_138 +action_229 (42) = happyGoto action_422 +action_229 (43) = happyGoto action_140 +action_229 (44) = happyGoto action_141 +action_229 (45) = happyGoto action_142 +action_229 (46) = happyGoto action_143 +action_229 (47) = happyGoto action_144 +action_229 (48) = happyGoto action_145 +action_229 (54) = happyGoto action_146 +action_229 _ = happyFail (happyExpListPerState 229) + +action_230 _ = happyReduce_60 + +action_231 _ = happyReduce_61 + +action_232 _ = happyReduce_62 + +action_233 _ = happyReduce_63 + +action_234 _ = happyReduce_64 + +action_235 _ = happyReduce_65 + +action_236 _ = happyReduce_66 + +action_237 _ = happyReduce_67 + +action_238 _ = happyReduce_68 + +action_239 _ = happyReduce_69 + +action_240 _ = happyReduce_70 + +action_241 _ = happyReduce_71 + +action_242 _ = happyReduce_72 + +action_243 _ = happyReduce_73 + +action_244 _ = happyReduce_74 + +action_245 _ = happyReduce_75 + +action_246 _ = happyReduce_76 + +action_247 _ = happyReduce_77 + +action_248 _ = happyReduce_78 + +action_249 _ = happyReduce_79 + +action_250 _ = happyReduce_80 + +action_251 _ = happyReduce_81 + +action_252 _ = happyReduce_82 + +action_253 _ = happyReduce_84 + +action_254 _ = happyReduce_83 + +action_255 _ = happyReduce_85 + +action_256 _ = happyReduce_86 + +action_257 _ = happyReduce_87 + +action_258 _ = happyReduce_88 + +action_259 _ = happyReduce_89 + +action_260 _ = happyReduce_90 + +action_261 _ = happyReduce_57 + +action_262 _ = happyReduce_58 + +action_263 _ = happyReduce_59 + +action_264 (208) = happyReduce_126 +action_264 _ = happyReduce_115 + +action_265 (208) = happyReduce_127 +action_265 _ = happyReduce_116 + +action_266 (208) = happyReduce_129 +action_266 _ = happyReduce_119 + +action_267 (208) = happyReduce_128 +action_267 _ = happyReduce_118 + +action_268 (195) = happyShift action_421 +action_268 _ = happyFail (happyExpListPerState 268) + +action_269 (208) = happyShift action_420 +action_269 _ = happyFail (happyExpListPerState 269) + +action_270 (195) = happyShift action_419 +action_270 _ = happyFail (happyExpListPerState 270) + +action_271 (194) = happyShift action_271 +action_271 (196) = happyShift action_272 +action_271 (210) = happyShift action_229 +action_271 (214) = happyShift action_273 +action_271 (216) = happyShift action_151 +action_271 (218) = happyShift action_230 +action_271 (219) = happyShift action_274 +action_271 (220) = happyShift action_232 +action_271 (221) = happyShift action_233 +action_271 (222) = happyShift action_234 +action_271 (223) = happyShift action_235 +action_271 (224) = happyShift action_236 +action_271 (225) = happyShift action_237 +action_271 (226) = happyShift action_238 +action_271 (227) = happyShift action_275 +action_271 (228) = happyShift action_153 +action_271 (229) = happyShift action_240 +action_271 (230) = happyShift action_276 +action_271 (231) = happyShift action_242 +action_271 (232) = happyShift action_243 +action_271 (233) = happyShift action_244 +action_271 (234) = happyShift action_245 +action_271 (235) = happyShift action_246 +action_271 (236) = happyShift action_247 +action_271 (237) = happyShift action_248 +action_271 (238) = happyShift action_249 +action_271 (239) = happyShift action_250 +action_271 (240) = happyShift action_251 +action_271 (241) = happyShift action_277 +action_271 (242) = happyShift action_278 +action_271 (243) = happyShift action_254 +action_271 (244) = happyShift action_279 +action_271 (245) = happyShift action_280 +action_271 (246) = happyShift action_257 +action_271 (247) = happyShift action_258 +action_271 (248) = happyShift action_259 +action_271 (249) = happyShift action_260 +action_271 (250) = happyShift action_154 +action_271 (251) = happyShift action_112 +action_271 (252) = happyShift action_281 +action_271 (254) = happyShift action_54 +action_271 (255) = happyShift action_55 +action_271 (256) = happyShift action_115 +action_271 (257) = happyShift action_116 +action_271 (260) = happyShift action_117 +action_271 (262) = happyShift action_282 +action_271 (263) = happyShift action_283 +action_271 (264) = happyShift action_155 +action_271 (27) = happyGoto action_264 +action_271 (30) = happyGoto action_134 +action_271 (33) = happyGoto action_265 +action_271 (35) = happyGoto action_224 +action_271 (36) = happyGoto action_266 +action_271 (37) = happyGoto action_137 +action_271 (40) = happyGoto action_267 +action_271 (43) = happyGoto action_416 +action_271 (44) = happyGoto action_141 +action_271 (45) = happyGoto action_142 +action_271 (46) = happyGoto action_143 +action_271 (47) = happyGoto action_144 +action_271 (48) = happyGoto action_145 +action_271 (49) = happyGoto action_417 +action_271 (50) = happyGoto action_418 +action_271 (51) = happyGoto action_226 +action_271 (54) = happyGoto action_146 +action_271 (159) = happyGoto action_227 +action_271 (188) = happyGoto action_228 +action_271 _ = happyReduce_134 + +action_272 (210) = happyShift action_229 +action_272 (218) = happyShift action_230 +action_272 (219) = happyShift action_231 +action_272 (220) = happyShift action_232 +action_272 (221) = happyShift action_233 +action_272 (222) = happyShift action_234 +action_272 (223) = happyShift action_235 +action_272 (224) = happyShift action_236 +action_272 (225) = happyShift action_237 +action_272 (226) = happyShift action_238 +action_272 (227) = happyShift action_239 +action_272 (229) = happyShift action_240 +action_272 (230) = happyShift action_241 +action_272 (231) = happyShift action_242 +action_272 (232) = happyShift action_243 +action_272 (233) = happyShift action_244 +action_272 (234) = happyShift action_245 +action_272 (235) = happyShift action_246 +action_272 (236) = happyShift action_247 +action_272 (237) = happyShift action_248 +action_272 (238) = happyShift action_249 +action_272 (239) = happyShift action_250 +action_272 (240) = happyShift action_251 +action_272 (241) = happyShift action_252 +action_272 (242) = happyShift action_253 +action_272 (243) = happyShift action_254 +action_272 (244) = happyShift action_255 +action_272 (245) = happyShift action_256 +action_272 (246) = happyShift action_257 +action_272 (247) = happyShift action_258 +action_272 (248) = happyShift action_259 +action_272 (249) = happyShift action_260 +action_272 (252) = happyShift action_261 +action_272 (262) = happyShift action_262 +action_272 (263) = happyShift action_263 +action_272 (35) = happyGoto action_224 +action_272 (50) = happyGoto action_415 +action_272 (51) = happyGoto action_226 +action_272 (159) = happyGoto action_227 +action_272 (188) = happyGoto action_228 +action_272 _ = happyReduce_134 + +action_273 (208) = happyReduce_125 +action_273 _ = happyReduce_113 + +action_274 (208) = happyReduce_61 +action_274 _ = happyReduce_37 + +action_275 (208) = happyReduce_69 +action_275 _ = happyReduce_145 + +action_276 (208) = happyReduce_71 +action_276 _ = happyReduce_38 + +action_277 (208) = happyReduce_82 +action_277 _ = happyReduce_40 + +action_278 (208) = happyReduce_84 +action_278 _ = happyReduce_42 + +action_279 (208) = happyReduce_85 +action_279 _ = happyReduce_41 + +action_280 (208) = happyReduce_86 +action_280 _ = happyReduce_39 + +action_281 (208) = happyReduce_57 +action_281 _ = happyReduce_36 + +action_282 (208) = happyReduce_58 +action_282 _ = happyReduce_92 + +action_283 (208) = happyReduce_59 +action_283 _ = happyReduce_93 + +action_284 _ = happyReduce_139 + +action_285 _ = happyReduce_386 + +action_286 (212) = happyShift action_414 +action_286 _ = happyFail (happyExpListPerState 286) + +action_287 (1) = happyReduce_347 +action_287 (194) = happyShift action_288 +action_287 (210) = happyReduce_347 +action_287 (212) = happyReduce_347 +action_287 (217) = happyShift action_289 +action_287 (219) = happyShift action_45 +action_287 (230) = happyShift action_47 +action_287 (241) = happyShift action_48 +action_287 (242) = happyShift action_49 +action_287 (244) = happyShift action_50 +action_287 (245) = happyShift action_51 +action_287 (252) = happyShift action_53 +action_287 (30) = happyGoto action_284 +action_287 (52) = happyGoto action_413 +action_287 _ = happyReduce_347 + +action_288 (217) = happyShift action_412 +action_288 (219) = happyShift action_45 +action_288 (230) = happyShift action_47 +action_288 (241) = happyShift action_48 +action_288 (242) = happyShift action_49 +action_288 (244) = happyShift action_50 +action_288 (245) = happyShift action_51 +action_288 (252) = happyShift action_53 +action_288 (30) = happyGoto action_411 +action_288 _ = happyFail (happyExpListPerState 288) + +action_289 (219) = happyShift action_45 +action_289 (230) = happyShift action_47 +action_289 (241) = happyShift action_48 +action_289 (242) = happyShift action_49 +action_289 (244) = happyShift action_50 +action_289 (245) = happyShift action_51 +action_289 (252) = happyShift action_53 +action_289 (30) = happyGoto action_410 +action_289 _ = happyFail (happyExpListPerState 289) + +action_290 _ = happyReduce_112 + +action_291 (194) = happyShift action_148 +action_291 (196) = happyShift action_149 +action_291 (214) = happyShift action_150 +action_291 (216) = happyShift action_151 +action_291 (219) = happyShift action_45 +action_291 (230) = happyShift action_47 +action_291 (241) = happyShift action_48 +action_291 (242) = happyShift action_49 +action_291 (244) = happyShift action_50 +action_291 (245) = happyShift action_51 +action_291 (250) = happyShift action_154 +action_291 (251) = happyShift action_112 +action_291 (252) = happyShift action_53 +action_291 (254) = happyShift action_54 +action_291 (255) = happyShift action_55 +action_291 (256) = happyShift action_115 +action_291 (257) = happyShift action_116 +action_291 (260) = happyShift action_117 +action_291 (262) = happyShift action_57 +action_291 (263) = happyShift action_58 +action_291 (264) = happyShift action_155 +action_291 (27) = happyGoto action_133 +action_291 (30) = happyGoto action_134 +action_291 (33) = happyGoto action_135 +action_291 (36) = happyGoto action_136 +action_291 (37) = happyGoto action_137 +action_291 (40) = happyGoto action_138 +action_291 (46) = happyGoto action_409 +action_291 (47) = happyGoto action_144 +action_291 (48) = happyGoto action_145 +action_291 _ = happyFail (happyExpListPerState 291) + +action_292 (194) = happyShift action_148 +action_292 (196) = happyShift action_149 +action_292 (214) = happyShift action_150 +action_292 (216) = happyShift action_151 +action_292 (219) = happyShift action_45 +action_292 (227) = happyShift action_152 +action_292 (228) = happyShift action_153 +action_292 (230) = happyShift action_47 +action_292 (241) = happyShift action_48 +action_292 (242) = happyShift action_49 +action_292 (244) = happyShift action_50 +action_292 (245) = happyShift action_51 +action_292 (250) = happyShift action_154 +action_292 (251) = happyShift action_112 +action_292 (252) = happyShift action_53 +action_292 (254) = happyShift action_54 +action_292 (255) = happyShift action_55 +action_292 (256) = happyShift action_115 +action_292 (257) = happyShift action_116 +action_292 (260) = happyShift action_117 +action_292 (262) = happyShift action_57 +action_292 (263) = happyShift action_58 +action_292 (264) = happyShift action_155 +action_292 (27) = happyGoto action_133 +action_292 (30) = happyGoto action_134 +action_292 (33) = happyGoto action_135 +action_292 (36) = happyGoto action_136 +action_292 (37) = happyGoto action_137 +action_292 (40) = happyGoto action_138 +action_292 (43) = happyGoto action_408 +action_292 (44) = happyGoto action_141 +action_292 (45) = happyGoto action_142 +action_292 (46) = happyGoto action_143 +action_292 (47) = happyGoto action_144 +action_292 (48) = happyGoto action_145 +action_292 (54) = happyGoto action_146 +action_292 _ = happyFail (happyExpListPerState 292) + +action_293 _ = happyReduce_45 + +action_294 (194) = happyShift action_148 +action_294 (196) = happyShift action_149 +action_294 (214) = happyShift action_150 +action_294 (216) = happyShift action_151 +action_294 (219) = happyShift action_45 +action_294 (227) = happyShift action_152 +action_294 (228) = happyShift action_153 +action_294 (230) = happyShift action_47 +action_294 (241) = happyShift action_48 +action_294 (242) = happyShift action_49 +action_294 (244) = happyShift action_50 +action_294 (245) = happyShift action_51 +action_294 (250) = happyShift action_154 +action_294 (251) = happyShift action_112 +action_294 (252) = happyShift action_53 +action_294 (254) = happyShift action_54 +action_294 (255) = happyShift action_55 +action_294 (256) = happyShift action_115 +action_294 (257) = happyShift action_116 +action_294 (260) = happyShift action_117 +action_294 (262) = happyShift action_57 +action_294 (263) = happyShift action_58 +action_294 (264) = happyShift action_155 +action_294 (27) = happyGoto action_133 +action_294 (30) = happyGoto action_134 +action_294 (33) = happyGoto action_135 +action_294 (36) = happyGoto action_136 +action_294 (37) = happyGoto action_137 +action_294 (40) = happyGoto action_138 +action_294 (43) = happyGoto action_407 +action_294 (44) = happyGoto action_141 +action_294 (45) = happyGoto action_142 +action_294 (46) = happyGoto action_143 +action_294 (47) = happyGoto action_144 +action_294 (48) = happyGoto action_145 +action_294 (54) = happyGoto action_146 +action_294 _ = happyFail (happyExpListPerState 294) + +action_295 _ = happyReduce_47 + +action_296 _ = happyReduce_46 + +action_297 _ = happyReduce_43 + +action_298 _ = happyReduce_44 + +action_299 (194) = happyShift action_148 +action_299 (196) = happyShift action_149 +action_299 (214) = happyShift action_150 +action_299 (216) = happyShift action_151 +action_299 (219) = happyShift action_45 +action_299 (227) = happyShift action_152 +action_299 (228) = happyShift action_153 +action_299 (230) = happyShift action_47 +action_299 (241) = happyShift action_48 +action_299 (242) = happyShift action_49 +action_299 (244) = happyShift action_50 +action_299 (245) = happyShift action_51 +action_299 (250) = happyShift action_154 +action_299 (251) = happyShift action_112 +action_299 (252) = happyShift action_53 +action_299 (254) = happyShift action_54 +action_299 (255) = happyShift action_55 +action_299 (256) = happyShift action_115 +action_299 (257) = happyShift action_116 +action_299 (260) = happyShift action_117 +action_299 (262) = happyShift action_57 +action_299 (263) = happyShift action_58 +action_299 (264) = happyShift action_155 +action_299 (27) = happyGoto action_133 +action_299 (30) = happyGoto action_134 +action_299 (33) = happyGoto action_135 +action_299 (36) = happyGoto action_136 +action_299 (37) = happyGoto action_137 +action_299 (40) = happyGoto action_138 +action_299 (42) = happyGoto action_406 +action_299 (43) = happyGoto action_140 +action_299 (44) = happyGoto action_141 +action_299 (45) = happyGoto action_142 +action_299 (46) = happyGoto action_143 +action_299 (47) = happyGoto action_144 +action_299 (48) = happyGoto action_145 +action_299 (54) = happyGoto action_146 +action_299 _ = happyFail (happyExpListPerState 299) + +action_300 (194) = happyShift action_405 +action_300 (97) = happyGoto action_404 +action_300 _ = happyReduce_254 + +action_301 (194) = happyShift action_40 +action_301 (196) = happyShift action_41 +action_301 (198) = happyShift action_42 +action_301 (214) = happyShift action_43 +action_301 (216) = happyShift action_44 +action_301 (219) = happyShift action_45 +action_301 (226) = happyShift action_46 +action_301 (230) = happyShift action_47 +action_301 (241) = happyShift action_48 +action_301 (242) = happyShift action_49 +action_301 (244) = happyShift action_50 +action_301 (245) = happyShift action_51 +action_301 (247) = happyShift action_52 +action_301 (252) = happyShift action_53 +action_301 (254) = happyShift action_54 +action_301 (255) = happyShift action_55 +action_301 (261) = happyShift action_56 +action_301 (262) = happyShift action_57 +action_301 (263) = happyShift action_58 +action_301 (264) = happyShift action_59 +action_301 (265) = happyShift action_60 +action_301 (27) = happyGoto action_25 +action_301 (30) = happyGoto action_396 +action_301 (37) = happyGoto action_27 +action_301 (38) = happyGoto action_28 +action_301 (39) = happyGoto action_29 +action_301 (41) = happyGoto action_30 +action_301 (69) = happyGoto action_397 +action_301 (86) = happyGoto action_398 +action_301 (87) = happyGoto action_34 +action_301 (88) = happyGoto action_35 +action_301 (128) = happyGoto action_36 +action_301 (130) = happyGoto action_37 +action_301 (132) = happyGoto action_38 +action_301 (145) = happyGoto action_403 +action_301 (162) = happyGoto action_39 +action_301 (171) = happyGoto action_400 +action_301 _ = happyFail (happyExpListPerState 301) + +action_302 (194) = happyShift action_95 +action_302 (196) = happyShift action_96 +action_302 (198) = happyShift action_97 +action_302 (214) = happyShift action_98 +action_302 (215) = happyShift action_99 +action_302 (216) = happyShift action_100 +action_302 (218) = happyShift action_101 +action_302 (219) = happyShift action_102 +action_302 (220) = happyShift action_103 +action_302 (224) = happyShift action_104 +action_302 (226) = happyShift action_46 +action_302 (230) = happyShift action_105 +action_302 (232) = happyShift action_106 +action_302 (238) = happyShift action_107 +action_302 (241) = happyShift action_108 +action_302 (242) = happyShift action_109 +action_302 (244) = happyShift action_110 +action_302 (245) = happyShift action_111 +action_302 (247) = happyShift action_52 +action_302 (251) = happyShift action_112 +action_302 (252) = happyShift action_113 +action_302 (253) = happyShift action_114 +action_302 (254) = happyShift action_54 +action_302 (255) = happyShift action_55 +action_302 (256) = happyShift action_115 +action_302 (257) = happyShift action_116 +action_302 (260) = happyShift action_117 +action_302 (261) = happyShift action_56 +action_302 (262) = happyShift action_57 +action_302 (263) = happyShift action_58 +action_302 (264) = happyShift action_59 +action_302 (265) = happyShift action_60 +action_302 (27) = happyGoto action_74 +action_302 (29) = happyGoto action_75 +action_302 (33) = happyGoto action_76 +action_302 (36) = happyGoto action_77 +action_302 (37) = happyGoto action_78 +action_302 (38) = happyGoto action_79 +action_302 (39) = happyGoto action_80 +action_302 (41) = happyGoto action_81 +action_302 (58) = happyGoto action_402 +action_302 (60) = happyGoto action_84 +action_302 (61) = happyGoto action_85 +action_302 (62) = happyGoto action_86 +action_302 (63) = happyGoto action_87 +action_302 (64) = happyGoto action_88 +action_302 (65) = happyGoto action_89 +action_302 (75) = happyGoto action_90 +action_302 (76) = happyGoto action_91 +action_302 (129) = happyGoto action_93 +action_302 (131) = happyGoto action_94 +action_302 _ = happyFail (happyExpListPerState 302) + +action_303 (194) = happyShift action_148 +action_303 (196) = happyShift action_149 +action_303 (214) = happyShift action_150 +action_303 (216) = happyShift action_151 +action_303 (219) = happyShift action_45 +action_303 (227) = happyShift action_152 +action_303 (228) = happyShift action_153 +action_303 (230) = happyShift action_47 +action_303 (241) = happyShift action_48 +action_303 (242) = happyShift action_49 +action_303 (244) = happyShift action_50 +action_303 (245) = happyShift action_51 +action_303 (250) = happyShift action_154 +action_303 (251) = happyShift action_112 +action_303 (252) = happyShift action_53 +action_303 (254) = happyShift action_54 +action_303 (255) = happyShift action_55 +action_303 (256) = happyShift action_115 +action_303 (257) = happyShift action_116 +action_303 (260) = happyShift action_117 +action_303 (262) = happyShift action_57 +action_303 (263) = happyShift action_58 +action_303 (264) = happyShift action_155 +action_303 (27) = happyGoto action_133 +action_303 (30) = happyGoto action_134 +action_303 (33) = happyGoto action_135 +action_303 (36) = happyGoto action_136 +action_303 (37) = happyGoto action_137 +action_303 (40) = happyGoto action_138 +action_303 (42) = happyGoto action_401 +action_303 (43) = happyGoto action_140 +action_303 (44) = happyGoto action_141 +action_303 (45) = happyGoto action_142 +action_303 (46) = happyGoto action_143 +action_303 (47) = happyGoto action_144 +action_303 (48) = happyGoto action_145 +action_303 (54) = happyGoto action_146 +action_303 _ = happyFail (happyExpListPerState 303) + +action_304 (194) = happyShift action_40 +action_304 (196) = happyShift action_41 +action_304 (198) = happyShift action_42 +action_304 (214) = happyShift action_43 +action_304 (216) = happyShift action_44 +action_304 (219) = happyShift action_45 +action_304 (226) = happyShift action_46 +action_304 (230) = happyShift action_47 +action_304 (241) = happyShift action_48 +action_304 (242) = happyShift action_49 +action_304 (244) = happyShift action_50 +action_304 (245) = happyShift action_51 +action_304 (247) = happyShift action_52 +action_304 (252) = happyShift action_53 +action_304 (254) = happyShift action_54 +action_304 (255) = happyShift action_55 +action_304 (261) = happyShift action_56 +action_304 (262) = happyShift action_57 +action_304 (263) = happyShift action_58 +action_304 (264) = happyShift action_59 +action_304 (265) = happyShift action_60 +action_304 (27) = happyGoto action_25 +action_304 (30) = happyGoto action_396 +action_304 (37) = happyGoto action_27 +action_304 (38) = happyGoto action_28 +action_304 (39) = happyGoto action_29 +action_304 (41) = happyGoto action_30 +action_304 (69) = happyGoto action_397 +action_304 (86) = happyGoto action_398 +action_304 (87) = happyGoto action_34 +action_304 (88) = happyGoto action_35 +action_304 (128) = happyGoto action_36 +action_304 (130) = happyGoto action_37 +action_304 (132) = happyGoto action_38 +action_304 (145) = happyGoto action_399 +action_304 (162) = happyGoto action_39 +action_304 (171) = happyGoto action_400 +action_304 _ = happyFail (happyExpListPerState 304) + +action_305 (246) = happyShift action_395 +action_305 _ = happyFail (happyExpListPerState 305) + +action_306 _ = happyReduce_208 + +action_307 (199) = happyReduce_411 +action_307 (213) = happyReduce_411 +action_307 (243) = happyReduce_411 +action_307 _ = happyReduce_411 + +action_308 (243) = happyShift action_394 +action_308 _ = happyFail (happyExpListPerState 308) + +action_309 (213) = happyShift action_393 +action_309 _ = happyReduce_366 + +action_310 (201) = happyShift action_392 +action_310 _ = happyReduce_210 + +action_311 _ = happyReduce_158 + +action_312 (204) = happyShift action_391 +action_312 _ = happyFail (happyExpListPerState 312) + +action_313 (199) = happyShift action_390 +action_313 _ = happyFail (happyExpListPerState 313) + +action_314 _ = happyReduce_336 + +action_315 (207) = happyShift action_388 +action_315 (209) = happyShift action_389 +action_315 _ = happyReduce_188 + +action_316 (197) = happyReduce_435 +action_316 (213) = happyReduce_435 +action_316 _ = happyReduce_435 + +action_317 (197) = happyShift action_387 +action_317 _ = happyFail (happyExpListPerState 317) + +action_318 (213) = happyShift action_386 +action_318 _ = happyReduce_400 + +action_319 _ = happyReduce_340 + +action_320 (195) = happyShift action_385 +action_320 _ = happyFail (happyExpListPerState 320) + +action_321 (194) = happyShift action_95 +action_321 (196) = happyShift action_96 +action_321 (198) = happyShift action_97 +action_321 (214) = happyShift action_98 +action_321 (215) = happyShift action_99 +action_321 (216) = happyShift action_100 +action_321 (218) = happyShift action_101 +action_321 (219) = happyShift action_102 +action_321 (220) = happyShift action_103 +action_321 (224) = happyShift action_104 +action_321 (226) = happyShift action_46 +action_321 (230) = happyShift action_105 +action_321 (232) = happyShift action_106 +action_321 (238) = happyShift action_107 +action_321 (241) = happyShift action_108 +action_321 (242) = happyShift action_109 +action_321 (244) = happyShift action_110 +action_321 (245) = happyShift action_111 +action_321 (247) = happyShift action_52 +action_321 (251) = happyShift action_112 +action_321 (252) = happyShift action_113 +action_321 (253) = happyShift action_114 +action_321 (254) = happyShift action_54 +action_321 (255) = happyShift action_55 +action_321 (256) = happyShift action_115 +action_321 (257) = happyShift action_116 +action_321 (260) = happyShift action_117 +action_321 (261) = happyShift action_56 +action_321 (262) = happyShift action_57 +action_321 (263) = happyShift action_58 +action_321 (264) = happyShift action_59 +action_321 (265) = happyShift action_60 +action_321 (27) = happyGoto action_74 +action_321 (29) = happyGoto action_75 +action_321 (33) = happyGoto action_76 +action_321 (36) = happyGoto action_77 +action_321 (37) = happyGoto action_78 +action_321 (38) = happyGoto action_79 +action_321 (39) = happyGoto action_80 +action_321 (41) = happyGoto action_81 +action_321 (56) = happyGoto action_384 +action_321 (57) = happyGoto action_122 +action_321 (58) = happyGoto action_83 +action_321 (60) = happyGoto action_84 +action_321 (61) = happyGoto action_85 +action_321 (62) = happyGoto action_86 +action_321 (63) = happyGoto action_87 +action_321 (64) = happyGoto action_88 +action_321 (65) = happyGoto action_89 +action_321 (75) = happyGoto action_90 +action_321 (76) = happyGoto action_91 +action_321 (129) = happyGoto action_93 +action_321 (131) = happyGoto action_94 +action_321 _ = happyFail (happyExpListPerState 321) + +action_322 (218) = happyShift action_230 +action_322 (219) = happyShift action_231 +action_322 (220) = happyShift action_232 +action_322 (221) = happyShift action_233 +action_322 (222) = happyShift action_234 +action_322 (223) = happyShift action_235 +action_322 (224) = happyShift action_236 +action_322 (225) = happyShift action_237 +action_322 (226) = happyShift action_238 +action_322 (227) = happyShift action_239 +action_322 (229) = happyShift action_240 +action_322 (230) = happyShift action_241 +action_322 (231) = happyShift action_242 +action_322 (232) = happyShift action_243 +action_322 (233) = happyShift action_244 +action_322 (234) = happyShift action_245 +action_322 (235) = happyShift action_246 +action_322 (236) = happyShift action_247 +action_322 (237) = happyShift action_248 +action_322 (238) = happyShift action_249 +action_322 (239) = happyShift action_250 +action_322 (240) = happyShift action_251 +action_322 (241) = happyShift action_252 +action_322 (242) = happyShift action_253 +action_322 (243) = happyShift action_254 +action_322 (244) = happyShift action_255 +action_322 (245) = happyShift action_256 +action_322 (246) = happyShift action_257 +action_322 (247) = happyShift action_258 +action_322 (248) = happyShift action_259 +action_322 (249) = happyShift action_260 +action_322 (252) = happyShift action_261 +action_322 (262) = happyShift action_262 +action_322 (263) = happyShift action_263 +action_322 (35) = happyGoto action_381 +action_322 (155) = happyGoto action_382 +action_322 (184) = happyGoto action_383 +action_322 _ = happyFail (happyExpListPerState 322) + +action_323 (197) = happyShift action_380 +action_323 (218) = happyShift action_230 +action_323 (219) = happyShift action_231 +action_323 (220) = happyShift action_232 +action_323 (221) = happyShift action_233 +action_323 (222) = happyShift action_234 +action_323 (223) = happyShift action_235 +action_323 (224) = happyShift action_236 +action_323 (225) = happyShift action_237 +action_323 (226) = happyShift action_238 +action_323 (227) = happyShift action_239 +action_323 (229) = happyShift action_240 +action_323 (230) = happyShift action_241 +action_323 (231) = happyShift action_242 +action_323 (232) = happyShift action_243 +action_323 (233) = happyShift action_244 +action_323 (234) = happyShift action_245 +action_323 (235) = happyShift action_246 +action_323 (236) = happyShift action_247 +action_323 (237) = happyShift action_248 +action_323 (238) = happyShift action_249 +action_323 (239) = happyShift action_250 +action_323 (240) = happyShift action_251 +action_323 (241) = happyShift action_252 +action_323 (242) = happyShift action_253 +action_323 (243) = happyShift action_254 +action_323 (244) = happyShift action_255 +action_323 (245) = happyShift action_256 +action_323 (246) = happyShift action_257 +action_323 (247) = happyShift action_258 +action_323 (248) = happyShift action_259 +action_323 (249) = happyShift action_260 +action_323 (252) = happyShift action_261 +action_323 (262) = happyShift action_262 +action_323 (263) = happyShift action_263 +action_323 (35) = happyGoto action_376 +action_323 (67) = happyGoto action_377 +action_323 (158) = happyGoto action_378 +action_323 (187) = happyGoto action_379 +action_323 _ = happyFail (happyExpListPerState 323) + +action_324 _ = happyReduce_160 + +action_325 (194) = happyShift action_148 +action_325 (196) = happyShift action_149 +action_325 (214) = happyShift action_150 +action_325 (219) = happyShift action_45 +action_325 (230) = happyShift action_47 +action_325 (241) = happyShift action_48 +action_325 (242) = happyShift action_49 +action_325 (244) = happyShift action_50 +action_325 (245) = happyShift action_51 +action_325 (250) = happyShift action_154 +action_325 (251) = happyShift action_112 +action_325 (252) = happyShift action_53 +action_325 (254) = happyShift action_54 +action_325 (255) = happyShift action_55 +action_325 (256) = happyShift action_115 +action_325 (257) = happyShift action_116 +action_325 (260) = happyShift action_117 +action_325 (262) = happyShift action_57 +action_325 (263) = happyShift action_58 +action_325 (264) = happyShift action_155 +action_325 (27) = happyGoto action_133 +action_325 (30) = happyGoto action_134 +action_325 (33) = happyGoto action_135 +action_325 (36) = happyGoto action_136 +action_325 (37) = happyGoto action_137 +action_325 (40) = happyGoto action_138 +action_325 (48) = happyGoto action_375 +action_325 _ = happyFail (happyExpListPerState 325) + +action_326 (194) = happyShift action_95 +action_326 (196) = happyShift action_96 +action_326 (198) = happyShift action_97 +action_326 (214) = happyShift action_98 +action_326 (215) = happyShift action_99 +action_326 (216) = happyShift action_100 +action_326 (218) = happyShift action_101 +action_326 (219) = happyShift action_102 +action_326 (220) = happyShift action_103 +action_326 (224) = happyShift action_104 +action_326 (226) = happyShift action_46 +action_326 (230) = happyShift action_105 +action_326 (232) = happyShift action_106 +action_326 (238) = happyShift action_107 +action_326 (241) = happyShift action_108 +action_326 (242) = happyShift action_109 +action_326 (244) = happyShift action_110 +action_326 (245) = happyShift action_111 +action_326 (247) = happyShift action_52 +action_326 (251) = happyShift action_112 +action_326 (252) = happyShift action_113 +action_326 (253) = happyShift action_114 +action_326 (254) = happyShift action_54 +action_326 (255) = happyShift action_55 +action_326 (256) = happyShift action_115 +action_326 (257) = happyShift action_116 +action_326 (260) = happyShift action_117 +action_326 (261) = happyShift action_56 +action_326 (262) = happyShift action_57 +action_326 (263) = happyShift action_58 +action_326 (264) = happyShift action_59 +action_326 (265) = happyShift action_60 +action_326 (27) = happyGoto action_74 +action_326 (29) = happyGoto action_75 +action_326 (33) = happyGoto action_76 +action_326 (36) = happyGoto action_77 +action_326 (37) = happyGoto action_78 +action_326 (38) = happyGoto action_79 +action_326 (39) = happyGoto action_80 +action_326 (41) = happyGoto action_81 +action_326 (59) = happyGoto action_373 +action_326 (60) = happyGoto action_374 +action_326 (61) = happyGoto action_85 +action_326 (62) = happyGoto action_86 +action_326 (63) = happyGoto action_87 +action_326 (64) = happyGoto action_88 +action_326 (65) = happyGoto action_89 +action_326 (75) = happyGoto action_90 +action_326 (76) = happyGoto action_91 +action_326 (129) = happyGoto action_93 +action_326 (131) = happyGoto action_94 +action_326 _ = happyFail (happyExpListPerState 326) + +action_327 (194) = happyShift action_148 +action_327 (196) = happyShift action_149 +action_327 (214) = happyShift action_150 +action_327 (216) = happyShift action_151 +action_327 (219) = happyShift action_45 +action_327 (227) = happyShift action_152 +action_327 (228) = happyShift action_153 +action_327 (230) = happyShift action_47 +action_327 (241) = happyShift action_48 +action_327 (242) = happyShift action_49 +action_327 (244) = happyShift action_50 +action_327 (245) = happyShift action_51 +action_327 (250) = happyShift action_154 +action_327 (251) = happyShift action_112 +action_327 (252) = happyShift action_53 +action_327 (254) = happyShift action_54 +action_327 (255) = happyShift action_55 +action_327 (256) = happyShift action_115 +action_327 (257) = happyShift action_116 +action_327 (260) = happyShift action_117 +action_327 (262) = happyShift action_57 +action_327 (263) = happyShift action_58 +action_327 (264) = happyShift action_155 +action_327 (27) = happyGoto action_133 +action_327 (30) = happyGoto action_134 +action_327 (33) = happyGoto action_135 +action_327 (36) = happyGoto action_136 +action_327 (37) = happyGoto action_137 +action_327 (40) = happyGoto action_138 +action_327 (42) = happyGoto action_372 +action_327 (43) = happyGoto action_140 +action_327 (44) = happyGoto action_141 +action_327 (45) = happyGoto action_142 +action_327 (46) = happyGoto action_143 +action_327 (47) = happyGoto action_144 +action_327 (48) = happyGoto action_145 +action_327 (54) = happyGoto action_146 +action_327 _ = happyFail (happyExpListPerState 327) + +action_328 (195) = happyShift action_371 +action_328 (213) = happyReduce_403 +action_328 _ = happyReduce_403 + +action_329 (195) = happyShift action_370 +action_329 _ = happyFail (happyExpListPerState 329) + +action_330 (213) = happyShift action_369 +action_330 _ = happyReduce_362 + +action_331 (194) = happyShift action_331 +action_331 (254) = happyShift action_54 +action_331 (255) = happyShift action_55 +action_331 (27) = happyGoto action_64 +action_331 (117) = happyGoto action_368 +action_331 _ = happyFail (happyExpListPerState 331) + +action_332 _ = happyReduce_302 + +action_333 _ = happyReduce_427 + +action_334 _ = happyReduce_315 + +action_335 _ = happyReduce_351 + +action_336 (1) = happyReduce_374 +action_336 (194) = happyShift action_148 +action_336 (195) = happyReduce_374 +action_336 (196) = happyShift action_149 +action_336 (201) = happyReduce_374 +action_336 (202) = happyReduce_374 +action_336 (205) = happyReduce_374 +action_336 (206) = happyReduce_374 +action_336 (210) = happyReduce_374 +action_336 (213) = happyReduce_374 +action_336 (214) = happyShift action_150 +action_336 (219) = happyShift action_45 +action_336 (225) = happyReduce_374 +action_336 (230) = happyShift action_47 +action_336 (241) = happyShift action_48 +action_336 (242) = happyShift action_49 +action_336 (244) = happyShift action_50 +action_336 (245) = happyShift action_51 +action_336 (249) = happyReduce_374 +action_336 (250) = happyShift action_154 +action_336 (251) = happyShift action_112 +action_336 (252) = happyShift action_53 +action_336 (254) = happyShift action_54 +action_336 (255) = happyShift action_55 +action_336 (256) = happyShift action_115 +action_336 (257) = happyShift action_116 +action_336 (260) = happyShift action_117 +action_336 (262) = happyShift action_57 +action_336 (263) = happyShift action_58 +action_336 (264) = happyShift action_155 +action_336 (266) = happyReduce_374 +action_336 (27) = happyGoto action_133 +action_336 (30) = happyGoto action_134 +action_336 (33) = happyGoto action_135 +action_336 (36) = happyGoto action_136 +action_336 (37) = happyGoto action_137 +action_336 (40) = happyGoto action_138 +action_336 (48) = happyGoto action_367 +action_336 _ = happyReduce_374 + +action_337 _ = happyReduce_353 + +action_338 (210) = happyShift action_366 +action_338 (112) = happyGoto action_365 +action_338 _ = happyReduce_304 + +action_339 _ = happyReduce_227 + +action_340 (199) = happyReduce_431 +action_340 (213) = happyReduce_431 +action_340 _ = happyReduce_431 + +action_341 (199) = happyShift action_364 +action_341 _ = happyFail (happyExpListPerState 341) + +action_342 (213) = happyShift action_363 +action_342 _ = happyReduce_398 + +action_343 _ = happyReduce_334 + +action_344 (207) = happyShift action_361 +action_344 (209) = happyShift action_362 +action_344 _ = happyReduce_239 + +action_345 (197) = happyReduce_433 +action_345 (213) = happyReduce_433 +action_345 _ = happyReduce_433 + +action_346 (197) = happyShift action_360 +action_346 _ = happyFail (happyExpListPerState 346) + +action_347 (213) = happyShift action_359 +action_347 _ = happyReduce_399 + +action_348 _ = happyReduce_338 + +action_349 (195) = happyShift action_358 +action_349 _ = happyFail (happyExpListPerState 349) + +action_350 _ = happyReduce_377 + +action_351 (194) = happyShift action_40 +action_351 (196) = happyShift action_41 +action_351 (198) = happyShift action_42 +action_351 (214) = happyShift action_43 +action_351 (216) = happyShift action_44 +action_351 (219) = happyShift action_45 +action_351 (226) = happyShift action_46 +action_351 (230) = happyShift action_47 +action_351 (241) = happyShift action_48 +action_351 (242) = happyShift action_49 +action_351 (244) = happyShift action_50 +action_351 (245) = happyShift action_51 +action_351 (247) = happyShift action_52 +action_351 (252) = happyShift action_53 +action_351 (254) = happyShift action_54 +action_351 (255) = happyShift action_55 +action_351 (261) = happyShift action_56 +action_351 (262) = happyShift action_57 +action_351 (263) = happyShift action_58 +action_351 (264) = happyShift action_59 +action_351 (265) = happyShift action_60 +action_351 (27) = happyGoto action_25 +action_351 (30) = happyGoto action_26 +action_351 (37) = happyGoto action_27 +action_351 (38) = happyGoto action_28 +action_351 (39) = happyGoto action_29 +action_351 (41) = happyGoto action_30 +action_351 (87) = happyGoto action_357 +action_351 (88) = happyGoto action_35 +action_351 (128) = happyGoto action_36 +action_351 (130) = happyGoto action_37 +action_351 (132) = happyGoto action_38 +action_351 (162) = happyGoto action_39 +action_351 _ = happyFail (happyExpListPerState 351) + +action_352 (194) = happyShift action_148 +action_352 (196) = happyShift action_149 +action_352 (214) = happyShift action_150 +action_352 (216) = happyShift action_151 +action_352 (219) = happyShift action_45 +action_352 (227) = happyShift action_152 +action_352 (228) = happyShift action_153 +action_352 (230) = happyShift action_47 +action_352 (241) = happyShift action_48 +action_352 (242) = happyShift action_49 +action_352 (244) = happyShift action_50 +action_352 (245) = happyShift action_51 +action_352 (250) = happyShift action_154 +action_352 (251) = happyShift action_112 +action_352 (252) = happyShift action_53 +action_352 (254) = happyShift action_54 +action_352 (255) = happyShift action_55 +action_352 (256) = happyShift action_115 +action_352 (257) = happyShift action_116 +action_352 (260) = happyShift action_117 +action_352 (262) = happyShift action_57 +action_352 (263) = happyShift action_58 +action_352 (264) = happyShift action_155 +action_352 (27) = happyGoto action_133 +action_352 (30) = happyGoto action_134 +action_352 (33) = happyGoto action_135 +action_352 (36) = happyGoto action_136 +action_352 (37) = happyGoto action_137 +action_352 (40) = happyGoto action_138 +action_352 (42) = happyGoto action_356 +action_352 (43) = happyGoto action_140 +action_352 (44) = happyGoto action_141 +action_352 (45) = happyGoto action_142 +action_352 (46) = happyGoto action_143 +action_352 (47) = happyGoto action_144 +action_352 (48) = happyGoto action_145 +action_352 (54) = happyGoto action_146 +action_352 _ = happyFail (happyExpListPerState 352) + +action_353 _ = happyReduce_221 + +action_354 (194) = happyShift action_40 +action_354 (196) = happyShift action_41 +action_354 (198) = happyShift action_42 +action_354 (214) = happyShift action_43 +action_354 (219) = happyShift action_45 +action_354 (226) = happyShift action_46 +action_354 (230) = happyShift action_47 +action_354 (241) = happyShift action_48 +action_354 (242) = happyShift action_49 +action_354 (244) = happyShift action_50 +action_354 (245) = happyShift action_51 +action_354 (247) = happyShift action_52 +action_354 (252) = happyShift action_53 +action_354 (254) = happyShift action_54 +action_354 (255) = happyShift action_55 +action_354 (261) = happyShift action_56 +action_354 (262) = happyShift action_57 +action_354 (263) = happyShift action_58 +action_354 (264) = happyShift action_59 +action_354 (265) = happyShift action_60 +action_354 (27) = happyGoto action_25 +action_354 (30) = happyGoto action_26 +action_354 (37) = happyGoto action_27 +action_354 (38) = happyGoto action_28 +action_354 (39) = happyGoto action_29 +action_354 (41) = happyGoto action_30 +action_354 (88) = happyGoto action_355 +action_354 (128) = happyGoto action_36 +action_354 (130) = happyGoto action_37 +action_354 _ = happyFail (happyExpListPerState 354) + +action_355 _ = happyReduce_230 + +action_356 _ = happyReduce_223 + +action_357 _ = happyReduce_225 + +action_358 _ = happyReduce_238 + +action_359 (218) = happyShift action_230 +action_359 (219) = happyShift action_231 +action_359 (220) = happyShift action_232 +action_359 (221) = happyShift action_233 +action_359 (222) = happyShift action_234 +action_359 (223) = happyShift action_235 +action_359 (224) = happyShift action_236 +action_359 (225) = happyShift action_237 +action_359 (226) = happyShift action_238 +action_359 (227) = happyShift action_239 +action_359 (229) = happyShift action_240 +action_359 (230) = happyShift action_241 +action_359 (231) = happyShift action_242 +action_359 (232) = happyShift action_243 +action_359 (233) = happyShift action_244 +action_359 (234) = happyShift action_245 +action_359 (235) = happyShift action_246 +action_359 (236) = happyShift action_247 +action_359 (237) = happyShift action_248 +action_359 (238) = happyShift action_249 +action_359 (239) = happyShift action_250 +action_359 (240) = happyShift action_251 +action_359 (241) = happyShift action_252 +action_359 (242) = happyShift action_253 +action_359 (243) = happyShift action_254 +action_359 (244) = happyShift action_255 +action_359 (245) = happyShift action_256 +action_359 (246) = happyShift action_257 +action_359 (247) = happyShift action_258 +action_359 (248) = happyShift action_259 +action_359 (249) = happyShift action_260 +action_359 (252) = happyShift action_261 +action_359 (262) = happyShift action_262 +action_359 (263) = happyShift action_263 +action_359 (35) = happyGoto action_344 +action_359 (89) = happyGoto action_570 +action_359 _ = happyFail (happyExpListPerState 359) + +action_360 _ = happyReduce_339 + +action_361 (194) = happyShift action_40 +action_361 (196) = happyShift action_41 +action_361 (198) = happyShift action_42 +action_361 (214) = happyShift action_43 +action_361 (216) = happyShift action_44 +action_361 (219) = happyShift action_45 +action_361 (226) = happyShift action_46 +action_361 (230) = happyShift action_47 +action_361 (241) = happyShift action_48 +action_361 (242) = happyShift action_49 +action_361 (244) = happyShift action_50 +action_361 (245) = happyShift action_51 +action_361 (247) = happyShift action_52 +action_361 (252) = happyShift action_53 +action_361 (254) = happyShift action_54 +action_361 (255) = happyShift action_55 +action_361 (261) = happyShift action_56 +action_361 (262) = happyShift action_57 +action_361 (263) = happyShift action_58 +action_361 (264) = happyShift action_59 +action_361 (265) = happyShift action_60 +action_361 (27) = happyGoto action_25 +action_361 (30) = happyGoto action_26 +action_361 (37) = happyGoto action_27 +action_361 (38) = happyGoto action_28 +action_361 (39) = happyGoto action_29 +action_361 (41) = happyGoto action_30 +action_361 (85) = happyGoto action_569 +action_361 (86) = happyGoto action_33 +action_361 (87) = happyGoto action_34 +action_361 (88) = happyGoto action_35 +action_361 (128) = happyGoto action_36 +action_361 (130) = happyGoto action_37 +action_361 (132) = happyGoto action_38 +action_361 (162) = happyGoto action_39 +action_361 _ = happyFail (happyExpListPerState 361) + +action_362 (194) = happyShift action_40 +action_362 (196) = happyShift action_41 +action_362 (198) = happyShift action_42 +action_362 (214) = happyShift action_43 +action_362 (216) = happyShift action_44 +action_362 (219) = happyShift action_45 +action_362 (226) = happyShift action_46 +action_362 (230) = happyShift action_47 +action_362 (241) = happyShift action_48 +action_362 (242) = happyShift action_49 +action_362 (244) = happyShift action_50 +action_362 (245) = happyShift action_51 +action_362 (247) = happyShift action_52 +action_362 (252) = happyShift action_53 +action_362 (254) = happyShift action_54 +action_362 (255) = happyShift action_55 +action_362 (261) = happyShift action_56 +action_362 (262) = happyShift action_57 +action_362 (263) = happyShift action_58 +action_362 (264) = happyShift action_59 +action_362 (265) = happyShift action_60 +action_362 (27) = happyGoto action_25 +action_362 (30) = happyGoto action_26 +action_362 (37) = happyGoto action_27 +action_362 (38) = happyGoto action_28 +action_362 (39) = happyGoto action_29 +action_362 (41) = happyGoto action_30 +action_362 (85) = happyGoto action_568 +action_362 (86) = happyGoto action_33 +action_362 (87) = happyGoto action_34 +action_362 (88) = happyGoto action_35 +action_362 (128) = happyGoto action_36 +action_362 (130) = happyGoto action_37 +action_362 (132) = happyGoto action_38 +action_362 (162) = happyGoto action_39 +action_362 _ = happyFail (happyExpListPerState 362) + +action_363 (194) = happyShift action_40 +action_363 (196) = happyShift action_41 +action_363 (198) = happyShift action_42 +action_363 (214) = happyShift action_43 +action_363 (216) = happyShift action_44 +action_363 (219) = happyShift action_45 +action_363 (226) = happyShift action_46 +action_363 (230) = happyShift action_47 +action_363 (241) = happyShift action_48 +action_363 (242) = happyShift action_49 +action_363 (244) = happyShift action_50 +action_363 (245) = happyShift action_51 +action_363 (247) = happyShift action_52 +action_363 (252) = happyShift action_53 +action_363 (254) = happyShift action_54 +action_363 (255) = happyShift action_55 +action_363 (261) = happyShift action_56 +action_363 (262) = happyShift action_57 +action_363 (263) = happyShift action_58 +action_363 (264) = happyShift action_59 +action_363 (265) = happyShift action_60 +action_363 (27) = happyGoto action_25 +action_363 (30) = happyGoto action_26 +action_363 (37) = happyGoto action_27 +action_363 (38) = happyGoto action_28 +action_363 (39) = happyGoto action_29 +action_363 (41) = happyGoto action_30 +action_363 (85) = happyGoto action_567 +action_363 (86) = happyGoto action_33 +action_363 (87) = happyGoto action_34 +action_363 (88) = happyGoto action_35 +action_363 (128) = happyGoto action_36 +action_363 (130) = happyGoto action_37 +action_363 (132) = happyGoto action_38 +action_363 (162) = happyGoto action_39 +action_363 _ = happyFail (happyExpListPerState 363) + +action_364 _ = happyReduce_335 + +action_365 _ = happyReduce_303 + +action_366 (204) = happyShift action_566 +action_366 (219) = happyShift action_45 +action_366 (230) = happyShift action_47 +action_366 (241) = happyShift action_48 +action_366 (242) = happyShift action_49 +action_366 (244) = happyShift action_50 +action_366 (245) = happyShift action_51 +action_366 (252) = happyShift action_53 +action_366 (30) = happyGoto action_560 +action_366 (113) = happyGoto action_561 +action_366 (135) = happyGoto action_562 +action_366 (153) = happyGoto action_563 +action_366 (165) = happyGoto action_564 +action_366 (182) = happyGoto action_565 +action_366 _ = happyFail (happyExpListPerState 366) + +action_367 _ = happyReduce_428 + +action_368 (195) = happyShift action_371 +action_368 _ = happyFail (happyExpListPerState 368) + +action_369 (194) = happyShift action_331 +action_369 (254) = happyShift action_54 +action_369 (255) = happyShift action_55 +action_369 (27) = happyGoto action_64 +action_369 (117) = happyGoto action_559 +action_369 _ = happyFail (happyExpListPerState 369) + +action_370 _ = happyReduce_314 + +action_371 _ = happyReduce_316 + +action_372 _ = happyReduce_301 + +action_373 (205) = happyShift action_293 +action_373 (207) = happyShift action_295 +action_373 (211) = happyShift action_558 +action_373 (216) = happyShift action_296 +action_373 (258) = happyShift action_297 +action_373 (259) = happyShift action_298 +action_373 (31) = happyGoto action_557 +action_373 _ = happyFail (happyExpListPerState 373) + +action_374 _ = happyReduce_155 + +action_375 _ = happyReduce_161 + +action_376 (196) = happyShift action_554 +action_376 (207) = happyShift action_555 +action_376 (209) = happyShift action_556 +action_376 _ = happyReduce_192 + +action_377 (197) = happyReduce_423 +action_377 (213) = happyReduce_423 +action_377 _ = happyReduce_423 + +action_378 (197) = happyShift action_553 +action_378 _ = happyFail (happyExpListPerState 378) + +action_379 (213) = happyShift action_552 +action_379 _ = happyReduce_372 + +action_380 _ = happyReduce_172 + +action_381 (1) = happyReduce_417 +action_381 (194) = happyReduce_417 +action_381 (195) = happyReduce_417 +action_381 (196) = happyReduce_417 +action_381 (197) = happyReduce_417 +action_381 (198) = happyReduce_417 +action_381 (199) = happyReduce_417 +action_381 (201) = happyReduce_417 +action_381 (202) = happyReduce_417 +action_381 (205) = happyReduce_417 +action_381 (207) = happyReduce_417 +action_381 (208) = happyReduce_417 +action_381 (210) = happyReduce_417 +action_381 (211) = happyReduce_417 +action_381 (212) = happyReduce_417 +action_381 (213) = happyReduce_417 +action_381 (214) = happyReduce_417 +action_381 (215) = happyReduce_417 +action_381 (216) = happyReduce_417 +action_381 (217) = happyReduce_417 +action_381 (218) = happyReduce_417 +action_381 (219) = happyReduce_417 +action_381 (220) = happyReduce_417 +action_381 (224) = happyReduce_417 +action_381 (225) = happyReduce_417 +action_381 (226) = happyReduce_417 +action_381 (230) = happyReduce_417 +action_381 (232) = happyReduce_417 +action_381 (238) = happyReduce_417 +action_381 (241) = happyReduce_417 +action_381 (242) = happyReduce_417 +action_381 (243) = happyReduce_417 +action_381 (244) = happyReduce_417 +action_381 (245) = happyReduce_417 +action_381 (246) = happyReduce_417 +action_381 (247) = happyReduce_417 +action_381 (249) = happyReduce_417 +action_381 (251) = happyReduce_417 +action_381 (252) = happyReduce_417 +action_381 (253) = happyReduce_417 +action_381 (254) = happyReduce_417 +action_381 (255) = happyReduce_417 +action_381 (256) = happyReduce_417 +action_381 (257) = happyReduce_417 +action_381 (258) = happyReduce_417 +action_381 (259) = happyReduce_417 +action_381 (260) = happyReduce_417 +action_381 (261) = happyReduce_417 +action_381 (262) = happyReduce_417 +action_381 (263) = happyReduce_417 +action_381 (264) = happyReduce_417 +action_381 (265) = happyReduce_417 +action_381 (266) = happyReduce_417 +action_381 _ = happyReduce_417 + +action_382 _ = happyReduce_175 + +action_383 (212) = happyShift action_551 +action_383 _ = happyReduce_369 + +action_384 _ = happyReduce_165 + +action_385 _ = happyReduce_187 + +action_386 (218) = happyShift action_230 +action_386 (219) = happyShift action_231 +action_386 (220) = happyShift action_232 +action_386 (221) = happyShift action_233 +action_386 (222) = happyShift action_234 +action_386 (223) = happyShift action_235 +action_386 (224) = happyShift action_236 +action_386 (225) = happyShift action_237 +action_386 (226) = happyShift action_238 +action_386 (227) = happyShift action_239 +action_386 (229) = happyShift action_240 +action_386 (230) = happyShift action_241 +action_386 (231) = happyShift action_242 +action_386 (232) = happyShift action_243 +action_386 (233) = happyShift action_244 +action_386 (234) = happyShift action_245 +action_386 (235) = happyShift action_246 +action_386 (236) = happyShift action_247 +action_386 (237) = happyShift action_248 +action_386 (238) = happyShift action_249 +action_386 (239) = happyShift action_250 +action_386 (240) = happyShift action_251 +action_386 (241) = happyShift action_252 +action_386 (242) = happyShift action_253 +action_386 (243) = happyShift action_254 +action_386 (244) = happyShift action_255 +action_386 (245) = happyShift action_256 +action_386 (246) = happyShift action_257 +action_386 (247) = happyShift action_258 +action_386 (248) = happyShift action_259 +action_386 (249) = happyShift action_260 +action_386 (252) = happyShift action_261 +action_386 (262) = happyShift action_262 +action_386 (263) = happyShift action_263 +action_386 (35) = happyGoto action_315 +action_386 (66) = happyGoto action_550 +action_386 _ = happyFail (happyExpListPerState 386) + +action_387 _ = happyReduce_341 + +action_388 (194) = happyShift action_95 +action_388 (196) = happyShift action_96 +action_388 (198) = happyShift action_97 +action_388 (214) = happyShift action_98 +action_388 (215) = happyShift action_99 +action_388 (216) = happyShift action_100 +action_388 (218) = happyShift action_101 +action_388 (219) = happyShift action_102 +action_388 (220) = happyShift action_103 +action_388 (224) = happyShift action_104 +action_388 (226) = happyShift action_46 +action_388 (230) = happyShift action_105 +action_388 (232) = happyShift action_106 +action_388 (238) = happyShift action_107 +action_388 (241) = happyShift action_108 +action_388 (242) = happyShift action_109 +action_388 (244) = happyShift action_110 +action_388 (245) = happyShift action_111 +action_388 (247) = happyShift action_52 +action_388 (251) = happyShift action_112 +action_388 (252) = happyShift action_113 +action_388 (253) = happyShift action_114 +action_388 (254) = happyShift action_54 +action_388 (255) = happyShift action_55 +action_388 (256) = happyShift action_115 +action_388 (257) = happyShift action_116 +action_388 (260) = happyShift action_117 +action_388 (261) = happyShift action_56 +action_388 (262) = happyShift action_57 +action_388 (263) = happyShift action_58 +action_388 (264) = happyShift action_59 +action_388 (265) = happyShift action_60 +action_388 (27) = happyGoto action_74 +action_388 (29) = happyGoto action_75 +action_388 (33) = happyGoto action_76 +action_388 (36) = happyGoto action_77 +action_388 (37) = happyGoto action_78 +action_388 (38) = happyGoto action_79 +action_388 (39) = happyGoto action_80 +action_388 (41) = happyGoto action_81 +action_388 (56) = happyGoto action_549 +action_388 (57) = happyGoto action_122 +action_388 (58) = happyGoto action_83 +action_388 (60) = happyGoto action_84 +action_388 (61) = happyGoto action_85 +action_388 (62) = happyGoto action_86 +action_388 (63) = happyGoto action_87 +action_388 (64) = happyGoto action_88 +action_388 (65) = happyGoto action_89 +action_388 (75) = happyGoto action_90 +action_388 (76) = happyGoto action_91 +action_388 (129) = happyGoto action_93 +action_388 (131) = happyGoto action_94 +action_388 _ = happyFail (happyExpListPerState 388) + +action_389 (194) = happyShift action_95 +action_389 (196) = happyShift action_96 +action_389 (198) = happyShift action_97 +action_389 (214) = happyShift action_98 +action_389 (215) = happyShift action_99 +action_389 (216) = happyShift action_100 +action_389 (218) = happyShift action_101 +action_389 (219) = happyShift action_102 +action_389 (220) = happyShift action_103 +action_389 (224) = happyShift action_104 +action_389 (226) = happyShift action_46 +action_389 (230) = happyShift action_105 +action_389 (232) = happyShift action_106 +action_389 (238) = happyShift action_107 +action_389 (241) = happyShift action_108 +action_389 (242) = happyShift action_109 +action_389 (244) = happyShift action_110 +action_389 (245) = happyShift action_111 +action_389 (247) = happyShift action_52 +action_389 (251) = happyShift action_112 +action_389 (252) = happyShift action_113 +action_389 (253) = happyShift action_114 +action_389 (254) = happyShift action_54 +action_389 (255) = happyShift action_55 +action_389 (256) = happyShift action_115 +action_389 (257) = happyShift action_116 +action_389 (260) = happyShift action_117 +action_389 (261) = happyShift action_56 +action_389 (262) = happyShift action_57 +action_389 (263) = happyShift action_58 +action_389 (264) = happyShift action_59 +action_389 (265) = happyShift action_60 +action_389 (27) = happyGoto action_74 +action_389 (29) = happyGoto action_75 +action_389 (33) = happyGoto action_76 +action_389 (36) = happyGoto action_77 +action_389 (37) = happyGoto action_78 +action_389 (38) = happyGoto action_79 +action_389 (39) = happyGoto action_80 +action_389 (41) = happyGoto action_81 +action_389 (56) = happyGoto action_548 +action_389 (57) = happyGoto action_122 +action_389 (58) = happyGoto action_83 +action_389 (60) = happyGoto action_84 +action_389 (61) = happyGoto action_85 +action_389 (62) = happyGoto action_86 +action_389 (63) = happyGoto action_87 +action_389 (64) = happyGoto action_88 +action_389 (65) = happyGoto action_89 +action_389 (75) = happyGoto action_90 +action_389 (76) = happyGoto action_91 +action_389 (129) = happyGoto action_93 +action_389 (131) = happyGoto action_94 +action_389 _ = happyFail (happyExpListPerState 389) + +action_390 _ = happyReduce_337 + +action_391 (194) = happyShift action_95 +action_391 (196) = happyShift action_96 +action_391 (198) = happyShift action_97 +action_391 (214) = happyShift action_98 +action_391 (215) = happyShift action_99 +action_391 (216) = happyShift action_100 +action_391 (218) = happyShift action_101 +action_391 (219) = happyShift action_102 +action_391 (220) = happyShift action_103 +action_391 (224) = happyShift action_104 +action_391 (226) = happyShift action_46 +action_391 (230) = happyShift action_105 +action_391 (232) = happyShift action_106 +action_391 (238) = happyShift action_107 +action_391 (241) = happyShift action_108 +action_391 (242) = happyShift action_109 +action_391 (244) = happyShift action_110 +action_391 (245) = happyShift action_111 +action_391 (247) = happyShift action_52 +action_391 (251) = happyShift action_112 +action_391 (252) = happyShift action_113 +action_391 (253) = happyShift action_114 +action_391 (254) = happyShift action_54 +action_391 (255) = happyShift action_55 +action_391 (256) = happyShift action_115 +action_391 (257) = happyShift action_116 +action_391 (260) = happyShift action_117 +action_391 (261) = happyShift action_56 +action_391 (262) = happyShift action_57 +action_391 (263) = happyShift action_58 +action_391 (264) = happyShift action_59 +action_391 (265) = happyShift action_60 +action_391 (27) = happyGoto action_74 +action_391 (29) = happyGoto action_75 +action_391 (33) = happyGoto action_76 +action_391 (36) = happyGoto action_77 +action_391 (37) = happyGoto action_78 +action_391 (38) = happyGoto action_79 +action_391 (39) = happyGoto action_80 +action_391 (41) = happyGoto action_81 +action_391 (56) = happyGoto action_547 +action_391 (57) = happyGoto action_122 +action_391 (58) = happyGoto action_83 +action_391 (60) = happyGoto action_84 +action_391 (61) = happyGoto action_85 +action_391 (62) = happyGoto action_86 +action_391 (63) = happyGoto action_87 +action_391 (64) = happyGoto action_88 +action_391 (65) = happyGoto action_89 +action_391 (75) = happyGoto action_90 +action_391 (76) = happyGoto action_91 +action_391 (129) = happyGoto action_93 +action_391 (131) = happyGoto action_94 +action_391 _ = happyFail (happyExpListPerState 391) + +action_392 _ = happyReduce_209 + +action_393 (194) = happyShift action_95 +action_393 (196) = happyShift action_96 +action_393 (198) = happyShift action_97 +action_393 (214) = happyShift action_98 +action_393 (215) = happyShift action_99 +action_393 (216) = happyShift action_100 +action_393 (218) = happyShift action_101 +action_393 (219) = happyShift action_102 +action_393 (220) = happyShift action_103 +action_393 (224) = happyShift action_104 +action_393 (226) = happyShift action_46 +action_393 (230) = happyShift action_105 +action_393 (232) = happyShift action_106 +action_393 (238) = happyShift action_107 +action_393 (241) = happyShift action_108 +action_393 (242) = happyShift action_109 +action_393 (244) = happyShift action_110 +action_393 (245) = happyShift action_111 +action_393 (247) = happyShift action_52 +action_393 (251) = happyShift action_112 +action_393 (252) = happyShift action_113 +action_393 (253) = happyShift action_114 +action_393 (254) = happyShift action_54 +action_393 (255) = happyShift action_55 +action_393 (256) = happyShift action_115 +action_393 (257) = happyShift action_116 +action_393 (260) = happyShift action_117 +action_393 (261) = happyShift action_56 +action_393 (262) = happyShift action_57 +action_393 (263) = happyShift action_58 +action_393 (264) = happyShift action_59 +action_393 (265) = happyShift action_60 +action_393 (27) = happyGoto action_74 +action_393 (29) = happyGoto action_75 +action_393 (33) = happyGoto action_76 +action_393 (36) = happyGoto action_77 +action_393 (37) = happyGoto action_78 +action_393 (38) = happyGoto action_79 +action_393 (39) = happyGoto action_80 +action_393 (41) = happyGoto action_81 +action_393 (56) = happyGoto action_546 +action_393 (57) = happyGoto action_122 +action_393 (58) = happyGoto action_83 +action_393 (60) = happyGoto action_84 +action_393 (61) = happyGoto action_85 +action_393 (62) = happyGoto action_86 +action_393 (63) = happyGoto action_87 +action_393 (64) = happyGoto action_88 +action_393 (65) = happyGoto action_89 +action_393 (75) = happyGoto action_90 +action_393 (76) = happyGoto action_91 +action_393 (129) = happyGoto action_93 +action_393 (131) = happyGoto action_94 +action_393 _ = happyFail (happyExpListPerState 393) + +action_394 (200) = happyShift action_545 +action_394 _ = happyFail (happyExpListPerState 394) + +action_395 (194) = happyShift action_95 +action_395 (196) = happyShift action_96 +action_395 (198) = happyShift action_97 +action_395 (214) = happyShift action_98 +action_395 (215) = happyShift action_99 +action_395 (216) = happyShift action_100 +action_395 (218) = happyShift action_101 +action_395 (219) = happyShift action_102 +action_395 (220) = happyShift action_103 +action_395 (224) = happyShift action_104 +action_395 (226) = happyShift action_46 +action_395 (230) = happyShift action_105 +action_395 (232) = happyShift action_106 +action_395 (238) = happyShift action_107 +action_395 (241) = happyShift action_108 +action_395 (242) = happyShift action_109 +action_395 (244) = happyShift action_110 +action_395 (245) = happyShift action_111 +action_395 (247) = happyShift action_52 +action_395 (251) = happyShift action_112 +action_395 (252) = happyShift action_113 +action_395 (253) = happyShift action_114 +action_395 (254) = happyShift action_54 +action_395 (255) = happyShift action_55 +action_395 (256) = happyShift action_115 +action_395 (257) = happyShift action_116 +action_395 (260) = happyShift action_117 +action_395 (261) = happyShift action_56 +action_395 (262) = happyShift action_57 +action_395 (263) = happyShift action_58 +action_395 (264) = happyShift action_59 +action_395 (265) = happyShift action_60 +action_395 (27) = happyGoto action_74 +action_395 (29) = happyGoto action_75 +action_395 (33) = happyGoto action_76 +action_395 (36) = happyGoto action_77 +action_395 (37) = happyGoto action_78 +action_395 (38) = happyGoto action_79 +action_395 (39) = happyGoto action_80 +action_395 (41) = happyGoto action_81 +action_395 (56) = happyGoto action_544 +action_395 (57) = happyGoto action_122 +action_395 (58) = happyGoto action_83 +action_395 (60) = happyGoto action_84 +action_395 (61) = happyGoto action_85 +action_395 (62) = happyGoto action_86 +action_395 (63) = happyGoto action_87 +action_395 (64) = happyGoto action_88 +action_395 (65) = happyGoto action_89 +action_395 (75) = happyGoto action_90 +action_395 (76) = happyGoto action_91 +action_395 (129) = happyGoto action_93 +action_395 (131) = happyGoto action_94 +action_395 _ = happyFail (happyExpListPerState 395) + +action_396 (194) = happyShift action_40 +action_396 (196) = happyShift action_41 +action_396 (198) = happyShift action_42 +action_396 (205) = happyReduce_229 +action_396 (207) = happyReduce_229 +action_396 (208) = happyShift action_543 +action_396 (209) = happyShift action_433 +action_396 (210) = happyShift action_434 +action_396 (214) = happyShift action_43 +action_396 (216) = happyReduce_229 +action_396 (217) = happyShift action_354 +action_396 (219) = happyShift action_45 +action_396 (226) = happyShift action_46 +action_396 (230) = happyShift action_47 +action_396 (241) = happyShift action_48 +action_396 (242) = happyShift action_49 +action_396 (244) = happyShift action_50 +action_396 (245) = happyShift action_51 +action_396 (247) = happyShift action_52 +action_396 (252) = happyShift action_53 +action_396 (254) = happyShift action_54 +action_396 (255) = happyShift action_55 +action_396 (258) = happyReduce_229 +action_396 (259) = happyReduce_229 +action_396 (261) = happyShift action_56 +action_396 (262) = happyShift action_57 +action_396 (263) = happyShift action_58 +action_396 (264) = happyShift action_59 +action_396 (265) = happyShift action_60 +action_396 (27) = happyGoto action_25 +action_396 (30) = happyGoto action_26 +action_396 (37) = happyGoto action_27 +action_396 (38) = happyGoto action_28 +action_396 (39) = happyGoto action_29 +action_396 (41) = happyGoto action_30 +action_396 (71) = happyGoto action_541 +action_396 (72) = happyGoto action_429 +action_396 (80) = happyGoto action_430 +action_396 (88) = happyGoto action_35 +action_396 (128) = happyGoto action_36 +action_396 (130) = happyGoto action_37 +action_396 (132) = happyGoto action_542 +action_396 (134) = happyGoto action_431 +action_396 (162) = happyGoto action_39 +action_396 (164) = happyGoto action_432 +action_396 _ = happyReduce_229 + +action_397 _ = happyReduce_394 + +action_398 (205) = happyShift action_293 +action_398 (207) = happyShift action_295 +action_398 (209) = happyShift action_540 +action_398 (216) = happyShift action_296 +action_398 (258) = happyShift action_297 +action_398 (259) = happyShift action_298 +action_398 (31) = happyGoto action_351 +action_398 _ = happyFail (happyExpListPerState 398) + +action_399 (201) = happyShift action_539 +action_399 _ = happyFail (happyExpListPerState 399) + +action_400 (202) = happyShift action_538 +action_400 _ = happyReduce_359 + +action_401 _ = happyReduce_150 + +action_402 (1) = happyReduce_152 +action_402 (194) = happyReduce_152 +action_402 (195) = happyReduce_152 +action_402 (196) = happyReduce_152 +action_402 (197) = happyReduce_152 +action_402 (198) = happyReduce_152 +action_402 (199) = happyReduce_152 +action_402 (201) = happyReduce_152 +action_402 (202) = happyReduce_152 +action_402 (205) = happyReduce_152 +action_402 (207) = happyReduce_152 +action_402 (208) = happyReduce_152 +action_402 (210) = happyReduce_152 +action_402 (211) = happyShift action_326 +action_402 (213) = happyReduce_152 +action_402 (214) = happyReduce_152 +action_402 (215) = happyReduce_152 +action_402 (216) = happyReduce_152 +action_402 (217) = happyReduce_152 +action_402 (218) = happyReduce_152 +action_402 (219) = happyReduce_152 +action_402 (220) = happyReduce_152 +action_402 (224) = happyReduce_152 +action_402 (225) = happyReduce_152 +action_402 (226) = happyReduce_152 +action_402 (230) = happyReduce_152 +action_402 (232) = happyReduce_152 +action_402 (238) = happyReduce_152 +action_402 (241) = happyReduce_152 +action_402 (242) = happyReduce_152 +action_402 (243) = happyReduce_152 +action_402 (244) = happyReduce_152 +action_402 (245) = happyReduce_152 +action_402 (246) = happyReduce_152 +action_402 (247) = happyReduce_152 +action_402 (249) = happyReduce_152 +action_402 (251) = happyReduce_152 +action_402 (252) = happyReduce_152 +action_402 (253) = happyReduce_152 +action_402 (254) = happyReduce_152 +action_402 (255) = happyReduce_152 +action_402 (256) = happyReduce_152 +action_402 (257) = happyReduce_152 +action_402 (258) = happyReduce_152 +action_402 (259) = happyReduce_152 +action_402 (260) = happyReduce_152 +action_402 (261) = happyReduce_152 +action_402 (262) = happyReduce_152 +action_402 (263) = happyReduce_152 +action_402 (264) = happyReduce_152 +action_402 (265) = happyReduce_152 +action_402 (266) = happyReduce_152 +action_402 _ = happyReduce_152 + +action_403 (201) = happyShift action_537 +action_403 _ = happyFail (happyExpListPerState 403) + +action_404 (249) = happyShift action_536 +action_404 _ = happyFail (happyExpListPerState 404) + +action_405 (219) = happyShift action_45 +action_405 (221) = happyShift action_533 +action_405 (230) = happyShift action_47 +action_405 (239) = happyShift action_534 +action_405 (241) = happyShift action_48 +action_405 (242) = happyShift action_49 +action_405 (244) = happyShift action_50 +action_405 (245) = happyShift action_51 +action_405 (248) = happyShift action_535 +action_405 (251) = happyShift action_479 +action_405 (252) = happyShift action_53 +action_405 (254) = happyShift action_63 +action_405 (256) = happyShift action_480 +action_405 (28) = happyGoto action_527 +action_405 (30) = happyGoto action_528 +action_405 (34) = happyGoto action_529 +action_405 (98) = happyGoto action_530 +action_405 (151) = happyGoto action_531 +action_405 (180) = happyGoto action_532 +action_405 _ = happyFail (happyExpListPerState 405) + +action_406 _ = happyReduce_101 + +action_407 _ = happyReduce_106 + +action_408 _ = happyReduce_105 + +action_409 (1) = happyReduce_108 +action_409 (194) = happyReduce_108 +action_409 (195) = happyReduce_108 +action_409 (196) = happyReduce_108 +action_409 (197) = happyReduce_108 +action_409 (198) = happyReduce_108 +action_409 (199) = happyReduce_108 +action_409 (201) = happyReduce_108 +action_409 (202) = happyReduce_108 +action_409 (203) = happyReduce_108 +action_409 (204) = happyReduce_108 +action_409 (205) = happyReduce_108 +action_409 (206) = happyReduce_108 +action_409 (207) = happyReduce_108 +action_409 (208) = happyReduce_108 +action_409 (210) = happyReduce_108 +action_409 (211) = happyReduce_108 +action_409 (213) = happyReduce_108 +action_409 (214) = happyReduce_108 +action_409 (215) = happyReduce_108 +action_409 (216) = happyReduce_108 +action_409 (217) = happyReduce_108 +action_409 (218) = happyReduce_108 +action_409 (219) = happyReduce_108 +action_409 (220) = happyReduce_108 +action_409 (224) = happyReduce_108 +action_409 (225) = happyReduce_108 +action_409 (226) = happyReduce_108 +action_409 (230) = happyReduce_108 +action_409 (232) = happyReduce_108 +action_409 (238) = happyReduce_108 +action_409 (241) = happyReduce_108 +action_409 (242) = happyReduce_108 +action_409 (243) = happyReduce_108 +action_409 (244) = happyReduce_108 +action_409 (245) = happyReduce_108 +action_409 (246) = happyReduce_108 +action_409 (247) = happyReduce_108 +action_409 (249) = happyReduce_108 +action_409 (251) = happyReduce_108 +action_409 (252) = happyReduce_108 +action_409 (253) = happyReduce_108 +action_409 (254) = happyReduce_108 +action_409 (255) = happyReduce_108 +action_409 (256) = happyReduce_108 +action_409 (257) = happyReduce_108 +action_409 (258) = happyReduce_108 +action_409 (259) = happyReduce_108 +action_409 (260) = happyReduce_108 +action_409 (261) = happyReduce_108 +action_409 (262) = happyReduce_108 +action_409 (263) = happyReduce_108 +action_409 (264) = happyReduce_108 +action_409 (265) = happyReduce_108 +action_409 (266) = happyReduce_108 +action_409 _ = happyReduce_108 + +action_410 _ = happyReduce_140 + +action_411 (208) = happyShift action_526 +action_411 _ = happyFail (happyExpListPerState 411) + +action_412 (219) = happyShift action_45 +action_412 (230) = happyShift action_47 +action_412 (241) = happyShift action_48 +action_412 (242) = happyShift action_49 +action_412 (244) = happyShift action_50 +action_412 (245) = happyShift action_51 +action_412 (252) = happyShift action_53 +action_412 (30) = happyGoto action_525 +action_412 _ = happyFail (happyExpListPerState 412) + +action_413 _ = happyReduce_387 + +action_414 (194) = happyShift action_148 +action_414 (196) = happyShift action_149 +action_414 (214) = happyShift action_150 +action_414 (216) = happyShift action_151 +action_414 (219) = happyShift action_45 +action_414 (227) = happyShift action_152 +action_414 (228) = happyShift action_153 +action_414 (230) = happyShift action_47 +action_414 (241) = happyShift action_48 +action_414 (242) = happyShift action_49 +action_414 (244) = happyShift action_50 +action_414 (245) = happyShift action_51 +action_414 (250) = happyShift action_154 +action_414 (251) = happyShift action_112 +action_414 (252) = happyShift action_53 +action_414 (254) = happyShift action_54 +action_414 (255) = happyShift action_55 +action_414 (256) = happyShift action_115 +action_414 (257) = happyShift action_116 +action_414 (260) = happyShift action_117 +action_414 (262) = happyShift action_57 +action_414 (263) = happyShift action_58 +action_414 (264) = happyShift action_155 +action_414 (27) = happyGoto action_133 +action_414 (30) = happyGoto action_134 +action_414 (33) = happyGoto action_135 +action_414 (36) = happyGoto action_136 +action_414 (37) = happyGoto action_137 +action_414 (40) = happyGoto action_138 +action_414 (43) = happyGoto action_524 +action_414 (44) = happyGoto action_141 +action_414 (45) = happyGoto action_142 +action_414 (46) = happyGoto action_143 +action_414 (47) = happyGoto action_144 +action_414 (48) = happyGoto action_145 +action_414 (54) = happyGoto action_146 +action_414 _ = happyFail (happyExpListPerState 414) + +action_415 (197) = happyShift action_523 +action_415 _ = happyFail (happyExpListPerState 415) + +action_416 (195) = happyShift action_522 +action_416 _ = happyFail (happyExpListPerState 416) + +action_417 (208) = happyShift action_521 +action_417 _ = happyFail (happyExpListPerState 417) + +action_418 (195) = happyShift action_520 +action_418 _ = happyFail (happyExpListPerState 418) + +action_419 _ = happyReduce_122 + +action_420 (194) = happyShift action_148 +action_420 (196) = happyShift action_149 +action_420 (214) = happyShift action_150 +action_420 (216) = happyShift action_151 +action_420 (219) = happyShift action_45 +action_420 (227) = happyShift action_152 +action_420 (228) = happyShift action_153 +action_420 (230) = happyShift action_47 +action_420 (241) = happyShift action_48 +action_420 (242) = happyShift action_49 +action_420 (244) = happyShift action_50 +action_420 (245) = happyShift action_51 +action_420 (250) = happyShift action_154 +action_420 (251) = happyShift action_112 +action_420 (252) = happyShift action_53 +action_420 (254) = happyShift action_54 +action_420 (255) = happyShift action_55 +action_420 (256) = happyShift action_115 +action_420 (257) = happyShift action_116 +action_420 (260) = happyShift action_117 +action_420 (262) = happyShift action_57 +action_420 (263) = happyShift action_58 +action_420 (264) = happyShift action_155 +action_420 (27) = happyGoto action_133 +action_420 (30) = happyGoto action_134 +action_420 (33) = happyGoto action_135 +action_420 (36) = happyGoto action_136 +action_420 (37) = happyGoto action_137 +action_420 (40) = happyGoto action_138 +action_420 (42) = happyGoto action_519 +action_420 (43) = happyGoto action_140 +action_420 (44) = happyGoto action_141 +action_420 (45) = happyGoto action_142 +action_420 (46) = happyGoto action_143 +action_420 (47) = happyGoto action_144 +action_420 (48) = happyGoto action_145 +action_420 (54) = happyGoto action_146 +action_420 _ = happyFail (happyExpListPerState 420) + +action_421 _ = happyReduce_123 + +action_422 _ = happyReduce_135 + +action_423 (218) = happyShift action_230 +action_423 (219) = happyShift action_231 +action_423 (220) = happyShift action_232 +action_423 (221) = happyShift action_233 +action_423 (222) = happyShift action_234 +action_423 (223) = happyShift action_235 +action_423 (224) = happyShift action_236 +action_423 (225) = happyShift action_237 +action_423 (226) = happyShift action_238 +action_423 (227) = happyShift action_239 +action_423 (229) = happyShift action_240 +action_423 (230) = happyShift action_241 +action_423 (231) = happyShift action_242 +action_423 (232) = happyShift action_243 +action_423 (233) = happyShift action_244 +action_423 (234) = happyShift action_245 +action_423 (235) = happyShift action_246 +action_423 (236) = happyShift action_247 +action_423 (237) = happyShift action_248 +action_423 (238) = happyShift action_249 +action_423 (239) = happyShift action_250 +action_423 (240) = happyShift action_251 +action_423 (241) = happyShift action_252 +action_423 (242) = happyShift action_253 +action_423 (243) = happyShift action_254 +action_423 (244) = happyShift action_255 +action_423 (245) = happyShift action_256 +action_423 (246) = happyShift action_257 +action_423 (247) = happyShift action_258 +action_423 (248) = happyShift action_259 +action_423 (249) = happyShift action_260 +action_423 (252) = happyShift action_261 +action_423 (262) = happyShift action_262 +action_423 (263) = happyShift action_263 +action_423 (35) = happyGoto action_224 +action_423 (51) = happyGoto action_518 +action_423 _ = happyFail (happyExpListPerState 423) + +action_424 (194) = happyShift action_148 +action_424 (196) = happyShift action_149 +action_424 (214) = happyShift action_150 +action_424 (216) = happyShift action_151 +action_424 (219) = happyShift action_45 +action_424 (227) = happyShift action_152 +action_424 (228) = happyShift action_153 +action_424 (230) = happyShift action_47 +action_424 (241) = happyShift action_48 +action_424 (242) = happyShift action_49 +action_424 (244) = happyShift action_50 +action_424 (245) = happyShift action_51 +action_424 (250) = happyShift action_154 +action_424 (251) = happyShift action_112 +action_424 (252) = happyShift action_53 +action_424 (254) = happyShift action_54 +action_424 (255) = happyShift action_55 +action_424 (256) = happyShift action_115 +action_424 (257) = happyShift action_116 +action_424 (260) = happyShift action_117 +action_424 (262) = happyShift action_57 +action_424 (263) = happyShift action_58 +action_424 (264) = happyShift action_155 +action_424 (27) = happyGoto action_133 +action_424 (30) = happyGoto action_134 +action_424 (33) = happyGoto action_135 +action_424 (36) = happyGoto action_136 +action_424 (37) = happyGoto action_137 +action_424 (40) = happyGoto action_138 +action_424 (42) = happyGoto action_517 +action_424 (43) = happyGoto action_140 +action_424 (44) = happyGoto action_141 +action_424 (45) = happyGoto action_142 +action_424 (46) = happyGoto action_143 +action_424 (47) = happyGoto action_144 +action_424 (48) = happyGoto action_145 +action_424 (54) = happyGoto action_146 +action_424 _ = happyFail (happyExpListPerState 424) + +action_425 _ = happyReduce_121 + +action_426 (194) = happyShift action_148 +action_426 (196) = happyShift action_149 +action_426 (214) = happyShift action_150 +action_426 (216) = happyShift action_151 +action_426 (219) = happyShift action_45 +action_426 (227) = happyShift action_152 +action_426 (228) = happyShift action_153 +action_426 (230) = happyShift action_47 +action_426 (241) = happyShift action_48 +action_426 (242) = happyShift action_49 +action_426 (244) = happyShift action_50 +action_426 (245) = happyShift action_51 +action_426 (250) = happyShift action_154 +action_426 (251) = happyShift action_112 +action_426 (252) = happyShift action_53 +action_426 (254) = happyShift action_54 +action_426 (255) = happyShift action_55 +action_426 (256) = happyShift action_115 +action_426 (257) = happyShift action_116 +action_426 (260) = happyShift action_117 +action_426 (262) = happyShift action_57 +action_426 (263) = happyShift action_58 +action_426 (264) = happyShift action_155 +action_426 (27) = happyGoto action_133 +action_426 (30) = happyGoto action_134 +action_426 (33) = happyGoto action_135 +action_426 (36) = happyGoto action_136 +action_426 (37) = happyGoto action_137 +action_426 (40) = happyGoto action_138 +action_426 (42) = happyGoto action_516 +action_426 (43) = happyGoto action_140 +action_426 (44) = happyGoto action_141 +action_426 (45) = happyGoto action_142 +action_426 (46) = happyGoto action_143 +action_426 (47) = happyGoto action_144 +action_426 (48) = happyGoto action_145 +action_426 (54) = happyGoto action_146 +action_426 _ = happyFail (happyExpListPerState 426) + +action_427 _ = happyReduce_290 + +action_428 _ = happyReduce_291 + +action_429 _ = happyReduce_380 + +action_430 (209) = happyShift action_515 +action_430 _ = happyFail (happyExpListPerState 430) + +action_431 _ = happyReduce_203 + +action_432 (1) = happyReduce_344 +action_432 (201) = happyReduce_344 +action_432 (202) = happyReduce_344 +action_432 (210) = happyShift action_434 +action_432 (225) = happyReduce_344 +action_432 (266) = happyReduce_344 +action_432 (72) = happyGoto action_514 +action_432 (80) = happyGoto action_430 +action_432 _ = happyReduce_344 + +action_433 (194) = happyShift action_95 +action_433 (196) = happyShift action_96 +action_433 (198) = happyShift action_97 +action_433 (214) = happyShift action_98 +action_433 (215) = happyShift action_99 +action_433 (216) = happyShift action_100 +action_433 (218) = happyShift action_101 +action_433 (219) = happyShift action_102 +action_433 (220) = happyShift action_103 +action_433 (224) = happyShift action_104 +action_433 (226) = happyShift action_46 +action_433 (230) = happyShift action_105 +action_433 (232) = happyShift action_106 +action_433 (238) = happyShift action_107 +action_433 (241) = happyShift action_108 +action_433 (242) = happyShift action_109 +action_433 (244) = happyShift action_110 +action_433 (245) = happyShift action_111 +action_433 (247) = happyShift action_52 +action_433 (251) = happyShift action_112 +action_433 (252) = happyShift action_113 +action_433 (253) = happyShift action_114 +action_433 (254) = happyShift action_54 +action_433 (255) = happyShift action_55 +action_433 (256) = happyShift action_115 +action_433 (257) = happyShift action_116 +action_433 (260) = happyShift action_117 +action_433 (261) = happyShift action_56 +action_433 (262) = happyShift action_57 +action_433 (263) = happyShift action_58 +action_433 (264) = happyShift action_59 +action_433 (265) = happyShift action_60 +action_433 (27) = happyGoto action_74 +action_433 (29) = happyGoto action_75 +action_433 (33) = happyGoto action_76 +action_433 (36) = happyGoto action_77 +action_433 (37) = happyGoto action_78 +action_433 (38) = happyGoto action_79 +action_433 (39) = happyGoto action_80 +action_433 (41) = happyGoto action_81 +action_433 (55) = happyGoto action_512 +action_433 (56) = happyGoto action_513 +action_433 (57) = happyGoto action_122 +action_433 (58) = happyGoto action_83 +action_433 (60) = happyGoto action_84 +action_433 (61) = happyGoto action_85 +action_433 (62) = happyGoto action_86 +action_433 (63) = happyGoto action_87 +action_433 (64) = happyGoto action_88 +action_433 (65) = happyGoto action_89 +action_433 (75) = happyGoto action_90 +action_433 (76) = happyGoto action_91 +action_433 (129) = happyGoto action_93 +action_433 (131) = happyGoto action_94 +action_433 _ = happyFail (happyExpListPerState 433) + +action_434 _ = happyReduce_216 + +action_435 (194) = happyShift action_148 +action_435 (196) = happyShift action_149 +action_435 (214) = happyShift action_150 +action_435 (219) = happyShift action_45 +action_435 (230) = happyShift action_47 +action_435 (241) = happyShift action_48 +action_435 (242) = happyShift action_49 +action_435 (244) = happyShift action_50 +action_435 (245) = happyShift action_51 +action_435 (250) = happyShift action_154 +action_435 (251) = happyShift action_112 +action_435 (252) = happyShift action_53 +action_435 (254) = happyShift action_54 +action_435 (255) = happyShift action_55 +action_435 (256) = happyShift action_115 +action_435 (257) = happyShift action_116 +action_435 (260) = happyShift action_117 +action_435 (262) = happyShift action_57 +action_435 (263) = happyShift action_58 +action_435 (264) = happyShift action_155 +action_435 (27) = happyGoto action_133 +action_435 (30) = happyGoto action_134 +action_435 (33) = happyGoto action_135 +action_435 (36) = happyGoto action_136 +action_435 (37) = happyGoto action_137 +action_435 (40) = happyGoto action_138 +action_435 (48) = happyGoto action_333 +action_435 (139) = happyGoto action_511 +action_435 (160) = happyGoto action_335 +action_435 (189) = happyGoto action_336 +action_435 _ = happyReduce_350 + +action_436 (1) = happyReduce_405 +action_436 (201) = happyReduce_405 +action_436 (202) = happyReduce_405 +action_436 (210) = happyReduce_405 +action_436 (225) = happyReduce_405 +action_436 (266) = happyReduce_405 +action_436 _ = happyReduce_405 + +action_437 _ = happyReduce_278 + +action_438 (210) = happyShift action_510 +action_438 _ = happyReduce_363 + +action_439 _ = happyReduce_279 + +action_440 (194) = happyShift action_148 +action_440 (196) = happyShift action_149 +action_440 (214) = happyShift action_150 +action_440 (219) = happyShift action_45 +action_440 (230) = happyShift action_47 +action_440 (241) = happyShift action_48 +action_440 (242) = happyShift action_49 +action_440 (244) = happyShift action_50 +action_440 (245) = happyShift action_51 +action_440 (250) = happyShift action_154 +action_440 (251) = happyShift action_112 +action_440 (252) = happyShift action_53 +action_440 (254) = happyShift action_54 +action_440 (255) = happyShift action_55 +action_440 (256) = happyShift action_115 +action_440 (257) = happyShift action_116 +action_440 (260) = happyShift action_117 +action_440 (262) = happyShift action_57 +action_440 (263) = happyShift action_58 +action_440 (264) = happyShift action_155 +action_440 (27) = happyGoto action_133 +action_440 (30) = happyGoto action_134 +action_440 (33) = happyGoto action_135 +action_440 (36) = happyGoto action_136 +action_440 (37) = happyGoto action_137 +action_440 (40) = happyGoto action_138 +action_440 (48) = happyGoto action_509 +action_440 _ = happyFail (happyExpListPerState 440) + +action_441 (219) = happyShift action_45 +action_441 (230) = happyShift action_47 +action_441 (241) = happyShift action_48 +action_441 (242) = happyShift action_49 +action_441 (244) = happyShift action_50 +action_441 (245) = happyShift action_51 +action_441 (252) = happyShift action_53 +action_441 (30) = happyGoto action_505 +action_441 (114) = happyGoto action_506 +action_441 (143) = happyGoto action_507 +action_441 (169) = happyGoto action_508 +action_441 _ = happyFail (happyExpListPerState 441) + +action_442 (219) = happyShift action_45 +action_442 (230) = happyShift action_47 +action_442 (241) = happyShift action_48 +action_442 (242) = happyShift action_49 +action_442 (244) = happyShift action_50 +action_442 (245) = happyShift action_51 +action_442 (252) = happyShift action_53 +action_442 (30) = happyGoto action_501 +action_442 (118) = happyGoto action_502 +action_442 (144) = happyGoto action_503 +action_442 (170) = happyGoto action_504 +action_442 _ = happyFail (happyExpListPerState 442) + +action_443 (219) = happyShift action_500 +action_443 _ = happyFail (happyExpListPerState 443) + +action_444 (219) = happyShift action_499 +action_444 _ = happyFail (happyExpListPerState 444) + +action_445 (254) = happyShift action_54 +action_445 (255) = happyShift action_55 +action_445 (27) = happyGoto action_498 +action_445 _ = happyFail (happyExpListPerState 445) + +action_446 _ = happyReduce_143 + +action_447 _ = happyReduce_429 + +action_448 _ = happyReduce_296 + +action_449 _ = happyReduce_355 + +action_450 (1) = happyReduce_375 +action_450 (194) = happyShift action_451 +action_450 (201) = happyReduce_375 +action_450 (202) = happyReduce_375 +action_450 (209) = happyReduce_375 +action_450 (219) = happyShift action_45 +action_450 (225) = happyReduce_375 +action_450 (230) = happyShift action_47 +action_450 (241) = happyShift action_48 +action_450 (242) = happyShift action_49 +action_450 (244) = happyShift action_50 +action_450 (245) = happyShift action_51 +action_450 (252) = happyShift action_53 +action_450 (266) = happyReduce_375 +action_450 (30) = happyGoto action_446 +action_450 (53) = happyGoto action_497 +action_450 _ = happyReduce_375 + +action_451 (219) = happyShift action_45 +action_451 (230) = happyShift action_47 +action_451 (241) = happyShift action_48 +action_451 (242) = happyShift action_49 +action_451 (244) = happyShift action_50 +action_451 (245) = happyShift action_51 +action_451 (252) = happyShift action_53 +action_451 (30) = happyGoto action_496 +action_451 _ = happyFail (happyExpListPerState 451) + +action_452 (194) = happyShift action_148 +action_452 (196) = happyShift action_149 +action_452 (214) = happyShift action_150 +action_452 (216) = happyShift action_151 +action_452 (219) = happyShift action_45 +action_452 (227) = happyShift action_152 +action_452 (228) = happyShift action_153 +action_452 (230) = happyShift action_47 +action_452 (241) = happyShift action_48 +action_452 (242) = happyShift action_49 +action_452 (244) = happyShift action_50 +action_452 (245) = happyShift action_51 +action_452 (250) = happyShift action_154 +action_452 (251) = happyShift action_112 +action_452 (252) = happyShift action_53 +action_452 (254) = happyShift action_54 +action_452 (255) = happyShift action_55 +action_452 (256) = happyShift action_115 +action_452 (257) = happyShift action_116 +action_452 (260) = happyShift action_117 +action_452 (262) = happyShift action_57 +action_452 (263) = happyShift action_58 +action_452 (264) = happyShift action_155 +action_452 (27) = happyGoto action_133 +action_452 (30) = happyGoto action_134 +action_452 (33) = happyGoto action_135 +action_452 (36) = happyGoto action_136 +action_452 (37) = happyGoto action_137 +action_452 (40) = happyGoto action_138 +action_452 (42) = happyGoto action_495 +action_452 (43) = happyGoto action_140 +action_452 (44) = happyGoto action_141 +action_452 (45) = happyGoto action_142 +action_452 (46) = happyGoto action_143 +action_452 (47) = happyGoto action_144 +action_452 (48) = happyGoto action_145 +action_452 (54) = happyGoto action_146 +action_452 _ = happyFail (happyExpListPerState 452) + +action_453 _ = happyReduce_289 + +action_454 (208) = happyShift action_494 +action_454 _ = happyFail (happyExpListPerState 454) + +action_455 (254) = happyShift action_63 +action_455 (28) = happyGoto action_493 +action_455 _ = happyFail (happyExpListPerState 455) + +action_456 (254) = happyShift action_54 +action_456 (255) = happyShift action_55 +action_456 (27) = happyGoto action_492 +action_456 _ = happyFail (happyExpListPerState 456) + +action_457 (194) = happyShift action_68 +action_457 (254) = happyShift action_54 +action_457 (255) = happyShift action_55 +action_457 (27) = happyGoto action_490 +action_457 (116) = happyGoto action_491 +action_457 (117) = happyGoto action_67 +action_457 _ = happyFail (happyExpListPerState 457) + +action_458 (206) = happyReduce_315 +action_458 _ = happyReduce_310 + +action_459 _ = happyReduce_298 + +action_460 (194) = happyShift action_148 +action_460 (196) = happyShift action_149 +action_460 (214) = happyShift action_150 +action_460 (216) = happyShift action_151 +action_460 (219) = happyShift action_45 +action_460 (227) = happyShift action_152 +action_460 (228) = happyShift action_153 +action_460 (230) = happyShift action_47 +action_460 (241) = happyShift action_48 +action_460 (242) = happyShift action_49 +action_460 (244) = happyShift action_50 +action_460 (245) = happyShift action_51 +action_460 (250) = happyShift action_154 +action_460 (251) = happyShift action_112 +action_460 (252) = happyShift action_53 +action_460 (254) = happyShift action_54 +action_460 (255) = happyShift action_55 +action_460 (256) = happyShift action_115 +action_460 (257) = happyShift action_116 +action_460 (260) = happyShift action_117 +action_460 (262) = happyShift action_57 +action_460 (263) = happyShift action_58 +action_460 (264) = happyShift action_155 +action_460 (27) = happyGoto action_133 +action_460 (30) = happyGoto action_134 +action_460 (33) = happyGoto action_135 +action_460 (36) = happyGoto action_136 +action_460 (37) = happyGoto action_137 +action_460 (40) = happyGoto action_138 +action_460 (42) = happyGoto action_489 +action_460 (43) = happyGoto action_140 +action_460 (44) = happyGoto action_141 +action_460 (45) = happyGoto action_142 +action_460 (46) = happyGoto action_143 +action_460 (47) = happyGoto action_144 +action_460 (48) = happyGoto action_145 +action_460 (54) = happyGoto action_146 +action_460 _ = happyFail (happyExpListPerState 460) + +action_461 (241) = happyShift action_486 +action_461 (242) = happyShift action_487 +action_461 (244) = happyShift action_488 +action_461 (121) = happyGoto action_483 +action_461 (136) = happyGoto action_484 +action_461 (166) = happyGoto action_485 +action_461 _ = happyFail (happyExpListPerState 461) + +action_462 _ = happyReduce_297 + +action_463 (194) = happyShift action_148 +action_463 (196) = happyShift action_149 +action_463 (214) = happyShift action_150 +action_463 (216) = happyShift action_151 +action_463 (219) = happyShift action_45 +action_463 (227) = happyShift action_152 +action_463 (228) = happyShift action_153 +action_463 (230) = happyShift action_47 +action_463 (241) = happyShift action_48 +action_463 (242) = happyShift action_49 +action_463 (244) = happyShift action_50 +action_463 (245) = happyShift action_51 +action_463 (250) = happyShift action_154 +action_463 (251) = happyShift action_112 +action_463 (252) = happyShift action_53 +action_463 (254) = happyShift action_54 +action_463 (255) = happyShift action_55 +action_463 (256) = happyShift action_115 +action_463 (257) = happyShift action_116 +action_463 (260) = happyShift action_117 +action_463 (262) = happyShift action_57 +action_463 (263) = happyShift action_58 +action_463 (264) = happyShift action_155 +action_463 (27) = happyGoto action_133 +action_463 (30) = happyGoto action_134 +action_463 (33) = happyGoto action_135 +action_463 (36) = happyGoto action_136 +action_463 (37) = happyGoto action_137 +action_463 (40) = happyGoto action_138 +action_463 (42) = happyGoto action_482 +action_463 (43) = happyGoto action_140 +action_463 (44) = happyGoto action_141 +action_463 (45) = happyGoto action_142 +action_463 (46) = happyGoto action_143 +action_463 (47) = happyGoto action_144 +action_463 (48) = happyGoto action_145 +action_463 (54) = happyGoto action_146 +action_463 _ = happyFail (happyExpListPerState 463) + +action_464 (219) = happyShift action_481 +action_464 _ = happyReduce_266 + +action_465 (219) = happyShift action_45 +action_465 (221) = happyShift action_477 +action_465 (230) = happyShift action_47 +action_465 (241) = happyShift action_48 +action_465 (242) = happyShift action_49 +action_465 (244) = happyShift action_50 +action_465 (245) = happyShift action_51 +action_465 (248) = happyShift action_478 +action_465 (251) = happyShift action_479 +action_465 (252) = happyShift action_53 +action_465 (254) = happyShift action_63 +action_465 (256) = happyShift action_480 +action_465 (28) = happyGoto action_471 +action_465 (30) = happyGoto action_472 +action_465 (34) = happyGoto action_473 +action_465 (102) = happyGoto action_474 +action_465 (154) = happyGoto action_475 +action_465 (183) = happyGoto action_476 +action_465 _ = happyFail (happyExpListPerState 465) + +action_466 (194) = happyShift action_470 +action_466 _ = happyFail (happyExpListPerState 466) + +action_467 _ = happyReduce_397 + +action_468 _ = happyReduce_253 + +action_469 _ = happyReduce_408 + +action_470 (219) = happyShift action_45 +action_470 (221) = happyShift action_477 +action_470 (230) = happyShift action_47 +action_470 (241) = happyShift action_48 +action_470 (242) = happyShift action_49 +action_470 (244) = happyShift action_50 +action_470 (245) = happyShift action_51 +action_470 (248) = happyShift action_478 +action_470 (251) = happyShift action_479 +action_470 (252) = happyShift action_53 +action_470 (254) = happyShift action_63 +action_470 (256) = happyShift action_480 +action_470 (28) = happyGoto action_471 +action_470 (30) = happyGoto action_472 +action_470 (34) = happyGoto action_473 +action_470 (102) = happyGoto action_474 +action_470 (154) = happyGoto action_636 +action_470 (183) = happyGoto action_476 +action_470 _ = happyFail (happyExpListPerState 470) + +action_471 (194) = happyShift action_604 +action_471 (251) = happyShift action_605 +action_471 (99) = happyGoto action_635 +action_471 _ = happyReduce_273 + +action_472 _ = happyReduce_271 + +action_473 _ = happyReduce_272 + +action_474 (195) = happyReduce_415 +action_474 (213) = happyReduce_415 +action_474 _ = happyReduce_415 + +action_475 (195) = happyShift action_634 +action_475 _ = happyFail (happyExpListPerState 475) + +action_476 (213) = happyShift action_633 +action_476 _ = happyReduce_368 + +action_477 (254) = happyShift action_63 +action_477 (28) = happyGoto action_632 +action_477 _ = happyFail (happyExpListPerState 477) + +action_478 (251) = happyShift action_479 +action_478 (256) = happyShift action_480 +action_478 (34) = happyGoto action_631 +action_478 _ = happyFail (happyExpListPerState 478) + +action_479 _ = happyReduce_56 + +action_480 _ = happyReduce_55 + +action_481 (254) = happyShift action_24 +action_481 (255) = happyShift action_132 +action_481 (26) = happyGoto action_630 +action_481 _ = happyFail (happyExpListPerState 481) + +action_482 _ = happyReduce_287 + +action_483 _ = happyReduce_384 + +action_484 _ = happyReduce_295 + +action_485 (1) = happyReduce_346 +action_485 (201) = happyReduce_346 +action_485 (202) = happyReduce_346 +action_485 (225) = happyReduce_346 +action_485 (241) = happyShift action_486 +action_485 (242) = happyShift action_487 +action_485 (244) = happyShift action_488 +action_485 (266) = happyReduce_346 +action_485 (121) = happyGoto action_629 +action_485 _ = happyReduce_346 + +action_486 _ = happyReduce_325 + +action_487 _ = happyReduce_327 + +action_488 _ = happyReduce_326 + +action_489 _ = happyReduce_286 + +action_490 (194) = happyShift action_148 +action_490 (196) = happyShift action_149 +action_490 (214) = happyShift action_150 +action_490 (219) = happyShift action_45 +action_490 (230) = happyShift action_47 +action_490 (241) = happyShift action_48 +action_490 (242) = happyShift action_49 +action_490 (244) = happyShift action_50 +action_490 (245) = happyShift action_51 +action_490 (250) = happyShift action_154 +action_490 (251) = happyShift action_112 +action_490 (252) = happyShift action_53 +action_490 (254) = happyShift action_54 +action_490 (255) = happyShift action_55 +action_490 (256) = happyShift action_115 +action_490 (257) = happyShift action_116 +action_490 (260) = happyShift action_117 +action_490 (262) = happyShift action_57 +action_490 (263) = happyShift action_58 +action_490 (264) = happyShift action_155 +action_490 (27) = happyGoto action_133 +action_490 (30) = happyGoto action_134 +action_490 (33) = happyGoto action_135 +action_490 (36) = happyGoto action_136 +action_490 (37) = happyGoto action_137 +action_490 (40) = happyGoto action_138 +action_490 (48) = happyGoto action_333 +action_490 (139) = happyGoto action_628 +action_490 (160) = happyGoto action_335 +action_490 (189) = happyGoto action_336 +action_490 _ = happyReduce_350 + +action_491 (206) = happyShift action_627 +action_491 _ = happyFail (happyExpListPerState 491) + +action_492 (194) = happyShift action_148 +action_492 (196) = happyShift action_149 +action_492 (214) = happyShift action_150 +action_492 (219) = happyShift action_45 +action_492 (230) = happyShift action_47 +action_492 (241) = happyShift action_48 +action_492 (242) = happyShift action_49 +action_492 (244) = happyShift action_50 +action_492 (245) = happyShift action_51 +action_492 (250) = happyShift action_154 +action_492 (251) = happyShift action_112 +action_492 (252) = happyShift action_53 +action_492 (254) = happyShift action_54 +action_492 (255) = happyShift action_55 +action_492 (256) = happyShift action_115 +action_492 (257) = happyShift action_116 +action_492 (260) = happyShift action_117 +action_492 (262) = happyShift action_57 +action_492 (263) = happyShift action_58 +action_492 (264) = happyShift action_155 +action_492 (27) = happyGoto action_133 +action_492 (30) = happyGoto action_134 +action_492 (33) = happyGoto action_135 +action_492 (36) = happyGoto action_136 +action_492 (37) = happyGoto action_137 +action_492 (40) = happyGoto action_138 +action_492 (48) = happyGoto action_333 +action_492 (139) = happyGoto action_626 +action_492 (160) = happyGoto action_335 +action_492 (189) = happyGoto action_336 +action_492 _ = happyReduce_350 + +action_493 (208) = happyShift action_625 +action_493 _ = happyFail (happyExpListPerState 493) + +action_494 (194) = happyShift action_148 +action_494 (196) = happyShift action_149 +action_494 (214) = happyShift action_150 +action_494 (216) = happyShift action_151 +action_494 (219) = happyShift action_45 +action_494 (227) = happyShift action_152 +action_494 (228) = happyShift action_153 +action_494 (230) = happyShift action_47 +action_494 (241) = happyShift action_48 +action_494 (242) = happyShift action_49 +action_494 (244) = happyShift action_50 +action_494 (245) = happyShift action_51 +action_494 (250) = happyShift action_154 +action_494 (251) = happyShift action_112 +action_494 (252) = happyShift action_53 +action_494 (254) = happyShift action_54 +action_494 (255) = happyShift action_55 +action_494 (256) = happyShift action_115 +action_494 (257) = happyShift action_116 +action_494 (260) = happyShift action_117 +action_494 (262) = happyShift action_57 +action_494 (263) = happyShift action_58 +action_494 (264) = happyShift action_155 +action_494 (27) = happyGoto action_133 +action_494 (30) = happyGoto action_134 +action_494 (33) = happyGoto action_135 +action_494 (36) = happyGoto action_136 +action_494 (37) = happyGoto action_137 +action_494 (40) = happyGoto action_138 +action_494 (42) = happyGoto action_624 +action_494 (43) = happyGoto action_140 +action_494 (44) = happyGoto action_141 +action_494 (45) = happyGoto action_142 +action_494 (46) = happyGoto action_143 +action_494 (47) = happyGoto action_144 +action_494 (48) = happyGoto action_145 +action_494 (54) = happyGoto action_146 +action_494 _ = happyFail (happyExpListPerState 494) + +action_495 _ = happyReduce_285 + +action_496 (208) = happyShift action_623 +action_496 _ = happyFail (happyExpListPerState 496) + +action_497 _ = happyReduce_430 + +action_498 (219) = happyShift action_622 +action_498 _ = happyFail (happyExpListPerState 498) + +action_499 (205) = happyShift action_192 +action_499 (207) = happyShift action_193 +action_499 (216) = happyShift action_194 +action_499 (258) = happyShift action_195 +action_499 (32) = happyGoto action_621 +action_499 _ = happyFail (happyExpListPerState 499) + +action_500 (205) = happyShift action_192 +action_500 (207) = happyShift action_193 +action_500 (216) = happyShift action_194 +action_500 (258) = happyShift action_195 +action_500 (32) = happyGoto action_620 +action_500 _ = happyFail (happyExpListPerState 500) + +action_501 (194) = happyShift action_40 +action_501 (196) = happyShift action_41 +action_501 (198) = happyShift action_42 +action_501 (208) = happyShift action_619 +action_501 (214) = happyShift action_43 +action_501 (219) = happyShift action_45 +action_501 (226) = happyShift action_46 +action_501 (230) = happyShift action_47 +action_501 (241) = happyShift action_48 +action_501 (242) = happyShift action_49 +action_501 (244) = happyShift action_50 +action_501 (245) = happyShift action_51 +action_501 (247) = happyShift action_52 +action_501 (252) = happyShift action_53 +action_501 (254) = happyShift action_54 +action_501 (255) = happyShift action_55 +action_501 (261) = happyShift action_56 +action_501 (262) = happyShift action_57 +action_501 (263) = happyShift action_58 +action_501 (264) = happyShift action_59 +action_501 (265) = happyShift action_60 +action_501 (27) = happyGoto action_25 +action_501 (30) = happyGoto action_26 +action_501 (37) = happyGoto action_27 +action_501 (38) = happyGoto action_28 +action_501 (39) = happyGoto action_29 +action_501 (41) = happyGoto action_30 +action_501 (88) = happyGoto action_35 +action_501 (128) = happyGoto action_36 +action_501 (130) = happyGoto action_37 +action_501 (132) = happyGoto action_220 +action_501 (138) = happyGoto action_618 +action_501 (162) = happyGoto action_39 +action_501 _ = happyReduce_348 + +action_502 _ = happyReduce_392 + +action_503 (201) = happyShift action_617 +action_503 _ = happyFail (happyExpListPerState 503) + +action_504 (202) = happyShift action_616 +action_504 _ = happyReduce_358 + +action_505 (208) = happyShift action_615 +action_505 _ = happyFail (happyExpListPerState 505) + +action_506 _ = happyReduce_390 + +action_507 (201) = happyShift action_614 +action_507 _ = happyFail (happyExpListPerState 507) + +action_508 (202) = happyShift action_613 +action_508 _ = happyReduce_357 + +action_509 _ = happyReduce_280 + +action_510 (254) = happyShift action_63 +action_510 (28) = happyGoto action_435 +action_510 (107) = happyGoto action_612 +action_510 _ = happyFail (happyExpListPerState 510) + +action_511 _ = happyReduce_299 + +action_512 _ = happyReduce_202 + +action_513 (1) = happyReduce_147 +action_513 (194) = happyReduce_147 +action_513 (195) = happyReduce_147 +action_513 (196) = happyReduce_147 +action_513 (197) = happyReduce_147 +action_513 (198) = happyReduce_147 +action_513 (199) = happyReduce_147 +action_513 (201) = happyReduce_147 +action_513 (202) = happyReduce_147 +action_513 (205) = happyReduce_147 +action_513 (207) = happyReduce_147 +action_513 (208) = happyReduce_147 +action_513 (210) = happyReduce_147 +action_513 (211) = happyReduce_147 +action_513 (213) = happyReduce_147 +action_513 (214) = happyReduce_147 +action_513 (215) = happyReduce_147 +action_513 (216) = happyReduce_147 +action_513 (217) = happyReduce_147 +action_513 (218) = happyReduce_147 +action_513 (219) = happyReduce_147 +action_513 (220) = happyReduce_147 +action_513 (224) = happyReduce_147 +action_513 (225) = happyReduce_147 +action_513 (226) = happyReduce_147 +action_513 (230) = happyReduce_147 +action_513 (232) = happyReduce_147 +action_513 (238) = happyReduce_147 +action_513 (241) = happyReduce_147 +action_513 (242) = happyReduce_147 +action_513 (243) = happyReduce_147 +action_513 (244) = happyReduce_147 +action_513 (245) = happyReduce_147 +action_513 (246) = happyReduce_147 +action_513 (247) = happyReduce_147 +action_513 (249) = happyShift action_611 +action_513 (251) = happyReduce_147 +action_513 (252) = happyReduce_147 +action_513 (253) = happyReduce_147 +action_513 (254) = happyReduce_147 +action_513 (255) = happyReduce_147 +action_513 (256) = happyReduce_147 +action_513 (257) = happyReduce_147 +action_513 (258) = happyReduce_147 +action_513 (259) = happyReduce_147 +action_513 (260) = happyReduce_147 +action_513 (261) = happyReduce_147 +action_513 (262) = happyReduce_147 +action_513 (263) = happyReduce_147 +action_513 (264) = happyReduce_147 +action_513 (265) = happyReduce_147 +action_513 (266) = happyReduce_147 +action_513 _ = happyReduce_147 + +action_514 _ = happyReduce_381 + +action_515 (194) = happyShift action_95 +action_515 (196) = happyShift action_96 +action_515 (198) = happyShift action_97 +action_515 (214) = happyShift action_98 +action_515 (215) = happyShift action_99 +action_515 (216) = happyShift action_100 +action_515 (218) = happyShift action_101 +action_515 (219) = happyShift action_102 +action_515 (220) = happyShift action_103 +action_515 (224) = happyShift action_104 +action_515 (226) = happyShift action_46 +action_515 (230) = happyShift action_105 +action_515 (232) = happyShift action_106 +action_515 (238) = happyShift action_107 +action_515 (241) = happyShift action_108 +action_515 (242) = happyShift action_109 +action_515 (244) = happyShift action_110 +action_515 (245) = happyShift action_111 +action_515 (247) = happyShift action_52 +action_515 (251) = happyShift action_112 +action_515 (252) = happyShift action_113 +action_515 (253) = happyShift action_114 +action_515 (254) = happyShift action_54 +action_515 (255) = happyShift action_55 +action_515 (256) = happyShift action_115 +action_515 (257) = happyShift action_116 +action_515 (260) = happyShift action_117 +action_515 (261) = happyShift action_56 +action_515 (262) = happyShift action_57 +action_515 (263) = happyShift action_58 +action_515 (264) = happyShift action_59 +action_515 (265) = happyShift action_60 +action_515 (27) = happyGoto action_74 +action_515 (29) = happyGoto action_75 +action_515 (33) = happyGoto action_76 +action_515 (36) = happyGoto action_77 +action_515 (37) = happyGoto action_78 +action_515 (38) = happyGoto action_79 +action_515 (39) = happyGoto action_80 +action_515 (41) = happyGoto action_81 +action_515 (55) = happyGoto action_610 +action_515 (56) = happyGoto action_513 +action_515 (57) = happyGoto action_122 +action_515 (58) = happyGoto action_83 +action_515 (60) = happyGoto action_84 +action_515 (61) = happyGoto action_85 +action_515 (62) = happyGoto action_86 +action_515 (63) = happyGoto action_87 +action_515 (64) = happyGoto action_88 +action_515 (65) = happyGoto action_89 +action_515 (75) = happyGoto action_90 +action_515 (76) = happyGoto action_91 +action_515 (129) = happyGoto action_93 +action_515 (131) = happyGoto action_94 +action_515 _ = happyFail (happyExpListPerState 515) + +action_516 _ = happyReduce_138 + +action_517 _ = happyReduce_137 + +action_518 _ = happyReduce_426 + +action_519 (195) = happyShift action_609 +action_519 _ = happyFail (happyExpListPerState 519) + +action_520 (208) = happyReduce_131 +action_520 _ = happyReduce_122 + +action_521 (194) = happyShift action_148 +action_521 (196) = happyShift action_149 +action_521 (214) = happyShift action_150 +action_521 (216) = happyShift action_151 +action_521 (219) = happyShift action_45 +action_521 (227) = happyShift action_152 +action_521 (228) = happyShift action_153 +action_521 (230) = happyShift action_47 +action_521 (241) = happyShift action_48 +action_521 (242) = happyShift action_49 +action_521 (244) = happyShift action_50 +action_521 (245) = happyShift action_51 +action_521 (250) = happyShift action_154 +action_521 (251) = happyShift action_112 +action_521 (252) = happyShift action_53 +action_521 (254) = happyShift action_54 +action_521 (255) = happyShift action_55 +action_521 (256) = happyShift action_115 +action_521 (257) = happyShift action_116 +action_521 (260) = happyShift action_117 +action_521 (262) = happyShift action_57 +action_521 (263) = happyShift action_58 +action_521 (264) = happyShift action_155 +action_521 (27) = happyGoto action_133 +action_521 (30) = happyGoto action_134 +action_521 (33) = happyGoto action_135 +action_521 (36) = happyGoto action_136 +action_521 (37) = happyGoto action_137 +action_521 (40) = happyGoto action_138 +action_521 (42) = happyGoto action_608 +action_521 (43) = happyGoto action_140 +action_521 (44) = happyGoto action_141 +action_521 (45) = happyGoto action_142 +action_521 (46) = happyGoto action_143 +action_521 (47) = happyGoto action_144 +action_521 (48) = happyGoto action_145 +action_521 (54) = happyGoto action_146 +action_521 _ = happyFail (happyExpListPerState 521) + +action_522 (208) = happyReduce_132 +action_522 _ = happyReduce_123 + +action_523 (208) = happyReduce_130 +action_523 _ = happyReduce_121 + +action_524 _ = happyReduce_103 + +action_525 (208) = happyShift action_607 +action_525 _ = happyFail (happyExpListPerState 525) + +action_526 (194) = happyShift action_148 +action_526 (196) = happyShift action_149 +action_526 (214) = happyShift action_150 +action_526 (216) = happyShift action_151 +action_526 (219) = happyShift action_45 +action_526 (227) = happyShift action_152 +action_526 (228) = happyShift action_153 +action_526 (230) = happyShift action_47 +action_526 (241) = happyShift action_48 +action_526 (242) = happyShift action_49 +action_526 (244) = happyShift action_50 +action_526 (245) = happyShift action_51 +action_526 (250) = happyShift action_154 +action_526 (251) = happyShift action_112 +action_526 (252) = happyShift action_53 +action_526 (254) = happyShift action_54 +action_526 (255) = happyShift action_55 +action_526 (256) = happyShift action_115 +action_526 (257) = happyShift action_116 +action_526 (260) = happyShift action_117 +action_526 (262) = happyShift action_57 +action_526 (263) = happyShift action_58 +action_526 (264) = happyShift action_155 +action_526 (27) = happyGoto action_133 +action_526 (30) = happyGoto action_134 +action_526 (33) = happyGoto action_135 +action_526 (36) = happyGoto action_136 +action_526 (37) = happyGoto action_137 +action_526 (40) = happyGoto action_138 +action_526 (42) = happyGoto action_606 +action_526 (43) = happyGoto action_140 +action_526 (44) = happyGoto action_141 +action_526 (45) = happyGoto action_142 +action_526 (46) = happyGoto action_143 +action_526 (47) = happyGoto action_144 +action_526 (48) = happyGoto action_145 +action_526 (54) = happyGoto action_146 +action_526 _ = happyFail (happyExpListPerState 526) + +action_527 (194) = happyShift action_604 +action_527 (251) = happyShift action_605 +action_527 (99) = happyGoto action_603 +action_527 _ = happyReduce_258 + +action_528 _ = happyReduce_256 + +action_529 _ = happyReduce_257 + +action_530 (195) = happyReduce_409 +action_530 (213) = happyReduce_409 +action_530 _ = happyReduce_409 + +action_531 (195) = happyShift action_602 +action_531 _ = happyFail (happyExpListPerState 531) + +action_532 (213) = happyShift action_601 +action_532 _ = happyReduce_365 + +action_533 (254) = happyShift action_63 +action_533 (28) = happyGoto action_600 +action_533 _ = happyFail (happyExpListPerState 533) + +action_534 (254) = happyShift action_24 +action_534 (255) = happyShift action_132 +action_534 (26) = happyGoto action_599 +action_534 _ = happyFail (happyExpListPerState 534) + +action_535 (251) = happyShift action_479 +action_535 (256) = happyShift action_480 +action_535 (34) = happyGoto action_598 +action_535 _ = happyFail (happyExpListPerState 535) + +action_536 (200) = happyShift action_597 +action_536 _ = happyFail (happyExpListPerState 536) + +action_537 _ = happyReduce_211 + +action_538 (194) = happyShift action_40 +action_538 (196) = happyShift action_41 +action_538 (198) = happyShift action_42 +action_538 (214) = happyShift action_43 +action_538 (216) = happyShift action_44 +action_538 (219) = happyShift action_45 +action_538 (226) = happyShift action_46 +action_538 (230) = happyShift action_47 +action_538 (241) = happyShift action_48 +action_538 (242) = happyShift action_49 +action_538 (244) = happyShift action_50 +action_538 (245) = happyShift action_51 +action_538 (247) = happyShift action_52 +action_538 (252) = happyShift action_53 +action_538 (254) = happyShift action_54 +action_538 (255) = happyShift action_55 +action_538 (261) = happyShift action_56 +action_538 (262) = happyShift action_57 +action_538 (263) = happyShift action_58 +action_538 (264) = happyShift action_59 +action_538 (265) = happyShift action_60 +action_538 (27) = happyGoto action_25 +action_538 (30) = happyGoto action_396 +action_538 (37) = happyGoto action_27 +action_538 (38) = happyGoto action_28 +action_538 (39) = happyGoto action_29 +action_538 (41) = happyGoto action_30 +action_538 (69) = happyGoto action_596 +action_538 (86) = happyGoto action_398 +action_538 (87) = happyGoto action_34 +action_538 (88) = happyGoto action_35 +action_538 (128) = happyGoto action_36 +action_538 (130) = happyGoto action_37 +action_538 (132) = happyGoto action_38 +action_538 (162) = happyGoto action_39 +action_538 _ = happyFail (happyExpListPerState 538) + +action_539 (233) = happyShift action_595 +action_539 _ = happyFail (happyExpListPerState 539) + +action_540 (194) = happyShift action_95 +action_540 (196) = happyShift action_96 +action_540 (198) = happyShift action_97 +action_540 (214) = happyShift action_98 +action_540 (215) = happyShift action_99 +action_540 (216) = happyShift action_100 +action_540 (218) = happyShift action_101 +action_540 (219) = happyShift action_102 +action_540 (220) = happyShift action_103 +action_540 (224) = happyShift action_104 +action_540 (226) = happyShift action_46 +action_540 (230) = happyShift action_105 +action_540 (232) = happyShift action_106 +action_540 (238) = happyShift action_107 +action_540 (241) = happyShift action_108 +action_540 (242) = happyShift action_109 +action_540 (244) = happyShift action_110 +action_540 (245) = happyShift action_111 +action_540 (247) = happyShift action_52 +action_540 (251) = happyShift action_112 +action_540 (252) = happyShift action_113 +action_540 (253) = happyShift action_114 +action_540 (254) = happyShift action_54 +action_540 (255) = happyShift action_55 +action_540 (256) = happyShift action_115 +action_540 (257) = happyShift action_116 +action_540 (260) = happyShift action_117 +action_540 (261) = happyShift action_56 +action_540 (262) = happyShift action_57 +action_540 (263) = happyShift action_58 +action_540 (264) = happyShift action_59 +action_540 (265) = happyShift action_60 +action_540 (27) = happyGoto action_74 +action_540 (29) = happyGoto action_75 +action_540 (33) = happyGoto action_76 +action_540 (36) = happyGoto action_77 +action_540 (37) = happyGoto action_78 +action_540 (38) = happyGoto action_79 +action_540 (39) = happyGoto action_80 +action_540 (41) = happyGoto action_81 +action_540 (55) = happyGoto action_594 +action_540 (56) = happyGoto action_513 +action_540 (57) = happyGoto action_122 +action_540 (58) = happyGoto action_83 +action_540 (60) = happyGoto action_84 +action_540 (61) = happyGoto action_85 +action_540 (62) = happyGoto action_86 +action_540 (63) = happyGoto action_87 +action_540 (64) = happyGoto action_88 +action_540 (65) = happyGoto action_89 +action_540 (75) = happyGoto action_90 +action_540 (76) = happyGoto action_91 +action_540 (129) = happyGoto action_93 +action_540 (131) = happyGoto action_94 +action_540 _ = happyFail (happyExpListPerState 540) + +action_541 _ = happyReduce_198 + +action_542 (209) = happyShift action_433 +action_542 (210) = happyShift action_434 +action_542 (71) = happyGoto action_593 +action_542 (72) = happyGoto action_429 +action_542 (80) = happyGoto action_430 +action_542 (134) = happyGoto action_431 +action_542 (164) = happyGoto action_432 +action_542 _ = happyFail (happyExpListPerState 542) + +action_543 (194) = happyShift action_148 +action_543 (196) = happyShift action_149 +action_543 (214) = happyShift action_150 +action_543 (216) = happyShift action_151 +action_543 (219) = happyShift action_45 +action_543 (227) = happyShift action_152 +action_543 (228) = happyShift action_153 +action_543 (230) = happyShift action_47 +action_543 (241) = happyShift action_48 +action_543 (242) = happyShift action_49 +action_543 (244) = happyShift action_50 +action_543 (245) = happyShift action_51 +action_543 (250) = happyShift action_154 +action_543 (251) = happyShift action_112 +action_543 (252) = happyShift action_53 +action_543 (254) = happyShift action_54 +action_543 (255) = happyShift action_55 +action_543 (256) = happyShift action_115 +action_543 (257) = happyShift action_116 +action_543 (260) = happyShift action_117 +action_543 (262) = happyShift action_57 +action_543 (263) = happyShift action_58 +action_543 (264) = happyShift action_155 +action_543 (27) = happyGoto action_133 +action_543 (30) = happyGoto action_134 +action_543 (33) = happyGoto action_135 +action_543 (36) = happyGoto action_136 +action_543 (37) = happyGoto action_137 +action_543 (40) = happyGoto action_138 +action_543 (42) = happyGoto action_592 +action_543 (43) = happyGoto action_140 +action_543 (44) = happyGoto action_141 +action_543 (45) = happyGoto action_142 +action_543 (46) = happyGoto action_143 +action_543 (47) = happyGoto action_144 +action_543 (48) = happyGoto action_145 +action_543 (54) = happyGoto action_146 +action_543 _ = happyFail (happyExpListPerState 543) + +action_544 (225) = happyShift action_591 +action_544 _ = happyFail (happyExpListPerState 544) + +action_545 (194) = happyShift action_40 +action_545 (196) = happyShift action_41 +action_545 (198) = happyShift action_42 +action_545 (214) = happyShift action_43 +action_545 (216) = happyShift action_44 +action_545 (219) = happyShift action_45 +action_545 (226) = happyShift action_46 +action_545 (230) = happyShift action_47 +action_545 (241) = happyShift action_48 +action_545 (242) = happyShift action_49 +action_545 (244) = happyShift action_50 +action_545 (245) = happyShift action_51 +action_545 (247) = happyShift action_52 +action_545 (252) = happyShift action_53 +action_545 (254) = happyShift action_54 +action_545 (255) = happyShift action_55 +action_545 (261) = happyShift action_56 +action_545 (262) = happyShift action_57 +action_545 (263) = happyShift action_58 +action_545 (264) = happyShift action_59 +action_545 (265) = happyShift action_60 +action_545 (27) = happyGoto action_25 +action_545 (30) = happyGoto action_26 +action_545 (37) = happyGoto action_27 +action_545 (38) = happyGoto action_28 +action_545 (39) = happyGoto action_29 +action_545 (41) = happyGoto action_30 +action_545 (70) = happyGoto action_585 +action_545 (86) = happyGoto action_586 +action_545 (87) = happyGoto action_34 +action_545 (88) = happyGoto action_35 +action_545 (128) = happyGoto action_36 +action_545 (130) = happyGoto action_37 +action_545 (132) = happyGoto action_38 +action_545 (142) = happyGoto action_587 +action_545 (147) = happyGoto action_588 +action_545 (162) = happyGoto action_39 +action_545 (168) = happyGoto action_589 +action_545 (176) = happyGoto action_590 +action_545 _ = happyFail (happyExpListPerState 545) + +action_546 _ = happyReduce_412 + +action_547 _ = happyReduce_166 + +action_548 _ = happyReduce_189 + +action_549 _ = happyReduce_190 + +action_550 _ = happyReduce_436 + +action_551 (218) = happyShift action_230 +action_551 (219) = happyShift action_231 +action_551 (220) = happyShift action_232 +action_551 (221) = happyShift action_233 +action_551 (222) = happyShift action_234 +action_551 (223) = happyShift action_235 +action_551 (224) = happyShift action_236 +action_551 (225) = happyShift action_237 +action_551 (226) = happyShift action_238 +action_551 (227) = happyShift action_239 +action_551 (229) = happyShift action_240 +action_551 (230) = happyShift action_241 +action_551 (231) = happyShift action_242 +action_551 (232) = happyShift action_243 +action_551 (233) = happyShift action_244 +action_551 (234) = happyShift action_245 +action_551 (235) = happyShift action_246 +action_551 (236) = happyShift action_247 +action_551 (237) = happyShift action_248 +action_551 (238) = happyShift action_249 +action_551 (239) = happyShift action_250 +action_551 (240) = happyShift action_251 +action_551 (241) = happyShift action_252 +action_551 (242) = happyShift action_253 +action_551 (243) = happyShift action_254 +action_551 (244) = happyShift action_255 +action_551 (245) = happyShift action_256 +action_551 (246) = happyShift action_257 +action_551 (247) = happyShift action_258 +action_551 (248) = happyShift action_259 +action_551 (249) = happyShift action_260 +action_551 (252) = happyShift action_261 +action_551 (262) = happyShift action_262 +action_551 (263) = happyShift action_263 +action_551 (35) = happyGoto action_584 +action_551 _ = happyFail (happyExpListPerState 551) + +action_552 (218) = happyShift action_230 +action_552 (219) = happyShift action_231 +action_552 (220) = happyShift action_232 +action_552 (221) = happyShift action_233 +action_552 (222) = happyShift action_234 +action_552 (223) = happyShift action_235 +action_552 (224) = happyShift action_236 +action_552 (225) = happyShift action_237 +action_552 (226) = happyShift action_238 +action_552 (227) = happyShift action_239 +action_552 (229) = happyShift action_240 +action_552 (230) = happyShift action_241 +action_552 (231) = happyShift action_242 +action_552 (232) = happyShift action_243 +action_552 (233) = happyShift action_244 +action_552 (234) = happyShift action_245 +action_552 (235) = happyShift action_246 +action_552 (236) = happyShift action_247 +action_552 (237) = happyShift action_248 +action_552 (238) = happyShift action_249 +action_552 (239) = happyShift action_250 +action_552 (240) = happyShift action_251 +action_552 (241) = happyShift action_252 +action_552 (242) = happyShift action_253 +action_552 (243) = happyShift action_254 +action_552 (244) = happyShift action_255 +action_552 (245) = happyShift action_256 +action_552 (246) = happyShift action_257 +action_552 (247) = happyShift action_258 +action_552 (248) = happyShift action_259 +action_552 (249) = happyShift action_260 +action_552 (252) = happyShift action_261 +action_552 (262) = happyShift action_262 +action_552 (263) = happyShift action_263 +action_552 (35) = happyGoto action_376 +action_552 (67) = happyGoto action_583 +action_552 _ = happyFail (happyExpListPerState 552) + +action_553 _ = happyReduce_173 + +action_554 (218) = happyShift action_230 +action_554 (219) = happyShift action_231 +action_554 (220) = happyShift action_232 +action_554 (221) = happyShift action_233 +action_554 (222) = happyShift action_234 +action_554 (223) = happyShift action_235 +action_554 (224) = happyShift action_236 +action_554 (225) = happyShift action_237 +action_554 (226) = happyShift action_238 +action_554 (227) = happyShift action_239 +action_554 (229) = happyShift action_240 +action_554 (230) = happyShift action_241 +action_554 (231) = happyShift action_242 +action_554 (232) = happyShift action_243 +action_554 (233) = happyShift action_244 +action_554 (234) = happyShift action_245 +action_554 (235) = happyShift action_246 +action_554 (236) = happyShift action_247 +action_554 (237) = happyShift action_248 +action_554 (238) = happyShift action_249 +action_554 (239) = happyShift action_250 +action_554 (240) = happyShift action_251 +action_554 (241) = happyShift action_252 +action_554 (242) = happyShift action_253 +action_554 (243) = happyShift action_254 +action_554 (244) = happyShift action_255 +action_554 (245) = happyShift action_256 +action_554 (246) = happyShift action_257 +action_554 (247) = happyShift action_258 +action_554 (248) = happyShift action_259 +action_554 (249) = happyShift action_260 +action_554 (252) = happyShift action_261 +action_554 (262) = happyShift action_262 +action_554 (263) = happyShift action_263 +action_554 (35) = happyGoto action_579 +action_554 (68) = happyGoto action_580 +action_554 (157) = happyGoto action_581 +action_554 (186) = happyGoto action_582 +action_554 _ = happyFail (happyExpListPerState 554) + +action_555 (194) = happyShift action_95 +action_555 (196) = happyShift action_96 +action_555 (198) = happyShift action_97 +action_555 (214) = happyShift action_98 +action_555 (215) = happyShift action_99 +action_555 (216) = happyShift action_100 +action_555 (218) = happyShift action_101 +action_555 (219) = happyShift action_102 +action_555 (220) = happyShift action_103 +action_555 (224) = happyShift action_104 +action_555 (226) = happyShift action_46 +action_555 (230) = happyShift action_105 +action_555 (232) = happyShift action_106 +action_555 (238) = happyShift action_107 +action_555 (241) = happyShift action_108 +action_555 (242) = happyShift action_109 +action_555 (244) = happyShift action_110 +action_555 (245) = happyShift action_111 +action_555 (247) = happyShift action_52 +action_555 (251) = happyShift action_112 +action_555 (252) = happyShift action_113 +action_555 (253) = happyShift action_114 +action_555 (254) = happyShift action_54 +action_555 (255) = happyShift action_55 +action_555 (256) = happyShift action_115 +action_555 (257) = happyShift action_116 +action_555 (260) = happyShift action_117 +action_555 (261) = happyShift action_56 +action_555 (262) = happyShift action_57 +action_555 (263) = happyShift action_58 +action_555 (264) = happyShift action_59 +action_555 (265) = happyShift action_60 +action_555 (27) = happyGoto action_74 +action_555 (29) = happyGoto action_75 +action_555 (33) = happyGoto action_76 +action_555 (36) = happyGoto action_77 +action_555 (37) = happyGoto action_78 +action_555 (38) = happyGoto action_79 +action_555 (39) = happyGoto action_80 +action_555 (41) = happyGoto action_81 +action_555 (56) = happyGoto action_578 +action_555 (57) = happyGoto action_122 +action_555 (58) = happyGoto action_83 +action_555 (60) = happyGoto action_84 +action_555 (61) = happyGoto action_85 +action_555 (62) = happyGoto action_86 +action_555 (63) = happyGoto action_87 +action_555 (64) = happyGoto action_88 +action_555 (65) = happyGoto action_89 +action_555 (75) = happyGoto action_90 +action_555 (76) = happyGoto action_91 +action_555 (129) = happyGoto action_93 +action_555 (131) = happyGoto action_94 +action_555 _ = happyFail (happyExpListPerState 555) + +action_556 (194) = happyShift action_95 +action_556 (196) = happyShift action_96 +action_556 (198) = happyShift action_97 +action_556 (214) = happyShift action_98 +action_556 (215) = happyShift action_99 +action_556 (216) = happyShift action_100 +action_556 (218) = happyShift action_101 +action_556 (219) = happyShift action_102 +action_556 (220) = happyShift action_103 +action_556 (224) = happyShift action_104 +action_556 (226) = happyShift action_46 +action_556 (230) = happyShift action_105 +action_556 (232) = happyShift action_106 +action_556 (238) = happyShift action_107 +action_556 (241) = happyShift action_108 +action_556 (242) = happyShift action_109 +action_556 (244) = happyShift action_110 +action_556 (245) = happyShift action_111 +action_556 (247) = happyShift action_52 +action_556 (251) = happyShift action_112 +action_556 (252) = happyShift action_113 +action_556 (253) = happyShift action_114 +action_556 (254) = happyShift action_54 +action_556 (255) = happyShift action_55 +action_556 (256) = happyShift action_115 +action_556 (257) = happyShift action_116 +action_556 (260) = happyShift action_117 +action_556 (261) = happyShift action_56 +action_556 (262) = happyShift action_57 +action_556 (263) = happyShift action_58 +action_556 (264) = happyShift action_59 +action_556 (265) = happyShift action_60 +action_556 (27) = happyGoto action_74 +action_556 (29) = happyGoto action_75 +action_556 (33) = happyGoto action_76 +action_556 (36) = happyGoto action_77 +action_556 (37) = happyGoto action_78 +action_556 (38) = happyGoto action_79 +action_556 (39) = happyGoto action_80 +action_556 (41) = happyGoto action_81 +action_556 (56) = happyGoto action_577 +action_556 (57) = happyGoto action_122 +action_556 (58) = happyGoto action_83 +action_556 (60) = happyGoto action_84 +action_556 (61) = happyGoto action_85 +action_556 (62) = happyGoto action_86 +action_556 (63) = happyGoto action_87 +action_556 (64) = happyGoto action_88 +action_556 (65) = happyGoto action_89 +action_556 (75) = happyGoto action_90 +action_556 (76) = happyGoto action_91 +action_556 (129) = happyGoto action_93 +action_556 (131) = happyGoto action_94 +action_556 _ = happyFail (happyExpListPerState 556) + +action_557 (194) = happyShift action_95 +action_557 (196) = happyShift action_96 +action_557 (198) = happyShift action_97 +action_557 (214) = happyShift action_98 +action_557 (215) = happyShift action_99 +action_557 (216) = happyShift action_100 +action_557 (218) = happyShift action_101 +action_557 (219) = happyShift action_102 +action_557 (220) = happyShift action_103 +action_557 (224) = happyShift action_104 +action_557 (226) = happyShift action_46 +action_557 (230) = happyShift action_105 +action_557 (232) = happyShift action_106 +action_557 (238) = happyShift action_107 +action_557 (241) = happyShift action_108 +action_557 (242) = happyShift action_109 +action_557 (244) = happyShift action_110 +action_557 (245) = happyShift action_111 +action_557 (247) = happyShift action_52 +action_557 (251) = happyShift action_112 +action_557 (252) = happyShift action_113 +action_557 (253) = happyShift action_114 +action_557 (254) = happyShift action_54 +action_557 (255) = happyShift action_55 +action_557 (256) = happyShift action_115 +action_557 (257) = happyShift action_116 +action_557 (260) = happyShift action_117 +action_557 (261) = happyShift action_56 +action_557 (262) = happyShift action_57 +action_557 (263) = happyShift action_58 +action_557 (264) = happyShift action_59 +action_557 (265) = happyShift action_60 +action_557 (27) = happyGoto action_74 +action_557 (29) = happyGoto action_75 +action_557 (33) = happyGoto action_76 +action_557 (36) = happyGoto action_77 +action_557 (37) = happyGoto action_78 +action_557 (38) = happyGoto action_79 +action_557 (39) = happyGoto action_80 +action_557 (41) = happyGoto action_81 +action_557 (60) = happyGoto action_576 +action_557 (61) = happyGoto action_85 +action_557 (62) = happyGoto action_86 +action_557 (63) = happyGoto action_87 +action_557 (64) = happyGoto action_88 +action_557 (65) = happyGoto action_89 +action_557 (75) = happyGoto action_90 +action_557 (76) = happyGoto action_91 +action_557 (129) = happyGoto action_93 +action_557 (131) = happyGoto action_94 +action_557 _ = happyFail (happyExpListPerState 557) + +action_558 (194) = happyShift action_95 +action_558 (196) = happyShift action_96 +action_558 (198) = happyShift action_97 +action_558 (214) = happyShift action_98 +action_558 (215) = happyShift action_99 +action_558 (216) = happyShift action_100 +action_558 (218) = happyShift action_101 +action_558 (219) = happyShift action_102 +action_558 (220) = happyShift action_103 +action_558 (224) = happyShift action_104 +action_558 (226) = happyShift action_46 +action_558 (230) = happyShift action_105 +action_558 (232) = happyShift action_106 +action_558 (238) = happyShift action_107 +action_558 (241) = happyShift action_108 +action_558 (242) = happyShift action_109 +action_558 (244) = happyShift action_110 +action_558 (245) = happyShift action_111 +action_558 (247) = happyShift action_52 +action_558 (251) = happyShift action_112 +action_558 (252) = happyShift action_113 +action_558 (253) = happyShift action_114 +action_558 (254) = happyShift action_54 +action_558 (255) = happyShift action_55 +action_558 (256) = happyShift action_115 +action_558 (257) = happyShift action_116 +action_558 (260) = happyShift action_117 +action_558 (261) = happyShift action_56 +action_558 (262) = happyShift action_57 +action_558 (263) = happyShift action_58 +action_558 (264) = happyShift action_59 +action_558 (265) = happyShift action_60 +action_558 (27) = happyGoto action_74 +action_558 (29) = happyGoto action_75 +action_558 (33) = happyGoto action_76 +action_558 (36) = happyGoto action_77 +action_558 (37) = happyGoto action_78 +action_558 (38) = happyGoto action_79 +action_558 (39) = happyGoto action_80 +action_558 (41) = happyGoto action_81 +action_558 (60) = happyGoto action_575 +action_558 (61) = happyGoto action_85 +action_558 (62) = happyGoto action_86 +action_558 (63) = happyGoto action_87 +action_558 (64) = happyGoto action_88 +action_558 (65) = happyGoto action_89 +action_558 (75) = happyGoto action_90 +action_558 (76) = happyGoto action_91 +action_558 (129) = happyGoto action_93 +action_558 (131) = happyGoto action_94 +action_558 _ = happyFail (happyExpListPerState 558) + +action_559 _ = happyReduce_404 + +action_560 _ = happyReduce_382 + +action_561 (1) = happyReduce_413 +action_561 (213) = happyReduce_413 +action_561 _ = happyReduce_413 + +action_562 (204) = happyShift action_574 +action_562 _ = happyFail (happyExpListPerState 562) + +action_563 _ = happyReduce_305 + +action_564 (1) = happyReduce_345 +action_564 (204) = happyReduce_345 +action_564 (213) = happyReduce_345 +action_564 (219) = happyShift action_45 +action_564 (230) = happyShift action_47 +action_564 (241) = happyShift action_48 +action_564 (242) = happyShift action_49 +action_564 (244) = happyShift action_50 +action_564 (245) = happyShift action_51 +action_564 (252) = happyShift action_53 +action_564 (30) = happyGoto action_573 +action_564 _ = happyReduce_345 + +action_565 (213) = happyShift action_572 +action_565 _ = happyReduce_367 + +action_566 (219) = happyShift action_45 +action_566 (230) = happyShift action_47 +action_566 (241) = happyShift action_48 +action_566 (242) = happyShift action_49 +action_566 (244) = happyShift action_50 +action_566 (245) = happyShift action_51 +action_566 (252) = happyShift action_53 +action_566 (30) = happyGoto action_560 +action_566 (135) = happyGoto action_571 +action_566 (165) = happyGoto action_564 +action_566 _ = happyFail (happyExpListPerState 566) + +action_567 _ = happyReduce_432 + +action_568 _ = happyReduce_240 + +action_569 _ = happyReduce_241 + +action_570 _ = happyReduce_434 + +action_571 _ = happyReduce_306 + +action_572 (204) = happyShift action_566 +action_572 (219) = happyShift action_45 +action_572 (230) = happyShift action_47 +action_572 (241) = happyShift action_48 +action_572 (242) = happyShift action_49 +action_572 (244) = happyShift action_50 +action_572 (245) = happyShift action_51 +action_572 (252) = happyShift action_53 +action_572 (30) = happyGoto action_560 +action_572 (113) = happyGoto action_676 +action_572 (135) = happyGoto action_562 +action_572 (165) = happyGoto action_564 +action_572 _ = happyFail (happyExpListPerState 572) + +action_573 _ = happyReduce_383 + +action_574 (219) = happyShift action_45 +action_574 (230) = happyShift action_47 +action_574 (241) = happyShift action_48 +action_574 (242) = happyShift action_49 +action_574 (244) = happyShift action_50 +action_574 (245) = happyShift action_51 +action_574 (252) = happyShift action_53 +action_574 (30) = happyGoto action_560 +action_574 (135) = happyGoto action_675 +action_574 (165) = happyGoto action_564 +action_574 _ = happyFail (happyExpListPerState 574) + +action_575 _ = happyReduce_154 + +action_576 _ = happyReduce_156 + +action_577 _ = happyReduce_193 + +action_578 _ = happyReduce_191 + +action_579 (196) = happyShift action_673 +action_579 (209) = happyShift action_674 +action_579 _ = happyFail (happyExpListPerState 579) + +action_580 (197) = happyReduce_421 +action_580 (213) = happyReduce_421 +action_580 _ = happyReduce_421 + +action_581 (197) = happyShift action_672 +action_581 _ = happyFail (happyExpListPerState 581) + +action_582 (213) = happyShift action_671 +action_582 _ = happyReduce_371 + +action_583 _ = happyReduce_424 + +action_584 _ = happyReduce_418 + +action_585 _ = happyReduce_388 + +action_586 (201) = happyReduce_401 +action_586 (204) = happyReduce_401 +action_586 (205) = happyShift action_293 +action_586 (207) = happyShift action_295 +action_586 (210) = happyReduce_401 +action_586 (213) = happyReduce_401 +action_586 (216) = happyShift action_296 +action_586 (258) = happyShift action_297 +action_586 (259) = happyShift action_298 +action_586 (31) = happyGoto action_351 +action_586 _ = happyReduce_401 + +action_587 (201) = happyShift action_670 +action_587 _ = happyFail (happyExpListPerState 587) + +action_588 (201) = happyShift action_668 +action_588 (204) = happyShift action_669 +action_588 (210) = happyShift action_434 +action_588 (73) = happyGoto action_663 +action_588 (74) = happyGoto action_664 +action_588 (80) = happyGoto action_665 +action_588 (133) = happyGoto action_666 +action_588 (163) = happyGoto action_667 +action_588 _ = happyFail (happyExpListPerState 588) + +action_589 (202) = happyShift action_662 +action_589 _ = happyReduce_356 + +action_590 (213) = happyShift action_661 +action_590 _ = happyReduce_361 + +action_591 (194) = happyShift action_95 +action_591 (196) = happyShift action_96 +action_591 (198) = happyShift action_97 +action_591 (214) = happyShift action_98 +action_591 (215) = happyShift action_99 +action_591 (216) = happyShift action_100 +action_591 (218) = happyShift action_101 +action_591 (219) = happyShift action_102 +action_591 (220) = happyShift action_103 +action_591 (224) = happyShift action_104 +action_591 (226) = happyShift action_46 +action_591 (230) = happyShift action_105 +action_591 (232) = happyShift action_106 +action_591 (238) = happyShift action_107 +action_591 (241) = happyShift action_108 +action_591 (242) = happyShift action_109 +action_591 (244) = happyShift action_110 +action_591 (245) = happyShift action_111 +action_591 (247) = happyShift action_52 +action_591 (251) = happyShift action_112 +action_591 (252) = happyShift action_113 +action_591 (253) = happyShift action_114 +action_591 (254) = happyShift action_54 +action_591 (255) = happyShift action_55 +action_591 (256) = happyShift action_115 +action_591 (257) = happyShift action_116 +action_591 (260) = happyShift action_117 +action_591 (261) = happyShift action_56 +action_591 (262) = happyShift action_57 +action_591 (263) = happyShift action_58 +action_591 (264) = happyShift action_59 +action_591 (265) = happyShift action_60 +action_591 (27) = happyGoto action_74 +action_591 (29) = happyGoto action_75 +action_591 (33) = happyGoto action_76 +action_591 (36) = happyGoto action_77 +action_591 (37) = happyGoto action_78 +action_591 (38) = happyGoto action_79 +action_591 (39) = happyGoto action_80 +action_591 (41) = happyGoto action_81 +action_591 (56) = happyGoto action_660 +action_591 (57) = happyGoto action_122 +action_591 (58) = happyGoto action_83 +action_591 (60) = happyGoto action_84 +action_591 (61) = happyGoto action_85 +action_591 (62) = happyGoto action_86 +action_591 (63) = happyGoto action_87 +action_591 (64) = happyGoto action_88 +action_591 (65) = happyGoto action_89 +action_591 (75) = happyGoto action_90 +action_591 (76) = happyGoto action_91 +action_591 (129) = happyGoto action_93 +action_591 (131) = happyGoto action_94 +action_591 _ = happyFail (happyExpListPerState 591) + +action_592 _ = happyReduce_197 + +action_593 _ = happyReduce_199 + +action_594 _ = happyReduce_200 + +action_595 (194) = happyShift action_95 +action_595 (196) = happyShift action_96 +action_595 (198) = happyShift action_97 +action_595 (214) = happyShift action_98 +action_595 (215) = happyShift action_99 +action_595 (216) = happyShift action_100 +action_595 (218) = happyShift action_101 +action_595 (219) = happyShift action_102 +action_595 (220) = happyShift action_103 +action_595 (224) = happyShift action_104 +action_595 (226) = happyShift action_46 +action_595 (230) = happyShift action_105 +action_595 (232) = happyShift action_106 +action_595 (238) = happyShift action_107 +action_595 (241) = happyShift action_108 +action_595 (242) = happyShift action_109 +action_595 (244) = happyShift action_110 +action_595 (245) = happyShift action_111 +action_595 (247) = happyShift action_52 +action_595 (251) = happyShift action_112 +action_595 (252) = happyShift action_113 +action_595 (253) = happyShift action_114 +action_595 (254) = happyShift action_54 +action_595 (255) = happyShift action_55 +action_595 (256) = happyShift action_115 +action_595 (257) = happyShift action_116 +action_595 (260) = happyShift action_117 +action_595 (261) = happyShift action_56 +action_595 (262) = happyShift action_57 +action_595 (263) = happyShift action_58 +action_595 (264) = happyShift action_59 +action_595 (265) = happyShift action_60 +action_595 (27) = happyGoto action_74 +action_595 (29) = happyGoto action_75 +action_595 (33) = happyGoto action_76 +action_595 (36) = happyGoto action_77 +action_595 (37) = happyGoto action_78 +action_595 (38) = happyGoto action_79 +action_595 (39) = happyGoto action_80 +action_595 (41) = happyGoto action_81 +action_595 (56) = happyGoto action_659 +action_595 (57) = happyGoto action_122 +action_595 (58) = happyGoto action_83 +action_595 (60) = happyGoto action_84 +action_595 (61) = happyGoto action_85 +action_595 (62) = happyGoto action_86 +action_595 (63) = happyGoto action_87 +action_595 (64) = happyGoto action_88 +action_595 (65) = happyGoto action_89 +action_595 (75) = happyGoto action_90 +action_595 (76) = happyGoto action_91 +action_595 (129) = happyGoto action_93 +action_595 (131) = happyGoto action_94 +action_595 _ = happyFail (happyExpListPerState 595) + +action_596 _ = happyReduce_395 + +action_597 (92) = happyGoto action_657 +action_597 (93) = happyGoto action_658 +action_597 _ = happyReduce_247 + +action_598 _ = happyReduce_260 + +action_599 _ = happyReduce_262 + +action_600 _ = happyReduce_261 + +action_601 (219) = happyShift action_45 +action_601 (221) = happyShift action_533 +action_601 (230) = happyShift action_47 +action_601 (239) = happyShift action_534 +action_601 (241) = happyShift action_48 +action_601 (242) = happyShift action_49 +action_601 (244) = happyShift action_50 +action_601 (245) = happyShift action_51 +action_601 (248) = happyShift action_535 +action_601 (251) = happyShift action_479 +action_601 (252) = happyShift action_53 +action_601 (254) = happyShift action_63 +action_601 (256) = happyShift action_480 +action_601 (28) = happyGoto action_527 +action_601 (30) = happyGoto action_528 +action_601 (34) = happyGoto action_529 +action_601 (98) = happyGoto action_656 +action_601 _ = happyFail (happyExpListPerState 601) + +action_602 _ = happyReduce_255 + +action_603 _ = happyReduce_259 + +action_604 (195) = happyShift action_655 +action_604 (254) = happyShift action_63 +action_604 (28) = happyGoto action_652 +action_604 (156) = happyGoto action_653 +action_604 (185) = happyGoto action_654 +action_604 _ = happyFail (happyExpListPerState 604) + +action_605 _ = happyReduce_263 + +action_606 (195) = happyShift action_651 +action_606 _ = happyFail (happyExpListPerState 606) + +action_607 (194) = happyShift action_148 +action_607 (196) = happyShift action_149 +action_607 (214) = happyShift action_150 +action_607 (216) = happyShift action_151 +action_607 (219) = happyShift action_45 +action_607 (227) = happyShift action_152 +action_607 (228) = happyShift action_153 +action_607 (230) = happyShift action_47 +action_607 (241) = happyShift action_48 +action_607 (242) = happyShift action_49 +action_607 (244) = happyShift action_50 +action_607 (245) = happyShift action_51 +action_607 (250) = happyShift action_154 +action_607 (251) = happyShift action_112 +action_607 (252) = happyShift action_53 +action_607 (254) = happyShift action_54 +action_607 (255) = happyShift action_55 +action_607 (256) = happyShift action_115 +action_607 (257) = happyShift action_116 +action_607 (260) = happyShift action_117 +action_607 (262) = happyShift action_57 +action_607 (263) = happyShift action_58 +action_607 (264) = happyShift action_155 +action_607 (27) = happyGoto action_133 +action_607 (30) = happyGoto action_134 +action_607 (33) = happyGoto action_135 +action_607 (36) = happyGoto action_136 +action_607 (37) = happyGoto action_137 +action_607 (40) = happyGoto action_138 +action_607 (42) = happyGoto action_650 +action_607 (43) = happyGoto action_140 +action_607 (44) = happyGoto action_141 +action_607 (45) = happyGoto action_142 +action_607 (46) = happyGoto action_143 +action_607 (47) = happyGoto action_144 +action_607 (48) = happyGoto action_145 +action_607 (54) = happyGoto action_146 +action_607 _ = happyFail (happyExpListPerState 607) + +action_608 (195) = happyShift action_649 +action_608 _ = happyFail (happyExpListPerState 608) + +action_609 _ = happyReduce_124 + +action_610 _ = happyReduce_204 + +action_611 (200) = happyShift action_648 +action_611 _ = happyFail (happyExpListPerState 611) + +action_612 _ = happyReduce_406 + +action_613 (219) = happyShift action_45 +action_613 (230) = happyShift action_47 +action_613 (241) = happyShift action_48 +action_613 (242) = happyShift action_49 +action_613 (244) = happyShift action_50 +action_613 (245) = happyShift action_51 +action_613 (252) = happyShift action_53 +action_613 (30) = happyGoto action_505 +action_613 (114) = happyGoto action_647 +action_613 _ = happyFail (happyExpListPerState 613) + +action_614 _ = happyReduce_282 + +action_615 (194) = happyShift action_148 +action_615 (196) = happyShift action_149 +action_615 (214) = happyShift action_150 +action_615 (216) = happyShift action_151 +action_615 (219) = happyShift action_45 +action_615 (227) = happyShift action_152 +action_615 (228) = happyShift action_153 +action_615 (230) = happyShift action_47 +action_615 (241) = happyShift action_48 +action_615 (242) = happyShift action_49 +action_615 (244) = happyShift action_50 +action_615 (245) = happyShift action_51 +action_615 (250) = happyShift action_154 +action_615 (251) = happyShift action_112 +action_615 (252) = happyShift action_53 +action_615 (254) = happyShift action_54 +action_615 (255) = happyShift action_55 +action_615 (256) = happyShift action_115 +action_615 (257) = happyShift action_116 +action_615 (260) = happyShift action_117 +action_615 (262) = happyShift action_57 +action_615 (263) = happyShift action_58 +action_615 (264) = happyShift action_155 +action_615 (27) = happyGoto action_133 +action_615 (30) = happyGoto action_134 +action_615 (33) = happyGoto action_135 +action_615 (36) = happyGoto action_136 +action_615 (37) = happyGoto action_137 +action_615 (40) = happyGoto action_138 +action_615 (42) = happyGoto action_646 +action_615 (43) = happyGoto action_140 +action_615 (44) = happyGoto action_141 +action_615 (45) = happyGoto action_142 +action_615 (46) = happyGoto action_143 +action_615 (47) = happyGoto action_144 +action_615 (48) = happyGoto action_145 +action_615 (54) = happyGoto action_146 +action_615 _ = happyFail (happyExpListPerState 615) + +action_616 (219) = happyShift action_45 +action_616 (230) = happyShift action_47 +action_616 (241) = happyShift action_48 +action_616 (242) = happyShift action_49 +action_616 (244) = happyShift action_50 +action_616 (245) = happyShift action_51 +action_616 (252) = happyShift action_53 +action_616 (30) = happyGoto action_501 +action_616 (118) = happyGoto action_645 +action_616 _ = happyFail (happyExpListPerState 616) + +action_617 _ = happyReduce_284 + +action_618 (209) = happyShift action_433 +action_618 (210) = happyShift action_434 +action_618 (71) = happyGoto action_644 +action_618 (72) = happyGoto action_429 +action_618 (80) = happyGoto action_430 +action_618 (134) = happyGoto action_431 +action_618 (164) = happyGoto action_432 +action_618 _ = happyFail (happyExpListPerState 618) + +action_619 (194) = happyShift action_148 +action_619 (196) = happyShift action_149 +action_619 (214) = happyShift action_150 +action_619 (216) = happyShift action_151 +action_619 (219) = happyShift action_45 +action_619 (227) = happyShift action_152 +action_619 (228) = happyShift action_153 +action_619 (230) = happyShift action_47 +action_619 (241) = happyShift action_48 +action_619 (242) = happyShift action_49 +action_619 (244) = happyShift action_50 +action_619 (245) = happyShift action_51 +action_619 (250) = happyShift action_154 +action_619 (251) = happyShift action_112 +action_619 (252) = happyShift action_53 +action_619 (254) = happyShift action_54 +action_619 (255) = happyShift action_55 +action_619 (256) = happyShift action_115 +action_619 (257) = happyShift action_116 +action_619 (260) = happyShift action_117 +action_619 (262) = happyShift action_57 +action_619 (263) = happyShift action_58 +action_619 (264) = happyShift action_155 +action_619 (27) = happyGoto action_133 +action_619 (30) = happyGoto action_134 +action_619 (33) = happyGoto action_135 +action_619 (36) = happyGoto action_136 +action_619 (37) = happyGoto action_137 +action_619 (40) = happyGoto action_138 +action_619 (42) = happyGoto action_643 +action_619 (43) = happyGoto action_140 +action_619 (44) = happyGoto action_141 +action_619 (45) = happyGoto action_142 +action_619 (46) = happyGoto action_143 +action_619 (47) = happyGoto action_144 +action_619 (48) = happyGoto action_145 +action_619 (54) = happyGoto action_146 +action_619 _ = happyFail (happyExpListPerState 619) + +action_620 _ = happyReduce_320 + +action_621 _ = happyReduce_319 + +action_622 (205) = happyShift action_192 +action_622 (207) = happyShift action_193 +action_622 (216) = happyShift action_194 +action_622 (258) = happyShift action_195 +action_622 (32) = happyGoto action_642 +action_622 _ = happyFail (happyExpListPerState 622) + +action_623 (194) = happyShift action_148 +action_623 (196) = happyShift action_149 +action_623 (214) = happyShift action_150 +action_623 (216) = happyShift action_151 +action_623 (219) = happyShift action_45 +action_623 (227) = happyShift action_152 +action_623 (228) = happyShift action_153 +action_623 (230) = happyShift action_47 +action_623 (241) = happyShift action_48 +action_623 (242) = happyShift action_49 +action_623 (244) = happyShift action_50 +action_623 (245) = happyShift action_51 +action_623 (250) = happyShift action_154 +action_623 (251) = happyShift action_112 +action_623 (252) = happyShift action_53 +action_623 (254) = happyShift action_54 +action_623 (255) = happyShift action_55 +action_623 (256) = happyShift action_115 +action_623 (257) = happyShift action_116 +action_623 (260) = happyShift action_117 +action_623 (262) = happyShift action_57 +action_623 (263) = happyShift action_58 +action_623 (264) = happyShift action_155 +action_623 (27) = happyGoto action_133 +action_623 (30) = happyGoto action_134 +action_623 (33) = happyGoto action_135 +action_623 (36) = happyGoto action_136 +action_623 (37) = happyGoto action_137 +action_623 (40) = happyGoto action_138 +action_623 (42) = happyGoto action_641 +action_623 (43) = happyGoto action_140 +action_623 (44) = happyGoto action_141 +action_623 (45) = happyGoto action_142 +action_623 (46) = happyGoto action_143 +action_623 (47) = happyGoto action_144 +action_623 (48) = happyGoto action_145 +action_623 (54) = happyGoto action_146 +action_623 _ = happyFail (happyExpListPerState 623) + +action_624 _ = happyReduce_293 + +action_625 (194) = happyShift action_148 +action_625 (196) = happyShift action_149 +action_625 (214) = happyShift action_150 +action_625 (216) = happyShift action_151 +action_625 (219) = happyShift action_45 +action_625 (227) = happyShift action_152 +action_625 (228) = happyShift action_153 +action_625 (230) = happyShift action_47 +action_625 (241) = happyShift action_48 +action_625 (242) = happyShift action_49 +action_625 (244) = happyShift action_50 +action_625 (245) = happyShift action_51 +action_625 (250) = happyShift action_154 +action_625 (251) = happyShift action_112 +action_625 (252) = happyShift action_53 +action_625 (254) = happyShift action_54 +action_625 (255) = happyShift action_55 +action_625 (256) = happyShift action_115 +action_625 (257) = happyShift action_116 +action_625 (260) = happyShift action_117 +action_625 (262) = happyShift action_57 +action_625 (263) = happyShift action_58 +action_625 (264) = happyShift action_155 +action_625 (27) = happyGoto action_133 +action_625 (30) = happyGoto action_134 +action_625 (33) = happyGoto action_135 +action_625 (36) = happyGoto action_136 +action_625 (37) = happyGoto action_137 +action_625 (40) = happyGoto action_138 +action_625 (42) = happyGoto action_640 +action_625 (43) = happyGoto action_140 +action_625 (44) = happyGoto action_141 +action_625 (45) = happyGoto action_142 +action_625 (46) = happyGoto action_143 +action_625 (47) = happyGoto action_144 +action_625 (48) = happyGoto action_145 +action_625 (54) = happyGoto action_146 +action_625 _ = happyFail (happyExpListPerState 625) + +action_626 _ = happyReduce_309 + +action_627 (254) = happyShift action_54 +action_627 (255) = happyShift action_55 +action_627 (27) = happyGoto action_639 +action_627 _ = happyFail (happyExpListPerState 627) + +action_628 (206) = happyReduce_315 +action_628 _ = happyReduce_312 + +action_629 _ = happyReduce_385 + +action_630 _ = happyReduce_267 + +action_631 _ = happyReduce_275 + +action_632 _ = happyReduce_276 + +action_633 (219) = happyShift action_45 +action_633 (221) = happyShift action_477 +action_633 (230) = happyShift action_47 +action_633 (241) = happyShift action_48 +action_633 (242) = happyShift action_49 +action_633 (244) = happyShift action_50 +action_633 (245) = happyShift action_51 +action_633 (248) = happyShift action_478 +action_633 (251) = happyShift action_479 +action_633 (252) = happyShift action_53 +action_633 (254) = happyShift action_63 +action_633 (256) = happyShift action_480 +action_633 (28) = happyGoto action_471 +action_633 (30) = happyGoto action_472 +action_633 (34) = happyGoto action_473 +action_633 (102) = happyGoto action_638 +action_633 _ = happyFail (happyExpListPerState 633) + +action_634 _ = happyReduce_269 + +action_635 _ = happyReduce_274 + +action_636 (195) = happyShift action_637 +action_636 _ = happyFail (happyExpListPerState 636) + +action_637 _ = happyReduce_270 + +action_638 _ = happyReduce_416 + +action_639 (194) = happyShift action_148 +action_639 (196) = happyShift action_149 +action_639 (214) = happyShift action_150 +action_639 (219) = happyShift action_45 +action_639 (230) = happyShift action_47 +action_639 (241) = happyShift action_48 +action_639 (242) = happyShift action_49 +action_639 (244) = happyShift action_50 +action_639 (245) = happyShift action_51 +action_639 (250) = happyShift action_154 +action_639 (251) = happyShift action_112 +action_639 (252) = happyShift action_53 +action_639 (254) = happyShift action_54 +action_639 (255) = happyShift action_55 +action_639 (256) = happyShift action_115 +action_639 (257) = happyShift action_116 +action_639 (260) = happyShift action_117 +action_639 (262) = happyShift action_57 +action_639 (263) = happyShift action_58 +action_639 (264) = happyShift action_155 +action_639 (27) = happyGoto action_133 +action_639 (30) = happyGoto action_134 +action_639 (33) = happyGoto action_135 +action_639 (36) = happyGoto action_136 +action_639 (37) = happyGoto action_137 +action_639 (40) = happyGoto action_138 +action_639 (48) = happyGoto action_333 +action_639 (139) = happyGoto action_695 +action_639 (160) = happyGoto action_335 +action_639 (189) = happyGoto action_336 +action_639 _ = happyReduce_350 + +action_640 _ = happyReduce_294 + +action_641 (195) = happyShift action_694 +action_641 _ = happyFail (happyExpListPerState 641) + +action_642 _ = happyReduce_321 + +action_643 _ = happyReduce_317 + +action_644 _ = happyReduce_318 + +action_645 _ = happyReduce_393 + +action_646 _ = happyReduce_308 + +action_647 _ = happyReduce_391 + +action_648 (194) = happyShift action_40 +action_648 (196) = happyShift action_41 +action_648 (198) = happyShift action_42 +action_648 (214) = happyShift action_43 +action_648 (216) = happyShift action_44 +action_648 (219) = happyShift action_45 +action_648 (226) = happyShift action_46 +action_648 (230) = happyShift action_47 +action_648 (241) = happyShift action_48 +action_648 (242) = happyShift action_49 +action_648 (244) = happyShift action_50 +action_648 (245) = happyShift action_51 +action_648 (247) = happyShift action_52 +action_648 (252) = happyShift action_53 +action_648 (254) = happyShift action_54 +action_648 (255) = happyShift action_55 +action_648 (261) = happyShift action_56 +action_648 (262) = happyShift action_57 +action_648 (263) = happyShift action_58 +action_648 (264) = happyShift action_59 +action_648 (265) = happyShift action_60 +action_648 (27) = happyGoto action_25 +action_648 (30) = happyGoto action_396 +action_648 (37) = happyGoto action_27 +action_648 (38) = happyGoto action_28 +action_648 (39) = happyGoto action_29 +action_648 (41) = happyGoto action_30 +action_648 (69) = happyGoto action_397 +action_648 (86) = happyGoto action_398 +action_648 (87) = happyGoto action_34 +action_648 (88) = happyGoto action_35 +action_648 (128) = happyGoto action_36 +action_648 (130) = happyGoto action_37 +action_648 (132) = happyGoto action_38 +action_648 (145) = happyGoto action_693 +action_648 (162) = happyGoto action_39 +action_648 (171) = happyGoto action_400 +action_648 _ = happyFail (happyExpListPerState 648) + +action_649 (208) = happyReduce_133 +action_649 _ = happyReduce_124 + +action_650 (195) = happyShift action_692 +action_650 _ = happyFail (happyExpListPerState 650) + +action_651 _ = happyReduce_141 + +action_652 (195) = happyReduce_419 +action_652 (213) = happyReduce_419 +action_652 _ = happyReduce_419 + +action_653 (195) = happyShift action_691 +action_653 _ = happyFail (happyExpListPerState 653) + +action_654 (213) = happyShift action_690 +action_654 _ = happyReduce_370 + +action_655 _ = happyReduce_264 + +action_656 _ = happyReduce_410 + +action_657 _ = happyReduce_242 + +action_658 (231) = happyShift action_180 +action_658 (100) = happyGoto action_689 +action_658 _ = happyReduce_245 + +action_659 _ = happyReduce_167 + +action_660 _ = happyReduce_163 + +action_661 (194) = happyShift action_40 +action_661 (196) = happyShift action_41 +action_661 (198) = happyShift action_42 +action_661 (214) = happyShift action_43 +action_661 (216) = happyShift action_44 +action_661 (219) = happyShift action_45 +action_661 (226) = happyShift action_46 +action_661 (230) = happyShift action_47 +action_661 (241) = happyShift action_48 +action_661 (242) = happyShift action_49 +action_661 (244) = happyShift action_50 +action_661 (245) = happyShift action_51 +action_661 (247) = happyShift action_52 +action_661 (252) = happyShift action_53 +action_661 (254) = happyShift action_54 +action_661 (255) = happyShift action_55 +action_661 (261) = happyShift action_56 +action_661 (262) = happyShift action_57 +action_661 (263) = happyShift action_58 +action_661 (264) = happyShift action_59 +action_661 (265) = happyShift action_60 +action_661 (27) = happyGoto action_25 +action_661 (30) = happyGoto action_26 +action_661 (37) = happyGoto action_27 +action_661 (38) = happyGoto action_28 +action_661 (39) = happyGoto action_29 +action_661 (41) = happyGoto action_30 +action_661 (86) = happyGoto action_688 +action_661 (87) = happyGoto action_34 +action_661 (88) = happyGoto action_35 +action_661 (128) = happyGoto action_36 +action_661 (130) = happyGoto action_37 +action_661 (132) = happyGoto action_38 +action_661 (162) = happyGoto action_39 +action_661 _ = happyFail (happyExpListPerState 661) + +action_662 (194) = happyShift action_40 +action_662 (196) = happyShift action_41 +action_662 (198) = happyShift action_42 +action_662 (214) = happyShift action_43 +action_662 (216) = happyShift action_44 +action_662 (219) = happyShift action_45 +action_662 (226) = happyShift action_46 +action_662 (230) = happyShift action_47 +action_662 (241) = happyShift action_48 +action_662 (242) = happyShift action_49 +action_662 (244) = happyShift action_50 +action_662 (245) = happyShift action_51 +action_662 (247) = happyShift action_52 +action_662 (252) = happyShift action_53 +action_662 (254) = happyShift action_54 +action_662 (255) = happyShift action_55 +action_662 (261) = happyShift action_56 +action_662 (262) = happyShift action_57 +action_662 (263) = happyShift action_58 +action_662 (264) = happyShift action_59 +action_662 (265) = happyShift action_60 +action_662 (27) = happyGoto action_25 +action_662 (30) = happyGoto action_26 +action_662 (37) = happyGoto action_27 +action_662 (38) = happyGoto action_28 +action_662 (39) = happyGoto action_29 +action_662 (41) = happyGoto action_30 +action_662 (70) = happyGoto action_686 +action_662 (86) = happyGoto action_586 +action_662 (87) = happyGoto action_34 +action_662 (88) = happyGoto action_35 +action_662 (128) = happyGoto action_36 +action_662 (130) = happyGoto action_37 +action_662 (132) = happyGoto action_38 +action_662 (147) = happyGoto action_687 +action_662 (162) = happyGoto action_39 +action_662 (176) = happyGoto action_590 +action_662 _ = happyFail (happyExpListPerState 662) + +action_663 _ = happyReduce_201 + +action_664 _ = happyReduce_378 + +action_665 (204) = happyShift action_685 +action_665 _ = happyFail (happyExpListPerState 665) + +action_666 _ = happyReduce_206 + +action_667 (1) = happyReduce_343 +action_667 (194) = happyReduce_343 +action_667 (195) = happyReduce_343 +action_667 (196) = happyReduce_343 +action_667 (197) = happyReduce_343 +action_667 (198) = happyReduce_343 +action_667 (199) = happyReduce_343 +action_667 (201) = happyReduce_343 +action_667 (202) = happyReduce_343 +action_667 (205) = happyReduce_343 +action_667 (207) = happyReduce_343 +action_667 (208) = happyReduce_343 +action_667 (210) = happyShift action_434 +action_667 (211) = happyReduce_343 +action_667 (213) = happyReduce_343 +action_667 (214) = happyReduce_343 +action_667 (215) = happyReduce_343 +action_667 (216) = happyReduce_343 +action_667 (217) = happyReduce_343 +action_667 (218) = happyReduce_343 +action_667 (219) = happyReduce_343 +action_667 (220) = happyReduce_343 +action_667 (224) = happyReduce_343 +action_667 (225) = happyReduce_343 +action_667 (226) = happyReduce_343 +action_667 (230) = happyReduce_343 +action_667 (232) = happyReduce_343 +action_667 (238) = happyReduce_343 +action_667 (241) = happyReduce_343 +action_667 (242) = happyReduce_343 +action_667 (243) = happyReduce_343 +action_667 (244) = happyReduce_343 +action_667 (245) = happyReduce_343 +action_667 (246) = happyReduce_343 +action_667 (247) = happyReduce_343 +action_667 (249) = happyReduce_343 +action_667 (251) = happyReduce_343 +action_667 (252) = happyReduce_343 +action_667 (253) = happyReduce_343 +action_667 (254) = happyReduce_343 +action_667 (255) = happyReduce_343 +action_667 (256) = happyReduce_343 +action_667 (257) = happyReduce_343 +action_667 (258) = happyReduce_343 +action_667 (259) = happyReduce_343 +action_667 (260) = happyReduce_343 +action_667 (261) = happyReduce_343 +action_667 (262) = happyReduce_343 +action_667 (263) = happyReduce_343 +action_667 (264) = happyReduce_343 +action_667 (265) = happyReduce_343 +action_667 (266) = happyReduce_343 +action_667 (74) = happyGoto action_684 +action_667 (80) = happyGoto action_665 +action_667 _ = happyReduce_343 + +action_668 (204) = happyShift action_683 +action_668 (210) = happyShift action_434 +action_668 (73) = happyGoto action_682 +action_668 (74) = happyGoto action_664 +action_668 (80) = happyGoto action_665 +action_668 (133) = happyGoto action_666 +action_668 (163) = happyGoto action_667 +action_668 _ = happyFail (happyExpListPerState 668) + +action_669 (194) = happyShift action_95 +action_669 (196) = happyShift action_96 +action_669 (198) = happyShift action_97 +action_669 (201) = happyShift action_681 +action_669 (214) = happyShift action_98 +action_669 (215) = happyShift action_99 +action_669 (216) = happyShift action_100 +action_669 (218) = happyShift action_101 +action_669 (219) = happyShift action_102 +action_669 (220) = happyShift action_103 +action_669 (224) = happyShift action_104 +action_669 (226) = happyShift action_46 +action_669 (230) = happyShift action_105 +action_669 (232) = happyShift action_106 +action_669 (238) = happyShift action_107 +action_669 (241) = happyShift action_108 +action_669 (242) = happyShift action_109 +action_669 (244) = happyShift action_110 +action_669 (245) = happyShift action_111 +action_669 (247) = happyShift action_52 +action_669 (251) = happyShift action_112 +action_669 (252) = happyShift action_113 +action_669 (253) = happyShift action_114 +action_669 (254) = happyShift action_54 +action_669 (255) = happyShift action_55 +action_669 (256) = happyShift action_115 +action_669 (257) = happyShift action_116 +action_669 (260) = happyShift action_117 +action_669 (261) = happyShift action_56 +action_669 (262) = happyShift action_57 +action_669 (263) = happyShift action_58 +action_669 (264) = happyShift action_59 +action_669 (265) = happyShift action_60 +action_669 (27) = happyGoto action_74 +action_669 (29) = happyGoto action_75 +action_669 (33) = happyGoto action_76 +action_669 (36) = happyGoto action_77 +action_669 (37) = happyGoto action_78 +action_669 (38) = happyGoto action_79 +action_669 (39) = happyGoto action_80 +action_669 (41) = happyGoto action_81 +action_669 (55) = happyGoto action_680 +action_669 (56) = happyGoto action_513 +action_669 (57) = happyGoto action_122 +action_669 (58) = happyGoto action_83 +action_669 (60) = happyGoto action_84 +action_669 (61) = happyGoto action_85 +action_669 (62) = happyGoto action_86 +action_669 (63) = happyGoto action_87 +action_669 (64) = happyGoto action_88 +action_669 (65) = happyGoto action_89 +action_669 (75) = happyGoto action_90 +action_669 (76) = happyGoto action_91 +action_669 (129) = happyGoto action_93 +action_669 (131) = happyGoto action_94 +action_669 _ = happyFail (happyExpListPerState 669) + +action_670 _ = happyReduce_168 + +action_671 (218) = happyShift action_230 +action_671 (219) = happyShift action_231 +action_671 (220) = happyShift action_232 +action_671 (221) = happyShift action_233 +action_671 (222) = happyShift action_234 +action_671 (223) = happyShift action_235 +action_671 (224) = happyShift action_236 +action_671 (225) = happyShift action_237 +action_671 (226) = happyShift action_238 +action_671 (227) = happyShift action_239 +action_671 (229) = happyShift action_240 +action_671 (230) = happyShift action_241 +action_671 (231) = happyShift action_242 +action_671 (232) = happyShift action_243 +action_671 (233) = happyShift action_244 +action_671 (234) = happyShift action_245 +action_671 (235) = happyShift action_246 +action_671 (236) = happyShift action_247 +action_671 (237) = happyShift action_248 +action_671 (238) = happyShift action_249 +action_671 (239) = happyShift action_250 +action_671 (240) = happyShift action_251 +action_671 (241) = happyShift action_252 +action_671 (242) = happyShift action_253 +action_671 (243) = happyShift action_254 +action_671 (244) = happyShift action_255 +action_671 (245) = happyShift action_256 +action_671 (246) = happyShift action_257 +action_671 (247) = happyShift action_258 +action_671 (248) = happyShift action_259 +action_671 (249) = happyShift action_260 +action_671 (252) = happyShift action_261 +action_671 (262) = happyShift action_262 +action_671 (263) = happyShift action_263 +action_671 (35) = happyGoto action_579 +action_671 (68) = happyGoto action_679 +action_671 _ = happyFail (happyExpListPerState 671) + +action_672 _ = happyReduce_194 + +action_673 (218) = happyShift action_230 +action_673 (219) = happyShift action_231 +action_673 (220) = happyShift action_232 +action_673 (221) = happyShift action_233 +action_673 (222) = happyShift action_234 +action_673 (223) = happyShift action_235 +action_673 (224) = happyShift action_236 +action_673 (225) = happyShift action_237 +action_673 (226) = happyShift action_238 +action_673 (227) = happyShift action_239 +action_673 (229) = happyShift action_240 +action_673 (230) = happyShift action_241 +action_673 (231) = happyShift action_242 +action_673 (232) = happyShift action_243 +action_673 (233) = happyShift action_244 +action_673 (234) = happyShift action_245 +action_673 (235) = happyShift action_246 +action_673 (236) = happyShift action_247 +action_673 (237) = happyShift action_248 +action_673 (238) = happyShift action_249 +action_673 (239) = happyShift action_250 +action_673 (240) = happyShift action_251 +action_673 (241) = happyShift action_252 +action_673 (242) = happyShift action_253 +action_673 (243) = happyShift action_254 +action_673 (244) = happyShift action_255 +action_673 (245) = happyShift action_256 +action_673 (246) = happyShift action_257 +action_673 (247) = happyShift action_258 +action_673 (248) = happyShift action_259 +action_673 (249) = happyShift action_260 +action_673 (252) = happyShift action_261 +action_673 (262) = happyShift action_262 +action_673 (263) = happyShift action_263 +action_673 (35) = happyGoto action_579 +action_673 (68) = happyGoto action_580 +action_673 (157) = happyGoto action_678 +action_673 (186) = happyGoto action_582 +action_673 _ = happyFail (happyExpListPerState 673) + +action_674 (194) = happyShift action_95 +action_674 (196) = happyShift action_96 +action_674 (198) = happyShift action_97 +action_674 (214) = happyShift action_98 +action_674 (215) = happyShift action_99 +action_674 (216) = happyShift action_100 +action_674 (218) = happyShift action_101 +action_674 (219) = happyShift action_102 +action_674 (220) = happyShift action_103 +action_674 (224) = happyShift action_104 +action_674 (226) = happyShift action_46 +action_674 (230) = happyShift action_105 +action_674 (232) = happyShift action_106 +action_674 (238) = happyShift action_107 +action_674 (241) = happyShift action_108 +action_674 (242) = happyShift action_109 +action_674 (244) = happyShift action_110 +action_674 (245) = happyShift action_111 +action_674 (247) = happyShift action_52 +action_674 (251) = happyShift action_112 +action_674 (252) = happyShift action_113 +action_674 (253) = happyShift action_114 +action_674 (254) = happyShift action_54 +action_674 (255) = happyShift action_55 +action_674 (256) = happyShift action_115 +action_674 (257) = happyShift action_116 +action_674 (260) = happyShift action_117 +action_674 (261) = happyShift action_56 +action_674 (262) = happyShift action_57 +action_674 (263) = happyShift action_58 +action_674 (264) = happyShift action_59 +action_674 (265) = happyShift action_60 +action_674 (27) = happyGoto action_74 +action_674 (29) = happyGoto action_75 +action_674 (33) = happyGoto action_76 +action_674 (36) = happyGoto action_77 +action_674 (37) = happyGoto action_78 +action_674 (38) = happyGoto action_79 +action_674 (39) = happyGoto action_80 +action_674 (41) = happyGoto action_81 +action_674 (56) = happyGoto action_677 +action_674 (57) = happyGoto action_122 +action_674 (58) = happyGoto action_83 +action_674 (60) = happyGoto action_84 +action_674 (61) = happyGoto action_85 +action_674 (62) = happyGoto action_86 +action_674 (63) = happyGoto action_87 +action_674 (64) = happyGoto action_88 +action_674 (65) = happyGoto action_89 +action_674 (75) = happyGoto action_90 +action_674 (76) = happyGoto action_91 +action_674 (129) = happyGoto action_93 +action_674 (131) = happyGoto action_94 +action_674 _ = happyFail (happyExpListPerState 674) + +action_675 _ = happyReduce_307 + +action_676 _ = happyReduce_414 + +action_677 _ = happyReduce_195 + +action_678 (197) = happyShift action_702 +action_678 _ = happyFail (happyExpListPerState 678) + +action_679 _ = happyReduce_422 + +action_680 _ = happyReduce_205 + +action_681 (194) = happyShift action_95 +action_681 (196) = happyShift action_96 +action_681 (198) = happyShift action_97 +action_681 (214) = happyShift action_98 +action_681 (215) = happyShift action_99 +action_681 (216) = happyShift action_100 +action_681 (218) = happyShift action_101 +action_681 (219) = happyShift action_102 +action_681 (220) = happyShift action_103 +action_681 (224) = happyShift action_104 +action_681 (226) = happyShift action_46 +action_681 (230) = happyShift action_105 +action_681 (232) = happyShift action_106 +action_681 (238) = happyShift action_107 +action_681 (241) = happyShift action_108 +action_681 (242) = happyShift action_109 +action_681 (244) = happyShift action_110 +action_681 (245) = happyShift action_111 +action_681 (247) = happyShift action_52 +action_681 (251) = happyShift action_112 +action_681 (252) = happyShift action_113 +action_681 (253) = happyShift action_114 +action_681 (254) = happyShift action_54 +action_681 (255) = happyShift action_55 +action_681 (256) = happyShift action_115 +action_681 (257) = happyShift action_116 +action_681 (260) = happyShift action_117 +action_681 (261) = happyShift action_56 +action_681 (262) = happyShift action_57 +action_681 (263) = happyShift action_58 +action_681 (264) = happyShift action_59 +action_681 (265) = happyShift action_60 +action_681 (27) = happyGoto action_74 +action_681 (29) = happyGoto action_75 +action_681 (33) = happyGoto action_76 +action_681 (36) = happyGoto action_77 +action_681 (37) = happyGoto action_78 +action_681 (38) = happyGoto action_79 +action_681 (39) = happyGoto action_80 +action_681 (41) = happyGoto action_81 +action_681 (55) = happyGoto action_701 +action_681 (56) = happyGoto action_513 +action_681 (57) = happyGoto action_122 +action_681 (58) = happyGoto action_83 +action_681 (60) = happyGoto action_84 +action_681 (61) = happyGoto action_85 +action_681 (62) = happyGoto action_86 +action_681 (63) = happyGoto action_87 +action_681 (64) = happyGoto action_88 +action_681 (65) = happyGoto action_89 +action_681 (75) = happyGoto action_90 +action_681 (76) = happyGoto action_91 +action_681 (129) = happyGoto action_93 +action_681 (131) = happyGoto action_94 +action_681 _ = happyFail (happyExpListPerState 681) + +action_682 _ = happyReduce_170 + +action_683 (194) = happyShift action_95 +action_683 (196) = happyShift action_96 +action_683 (198) = happyShift action_97 +action_683 (214) = happyShift action_98 +action_683 (215) = happyShift action_99 +action_683 (216) = happyShift action_100 +action_683 (218) = happyShift action_101 +action_683 (219) = happyShift action_102 +action_683 (220) = happyShift action_103 +action_683 (224) = happyShift action_104 +action_683 (226) = happyShift action_46 +action_683 (230) = happyShift action_105 +action_683 (232) = happyShift action_106 +action_683 (238) = happyShift action_107 +action_683 (241) = happyShift action_108 +action_683 (242) = happyShift action_109 +action_683 (244) = happyShift action_110 +action_683 (245) = happyShift action_111 +action_683 (247) = happyShift action_52 +action_683 (251) = happyShift action_112 +action_683 (252) = happyShift action_113 +action_683 (253) = happyShift action_114 +action_683 (254) = happyShift action_54 +action_683 (255) = happyShift action_55 +action_683 (256) = happyShift action_115 +action_683 (257) = happyShift action_116 +action_683 (260) = happyShift action_117 +action_683 (261) = happyShift action_56 +action_683 (262) = happyShift action_57 +action_683 (263) = happyShift action_58 +action_683 (264) = happyShift action_59 +action_683 (265) = happyShift action_60 +action_683 (27) = happyGoto action_74 +action_683 (29) = happyGoto action_75 +action_683 (33) = happyGoto action_76 +action_683 (36) = happyGoto action_77 +action_683 (37) = happyGoto action_78 +action_683 (38) = happyGoto action_79 +action_683 (39) = happyGoto action_80 +action_683 (41) = happyGoto action_81 +action_683 (55) = happyGoto action_680 +action_683 (56) = happyGoto action_513 +action_683 (57) = happyGoto action_122 +action_683 (58) = happyGoto action_83 +action_683 (60) = happyGoto action_84 +action_683 (61) = happyGoto action_85 +action_683 (62) = happyGoto action_86 +action_683 (63) = happyGoto action_87 +action_683 (64) = happyGoto action_88 +action_683 (65) = happyGoto action_89 +action_683 (75) = happyGoto action_90 +action_683 (76) = happyGoto action_91 +action_683 (129) = happyGoto action_93 +action_683 (131) = happyGoto action_94 +action_683 _ = happyFail (happyExpListPerState 683) + +action_684 _ = happyReduce_379 + +action_685 (194) = happyShift action_95 +action_685 (196) = happyShift action_96 +action_685 (198) = happyShift action_97 +action_685 (214) = happyShift action_98 +action_685 (215) = happyShift action_99 +action_685 (216) = happyShift action_100 +action_685 (218) = happyShift action_101 +action_685 (219) = happyShift action_102 +action_685 (220) = happyShift action_103 +action_685 (224) = happyShift action_104 +action_685 (226) = happyShift action_46 +action_685 (230) = happyShift action_105 +action_685 (232) = happyShift action_106 +action_685 (238) = happyShift action_107 +action_685 (241) = happyShift action_108 +action_685 (242) = happyShift action_109 +action_685 (244) = happyShift action_110 +action_685 (245) = happyShift action_111 +action_685 (247) = happyShift action_52 +action_685 (251) = happyShift action_112 +action_685 (252) = happyShift action_113 +action_685 (253) = happyShift action_114 +action_685 (254) = happyShift action_54 +action_685 (255) = happyShift action_55 +action_685 (256) = happyShift action_115 +action_685 (257) = happyShift action_116 +action_685 (260) = happyShift action_117 +action_685 (261) = happyShift action_56 +action_685 (262) = happyShift action_57 +action_685 (263) = happyShift action_58 +action_685 (264) = happyShift action_59 +action_685 (265) = happyShift action_60 +action_685 (27) = happyGoto action_74 +action_685 (29) = happyGoto action_75 +action_685 (33) = happyGoto action_76 +action_685 (36) = happyGoto action_77 +action_685 (37) = happyGoto action_78 +action_685 (38) = happyGoto action_79 +action_685 (39) = happyGoto action_80 +action_685 (41) = happyGoto action_81 +action_685 (55) = happyGoto action_700 +action_685 (56) = happyGoto action_513 +action_685 (57) = happyGoto action_122 +action_685 (58) = happyGoto action_83 +action_685 (60) = happyGoto action_84 +action_685 (61) = happyGoto action_85 +action_685 (62) = happyGoto action_86 +action_685 (63) = happyGoto action_87 +action_685 (64) = happyGoto action_88 +action_685 (65) = happyGoto action_89 +action_685 (75) = happyGoto action_90 +action_685 (76) = happyGoto action_91 +action_685 (129) = happyGoto action_93 +action_685 (131) = happyGoto action_94 +action_685 _ = happyFail (happyExpListPerState 685) + +action_686 _ = happyReduce_389 + +action_687 (204) = happyShift action_683 +action_687 (210) = happyShift action_434 +action_687 (73) = happyGoto action_663 +action_687 (74) = happyGoto action_664 +action_687 (80) = happyGoto action_665 +action_687 (133) = happyGoto action_666 +action_687 (163) = happyGoto action_667 +action_687 _ = happyFail (happyExpListPerState 687) + +action_688 (205) = happyShift action_293 +action_688 (207) = happyShift action_295 +action_688 (216) = happyShift action_296 +action_688 (258) = happyShift action_297 +action_688 (259) = happyShift action_298 +action_688 (31) = happyGoto action_351 +action_688 _ = happyReduce_402 + +action_689 (201) = happyShift action_698 +action_689 (202) = happyShift action_699 +action_689 _ = happyFail (happyExpListPerState 689) + +action_690 (254) = happyShift action_63 +action_690 (28) = happyGoto action_697 +action_690 _ = happyFail (happyExpListPerState 690) + +action_691 _ = happyReduce_265 + +action_692 _ = happyReduce_142 + +action_693 (201) = happyShift action_696 +action_693 _ = happyFail (happyExpListPerState 693) + +action_694 _ = happyReduce_144 + +action_695 _ = happyReduce_311 + +action_696 _ = happyReduce_148 + +action_697 _ = happyReduce_420 + +action_698 _ = happyReduce_244 + +action_699 _ = happyReduce_246 + +action_700 _ = happyReduce_207 + +action_701 _ = happyReduce_169 + +action_702 _ = happyReduce_196 + +happyReduce_23 = happyMonadReduce 1 26 happyReduction_23 +happyReduction_23 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( upperToModuleName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn26 r)) + +happyReduce_24 = happyMonadReduce 1 26 happyReduction_24 +happyReduction_24 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( upperToModuleName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn26 r)) + +happyReduce_25 = happyMonadReduce 1 27 happyReduction_25 +happyReduction_25 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedProperName <$> toQualifiedName N.ProperName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn27 r)) + +happyReduce_26 = happyMonadReduce 1 27 happyReduction_26 +happyReduction_26 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedProperName <$> toQualifiedName N.ProperName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn27 r)) + +happyReduce_27 = happyMonadReduce 1 28 happyReduction_27 +happyReduction_27 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( properName <$> toName N.ProperName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn28 r)) + +happyReduce_28 = happyMonadReduce 1 29 happyReduction_28 +happyReduction_28 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_29 = happyMonadReduce 1 29 happyReduction_29 +happyReduction_29 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_30 = happyMonadReduce 1 29 happyReduction_30 +happyReduction_30 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_31 = happyMonadReduce 1 29 happyReduction_31 +happyReduction_31 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_32 = happyMonadReduce 1 29 happyReduction_32 +happyReduction_32 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_33 = happyMonadReduce 1 29 happyReduction_33 +happyReduction_33 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_34 = happyMonadReduce 1 29 happyReduction_34 +happyReduction_34 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_35 = happyMonadReduce 1 29 happyReduction_35 +happyReduction_35 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toQualifiedName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_36 = happyMonadReduce 1 30 happyReduction_36 +happyReduction_36 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_37 = happyMonadReduce 1 30 happyReduction_37 +happyReduction_37 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_38 = happyMonadReduce 1 30 happyReduction_38 +happyReduction_38 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_39 = happyMonadReduce 1 30 happyReduction_39 +happyReduction_39 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_40 = happyMonadReduce 1 30 happyReduction_40 +happyReduction_40 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_41 = happyMonadReduce 1 30 happyReduction_41 +happyReduction_41 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_42 = happyMonadReduce 1 30 happyReduction_42 +happyReduction_42 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_43 = happyMonadReduce 1 31 happyReduction_43 +happyReduction_43 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_44 = happyMonadReduce 1 31 happyReduction_44 +happyReduction_44 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_45 = happyMonadReduce 1 31 happyReduction_45 +happyReduction_45 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_46 = happyMonadReduce 1 31 happyReduction_46 +happyReduction_46 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_47 = happyMonadReduce 1 31 happyReduction_47 +happyReduction_47 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_48 = happyMonadReduce 1 32 happyReduction_48 +happyReduction_48 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( opName <$> toName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn32 r)) + +happyReduce_49 = happyMonadReduce 1 32 happyReduction_49 +happyReduction_49 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( opName <$> toName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn32 r)) + +happyReduce_50 = happyMonadReduce 1 32 happyReduction_50 +happyReduction_50 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( opName <$> toName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn32 r)) + +happyReduce_51 = happyMonadReduce 1 32 happyReduction_51 +happyReduction_51 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( opName <$> toName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn32 r)) + +happyReduce_52 = happyMonadReduce 1 33 happyReduction_52 +happyReduction_52 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_53 = happyMonadReduce 1 33 happyReduction_53 +happyReduction_53 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_54 = happyMonadReduce 1 33 happyReduction_54 +happyReduction_54 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( qualifiedOpName <$> toQualifiedName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn31 r)) + +happyReduce_55 = happyMonadReduce 1 34 happyReduction_55 +happyReduction_55 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( opName <$> toName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn32 r)) + +happyReduce_56 = happyMonadReduce 1 34 happyReduction_56 +happyReduction_56 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( opName <$> toName N.OpName happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn32 r)) + +happyReduce_57 = happySpecReduce_1 35 happyReduction_57 +happyReduction_57 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_57 _ = notHappyAtAll + +happyReduce_58 = happySpecReduce_1 35 happyReduction_58 +happyReduction_58 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_58 _ = notHappyAtAll + +happyReduce_59 = happySpecReduce_1 35 happyReduction_59 +happyReduction_59 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_59 _ = notHappyAtAll + +happyReduce_60 = happySpecReduce_1 35 happyReduction_60 +happyReduction_60 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_60 _ = notHappyAtAll + +happyReduce_61 = happySpecReduce_1 35 happyReduction_61 +happyReduction_61 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_61 _ = notHappyAtAll + +happyReduce_62 = happySpecReduce_1 35 happyReduction_62 +happyReduction_62 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_62 _ = notHappyAtAll + +happyReduce_63 = happySpecReduce_1 35 happyReduction_63 +happyReduction_63 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_63 _ = notHappyAtAll + +happyReduce_64 = happySpecReduce_1 35 happyReduction_64 +happyReduction_64 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_64 _ = notHappyAtAll + +happyReduce_65 = happySpecReduce_1 35 happyReduction_65 +happyReduction_65 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_65 _ = notHappyAtAll + +happyReduce_66 = happySpecReduce_1 35 happyReduction_66 +happyReduction_66 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_66 _ = notHappyAtAll + +happyReduce_67 = happySpecReduce_1 35 happyReduction_67 +happyReduction_67 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_67 _ = notHappyAtAll + +happyReduce_68 = happySpecReduce_1 35 happyReduction_68 +happyReduction_68 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_68 _ = notHappyAtAll + +happyReduce_69 = happySpecReduce_1 35 happyReduction_69 +happyReduction_69 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_69 _ = notHappyAtAll + +happyReduce_70 = happySpecReduce_1 35 happyReduction_70 +happyReduction_70 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_70 _ = notHappyAtAll + +happyReduce_71 = happySpecReduce_1 35 happyReduction_71 +happyReduction_71 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_71 _ = notHappyAtAll + +happyReduce_72 = happySpecReduce_1 35 happyReduction_72 +happyReduction_72 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_72 _ = notHappyAtAll + +happyReduce_73 = happySpecReduce_1 35 happyReduction_73 +happyReduction_73 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_73 _ = notHappyAtAll + +happyReduce_74 = happySpecReduce_1 35 happyReduction_74 +happyReduction_74 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_74 _ = notHappyAtAll + +happyReduce_75 = happySpecReduce_1 35 happyReduction_75 +happyReduction_75 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_75 _ = notHappyAtAll + +happyReduce_76 = happySpecReduce_1 35 happyReduction_76 +happyReduction_76 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_76 _ = notHappyAtAll + +happyReduce_77 = happySpecReduce_1 35 happyReduction_77 +happyReduction_77 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_77 _ = notHappyAtAll + +happyReduce_78 = happySpecReduce_1 35 happyReduction_78 +happyReduction_78 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_78 _ = notHappyAtAll + +happyReduce_79 = happySpecReduce_1 35 happyReduction_79 +happyReduction_79 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_79 _ = notHappyAtAll + +happyReduce_80 = happySpecReduce_1 35 happyReduction_80 +happyReduction_80 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_80 _ = notHappyAtAll + +happyReduce_81 = happySpecReduce_1 35 happyReduction_81 +happyReduction_81 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_81 _ = notHappyAtAll + +happyReduce_82 = happySpecReduce_1 35 happyReduction_82 +happyReduction_82 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_82 _ = notHappyAtAll + +happyReduce_83 = happySpecReduce_1 35 happyReduction_83 +happyReduction_83 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_83 _ = notHappyAtAll + +happyReduce_84 = happySpecReduce_1 35 happyReduction_84 +happyReduction_84 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_84 _ = notHappyAtAll + +happyReduce_85 = happySpecReduce_1 35 happyReduction_85 +happyReduction_85 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_85 _ = notHappyAtAll + +happyReduce_86 = happySpecReduce_1 35 happyReduction_86 +happyReduction_86 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_86 _ = notHappyAtAll + +happyReduce_87 = happySpecReduce_1 35 happyReduction_87 +happyReduction_87 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_87 _ = notHappyAtAll + +happyReduce_88 = happySpecReduce_1 35 happyReduction_88 +happyReduction_88 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_88 _ = notHappyAtAll + +happyReduce_89 = happySpecReduce_1 35 happyReduction_89 +happyReduction_89 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_89 _ = notHappyAtAll + +happyReduce_90 = happySpecReduce_1 35 happyReduction_90 +happyReduction_90 (HappyTerminal happy_var_1) + = HappyAbsSyn35 + (toLabel happy_var_1 + ) +happyReduction_90 _ = notHappyAtAll + +happyReduce_91 = happyMonadReduce 1 36 happyReduction_91 +happyReduction_91 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toName Ident happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn30 r)) + +happyReduce_92 = happySpecReduce_1 37 happyReduction_92 +happyReduction_92 (HappyTerminal happy_var_1) + = HappyAbsSyn37 + (toString happy_var_1 + ) +happyReduction_92 _ = notHappyAtAll + +happyReduce_93 = happySpecReduce_1 37 happyReduction_93 +happyReduction_93 (HappyTerminal happy_var_1) + = HappyAbsSyn37 + (toString happy_var_1 + ) +happyReduction_93 _ = notHappyAtAll + +happyReduce_94 = happySpecReduce_1 38 happyReduction_94 +happyReduction_94 (HappyTerminal happy_var_1) + = HappyAbsSyn38 + (toChar happy_var_1 + ) +happyReduction_94 _ = notHappyAtAll + +happyReduce_95 = happySpecReduce_1 39 happyReduction_95 +happyReduction_95 (HappyTerminal happy_var_1) + = HappyAbsSyn39 + (toNumber happy_var_1 + ) +happyReduction_95 _ = notHappyAtAll + +happyReduce_96 = happySpecReduce_1 39 happyReduction_96 +happyReduction_96 (HappyTerminal happy_var_1) + = HappyAbsSyn39 + (toNumber happy_var_1 + ) +happyReduction_96 _ = notHappyAtAll + +happyReduce_97 = happySpecReduce_1 40 happyReduction_97 +happyReduction_97 (HappyTerminal happy_var_1) + = HappyAbsSyn40 + (toInt happy_var_1 + ) +happyReduction_97 _ = notHappyAtAll + +happyReduce_98 = happySpecReduce_1 41 happyReduction_98 +happyReduction_98 (HappyTerminal happy_var_1) + = HappyAbsSyn41 + (toBoolean happy_var_1 + ) +happyReduction_98 _ = notHappyAtAll + +happyReduce_99 = happySpecReduce_1 41 happyReduction_99 +happyReduction_99 (HappyTerminal happy_var_1) + = HappyAbsSyn41 + (toBoolean happy_var_1 + ) +happyReduction_99 _ = notHappyAtAll + +happyReduce_100 = happySpecReduce_1 42 happyReduction_100 +happyReduction_100 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (happy_var_1 + ) +happyReduction_100 _ = notHappyAtAll + +happyReduce_101 = happySpecReduce_3 42 happyReduction_101 +happyReduction_101 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (TypeKinded () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_101 _ _ _ = notHappyAtAll + +happyReduce_102 = happySpecReduce_1 43 happyReduction_102 +happyReduction_102 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (happy_var_1 + ) +happyReduction_102 _ = notHappyAtAll + +happyReduce_103 = happyReduce 4 43 happyReduction_103 +happyReduction_103 ((HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn137 happy_var_2) `HappyStk` + (HappyAbsSyn54 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn42 + (TypeForall () happy_var_1 happy_var_2 happy_var_3 happy_var_4 + ) `HappyStk` happyRest + +happyReduce_104 = happySpecReduce_1 44 happyReduction_104 +happyReduction_104 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (happy_var_1 + ) +happyReduction_104 _ = notHappyAtAll + +happyReduce_105 = happySpecReduce_3 44 happyReduction_105 +happyReduction_105 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (TypeArr () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_105 _ _ _ = notHappyAtAll + +happyReduce_106 = happyMonadReduce 3 44 happyReduction_106 +happyReduction_106 ((HappyAbsSyn42 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn42 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( do cs <- toConstraint happy_var_1; pure $ TypeConstrained () cs happy_var_2 happy_var_3)) + ) (\r -> happyReturn (HappyAbsSyn42 r)) + +happyReduce_107 = happySpecReduce_1 45 happyReduction_107 +happyReduction_107 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (happy_var_1 + ) +happyReduction_107 _ = notHappyAtAll + +happyReduce_108 = happySpecReduce_3 45 happyReduction_108 +happyReduction_108 (HappyAbsSyn42 happy_var_3) + (HappyAbsSyn31 happy_var_2) + (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (TypeOp () happy_var_1 (getQualifiedOpName happy_var_2) happy_var_3 + ) +happyReduction_108 _ _ _ = notHappyAtAll + +happyReduce_109 = happySpecReduce_1 46 happyReduction_109 +happyReduction_109 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (happy_var_1 + ) +happyReduction_109 _ = notHappyAtAll + +happyReduce_110 = happySpecReduce_2 46 happyReduction_110 +happyReduction_110 (HappyAbsSyn40 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (uncurry (TypeInt () (Just happy_var_1)) (second negate happy_var_2) + ) +happyReduction_110 _ _ = notHappyAtAll + +happyReduce_111 = happySpecReduce_1 47 happyReduction_111 +happyReduction_111 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (happy_var_1 + ) +happyReduction_111 _ = notHappyAtAll + +happyReduce_112 = happySpecReduce_2 47 happyReduction_112 +happyReduction_112 (HappyAbsSyn42 happy_var_2) + (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn42 + (TypeApp () happy_var_1 happy_var_2 + ) +happyReduction_112 _ _ = notHappyAtAll + +happyReduce_113 = happySpecReduce_1 48 happyReduction_113 +happyReduction_113 (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeWildcard () happy_var_1 + ) +happyReduction_113 _ = notHappyAtAll + +happyReduce_114 = happySpecReduce_1 48 happyReduction_114 +happyReduction_114 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn42 + (TypeVar () happy_var_1 + ) +happyReduction_114 _ = notHappyAtAll + +happyReduce_115 = happySpecReduce_1 48 happyReduction_115 +happyReduction_115 (HappyAbsSyn27 happy_var_1) + = HappyAbsSyn42 + (TypeConstructor () (getQualifiedProperName happy_var_1) + ) +happyReduction_115 _ = notHappyAtAll + +happyReduce_116 = happySpecReduce_1 48 happyReduction_116 +happyReduction_116 (HappyAbsSyn31 happy_var_1) + = HappyAbsSyn42 + (TypeOpName () (getQualifiedOpName happy_var_1) + ) +happyReduction_116 _ = notHappyAtAll + +happyReduce_117 = happySpecReduce_1 48 happyReduction_117 +happyReduction_117 (HappyAbsSyn37 happy_var_1) + = HappyAbsSyn42 + (uncurry (TypeString ()) happy_var_1 + ) +happyReduction_117 _ = notHappyAtAll + +happyReduce_118 = happySpecReduce_1 48 happyReduction_118 +happyReduction_118 (HappyAbsSyn40 happy_var_1) + = HappyAbsSyn42 + (uncurry (TypeInt () Nothing) happy_var_1 + ) +happyReduction_118 _ = notHappyAtAll + +happyReduce_119 = happySpecReduce_1 48 happyReduction_119 +happyReduction_119 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn42 + (TypeHole () happy_var_1 + ) +happyReduction_119 _ = notHappyAtAll + +happyReduce_120 = happySpecReduce_1 48 happyReduction_120 +happyReduction_120 (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeArrName () happy_var_1 + ) +happyReduction_120 _ = notHappyAtAll + +happyReduce_121 = happySpecReduce_3 48 happyReduction_121 +happyReduction_121 (HappyTerminal happy_var_3) + (HappyAbsSyn50 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeRecord () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_121 _ _ _ = notHappyAtAll + +happyReduce_122 = happySpecReduce_3 48 happyReduction_122 +happyReduction_122 (HappyTerminal happy_var_3) + (HappyAbsSyn50 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeRow () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_122 _ _ _ = notHappyAtAll + +happyReduce_123 = happySpecReduce_3 48 happyReduction_123 +happyReduction_123 (HappyTerminal happy_var_3) + (HappyAbsSyn42 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeParens () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_123 _ _ _ = notHappyAtAll + +happyReduce_124 = happyReduce 5 48 happyReduction_124 +happyReduction_124 ((HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn42 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn42 + (TypeParens () (Wrapped happy_var_1 (TypeKinded () happy_var_2 happy_var_3 happy_var_4) happy_var_5) + ) `HappyStk` happyRest + +happyReduce_125 = happySpecReduce_1 49 happyReduction_125 +happyReduction_125 (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeWildcard () happy_var_1 + ) +happyReduction_125 _ = notHappyAtAll + +happyReduce_126 = happySpecReduce_1 49 happyReduction_126 +happyReduction_126 (HappyAbsSyn27 happy_var_1) + = HappyAbsSyn42 + (TypeConstructor () (getQualifiedProperName happy_var_1) + ) +happyReduction_126 _ = notHappyAtAll + +happyReduce_127 = happySpecReduce_1 49 happyReduction_127 +happyReduction_127 (HappyAbsSyn31 happy_var_1) + = HappyAbsSyn42 + (TypeOpName () (getQualifiedOpName happy_var_1) + ) +happyReduction_127 _ = notHappyAtAll + +happyReduce_128 = happySpecReduce_1 49 happyReduction_128 +happyReduction_128 (HappyAbsSyn40 happy_var_1) + = HappyAbsSyn42 + (uncurry (TypeInt () Nothing) happy_var_1 + ) +happyReduction_128 _ = notHappyAtAll + +happyReduce_129 = happySpecReduce_1 49 happyReduction_129 +happyReduction_129 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn42 + (TypeHole () happy_var_1 + ) +happyReduction_129 _ = notHappyAtAll + +happyReduce_130 = happySpecReduce_3 49 happyReduction_130 +happyReduction_130 (HappyTerminal happy_var_3) + (HappyAbsSyn50 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeRecord () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_130 _ _ _ = notHappyAtAll + +happyReduce_131 = happySpecReduce_3 49 happyReduction_131 +happyReduction_131 (HappyTerminal happy_var_3) + (HappyAbsSyn50 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeRow () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_131 _ _ _ = notHappyAtAll + +happyReduce_132 = happySpecReduce_3 49 happyReduction_132 +happyReduction_132 (HappyTerminal happy_var_3) + (HappyAbsSyn42 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn42 + (TypeParens () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_132 _ _ _ = notHappyAtAll + +happyReduce_133 = happyReduce 5 49 happyReduction_133 +happyReduction_133 ((HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn42 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn42 + (TypeParens () (Wrapped happy_var_1 (TypeKinded () happy_var_2 happy_var_3 happy_var_4) happy_var_5) + ) `HappyStk` happyRest + +happyReduce_134 = happySpecReduce_0 50 happyReduction_134 +happyReduction_134 = HappyAbsSyn50 + (Row Nothing Nothing + ) + +happyReduce_135 = happySpecReduce_2 50 happyReduction_135 +happyReduction_135 (HappyAbsSyn42 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn50 + (Row Nothing (Just (happy_var_1, happy_var_2)) + ) +happyReduction_135 _ _ = notHappyAtAll + +happyReduce_136 = happySpecReduce_1 50 happyReduction_136 +happyReduction_136 (HappyAbsSyn159 happy_var_1) + = HappyAbsSyn50 + (Row (Just happy_var_1) Nothing + ) +happyReduction_136 _ = notHappyAtAll + +happyReduce_137 = happySpecReduce_3 50 happyReduction_137 +happyReduction_137 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn159 happy_var_1) + = HappyAbsSyn50 + (Row (Just happy_var_1) (Just (happy_var_2, happy_var_3)) + ) +happyReduction_137 _ _ _ = notHappyAtAll + +happyReduce_138 = happySpecReduce_3 51 happyReduction_138 +happyReduction_138 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn51 + (Labeled happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_138 _ _ _ = notHappyAtAll + +happyReduce_139 = happySpecReduce_1 52 happyReduction_139 +happyReduction_139 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn52 + (TypeVarName (Nothing, happy_var_1) + ) +happyReduction_139 _ = notHappyAtAll + +happyReduce_140 = happySpecReduce_2 52 happyReduction_140 +happyReduction_140 (HappyAbsSyn30 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn52 + (TypeVarName (Just happy_var_1, happy_var_2) + ) +happyReduction_140 _ _ = notHappyAtAll + +happyReduce_141 = happyMonadReduce 5 52 happyReduction_141 +happyReduction_141 ((HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn30 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_4 *> pure (TypeVarKinded (Wrapped happy_var_1 (Labeled (Nothing, happy_var_2) happy_var_3 happy_var_4) happy_var_5)))) + ) (\r -> happyReturn (HappyAbsSyn52 r)) + +happyReduce_142 = happyMonadReduce 6 52 happyReduction_142 +happyReduction_142 ((HappyTerminal happy_var_6) `HappyStk` + (HappyAbsSyn42 happy_var_5) `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn30 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_5 *> pure (TypeVarKinded (Wrapped happy_var_1 (Labeled (Just happy_var_2, happy_var_3) happy_var_4 happy_var_5) happy_var_6)))) + ) (\r -> happyReturn (HappyAbsSyn52 r)) + +happyReduce_143 = happySpecReduce_1 53 happyReduction_143 +happyReduction_143 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn52 + (TypeVarName (Nothing, happy_var_1) + ) +happyReduction_143 _ = notHappyAtAll + +happyReduce_144 = happyMonadReduce 5 53 happyReduction_144 +happyReduction_144 ((HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn30 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_4 *> pure (TypeVarKinded (Wrapped happy_var_1 (Labeled (Nothing, happy_var_2) happy_var_3 happy_var_4) happy_var_5)))) + ) (\r -> happyReturn (HappyAbsSyn52 r)) + +happyReduce_145 = happySpecReduce_1 54 happyReduction_145 +happyReduction_145 (HappyTerminal happy_var_1) + = HappyAbsSyn54 + (happy_var_1 + ) +happyReduction_145 _ = notHappyAtAll + +happyReduce_146 = happySpecReduce_1 54 happyReduction_146 +happyReduction_146 (HappyTerminal happy_var_1) + = HappyAbsSyn54 + (happy_var_1 + ) +happyReduction_146 _ = notHappyAtAll + +happyReduce_147 = happySpecReduce_1 55 happyReduction_147 +happyReduction_147 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn55 + (Where happy_var_1 Nothing + ) +happyReduction_147 _ = notHappyAtAll + +happyReduce_148 = happyReduce 5 55 happyReduction_148 +happyReduction_148 (_ `HappyStk` + (HappyAbsSyn145 happy_var_4) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn56 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn55 + (Where happy_var_1 (Just (happy_var_2, happy_var_4)) + ) `HappyStk` happyRest + +happyReduce_149 = happySpecReduce_1 56 happyReduction_149 +happyReduction_149 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_149 _ = notHappyAtAll + +happyReduce_150 = happySpecReduce_3 56 happyReduction_150 +happyReduction_150 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (ExprTyped () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_150 _ _ _ = notHappyAtAll + +happyReduce_151 = happySpecReduce_1 57 happyReduction_151 +happyReduction_151 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_151 _ = notHappyAtAll + +happyReduce_152 = happySpecReduce_3 57 happyReduction_152 +happyReduction_152 (HappyAbsSyn56 happy_var_3) + (HappyAbsSyn31 happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (ExprOp () happy_var_1 (getQualifiedOpName happy_var_2) happy_var_3 + ) +happyReduction_152 _ _ _ = notHappyAtAll + +happyReduce_153 = happySpecReduce_1 58 happyReduction_153 +happyReduction_153 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_153 _ = notHappyAtAll + +happyReduce_154 = happyReduce 5 58 happyReduction_154 +happyReduction_154 ((HappyAbsSyn56 happy_var_5) `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn56 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn56 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn56 + (ExprInfix () happy_var_1 (Wrapped happy_var_2 happy_var_3 happy_var_4) happy_var_5 + ) `HappyStk` happyRest + +happyReduce_155 = happySpecReduce_1 59 happyReduction_155 +happyReduction_155 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_155 _ = notHappyAtAll + +happyReduce_156 = happySpecReduce_3 59 happyReduction_156 +happyReduction_156 (HappyAbsSyn56 happy_var_3) + (HappyAbsSyn31 happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (ExprOp () happy_var_1 (getQualifiedOpName happy_var_2) happy_var_3 + ) +happyReduction_156 _ _ _ = notHappyAtAll + +happyReduce_157 = happySpecReduce_1 60 happyReduction_157 +happyReduction_157 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_157 _ = notHappyAtAll + +happyReduce_158 = happySpecReduce_2 60 happyReduction_158 +happyReduction_158 (HappyAbsSyn56 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn56 + (ExprNegate () happy_var_1 happy_var_2 + ) +happyReduction_158 _ _ = notHappyAtAll + +happyReduce_159 = happySpecReduce_1 61 happyReduction_159 +happyReduction_159 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_159 _ = notHappyAtAll + +happyReduce_160 = happySpecReduce_2 61 happyReduction_160 +happyReduction_160 (HappyAbsSyn56 happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (-- Record application/updates can introduce a function application + -- associated to the right, so we need to correct it. + case happy_var_2 of + ExprApp _ lhs rhs -> + ExprApp () (ExprApp () happy_var_1 lhs) rhs + _ -> ExprApp () happy_var_1 happy_var_2 + ) +happyReduction_160 _ _ = notHappyAtAll + +happyReduce_161 = happySpecReduce_3 61 happyReduction_161 +happyReduction_161 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (ExprVisibleTypeApp () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_161 _ _ _ = notHappyAtAll + +happyReduce_162 = happySpecReduce_1 62 happyReduction_162 +happyReduction_162 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_162 _ = notHappyAtAll + +happyReduce_163 = happyReduce 6 62 happyReduction_163 +happyReduction_163 ((HappyAbsSyn56 happy_var_6) `HappyStk` + (HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn56 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn56 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn56 + (ExprIf () (IfThenElse happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6) + ) `HappyStk` happyRest + +happyReduce_164 = happySpecReduce_1 62 happyReduction_164 +happyReduction_164 (HappyAbsSyn75 happy_var_1) + = HappyAbsSyn56 + (ExprDo () happy_var_1 + ) +happyReduction_164 _ = notHappyAtAll + +happyReduce_165 = happySpecReduce_3 62 happyReduction_165 +happyReduction_165 (HappyAbsSyn56 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn76 happy_var_1) + = HappyAbsSyn56 + (ExprAdo () $ uncurry AdoBlock happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_165 _ _ _ = notHappyAtAll + +happyReduce_166 = happyReduce 4 62 happyReduction_166 +happyReduction_166 ((HappyAbsSyn56 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn132 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn56 + (ExprLambda () (Lambda happy_var_1 happy_var_2 happy_var_3 happy_var_4) + ) `HappyStk` happyRest + +happyReduce_167 = happyReduce 6 62 happyReduction_167 +happyReduction_167 ((HappyAbsSyn56 happy_var_6) `HappyStk` + (HappyTerminal happy_var_5) `HappyStk` + _ `HappyStk` + (HappyAbsSyn145 happy_var_3) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn56 + (ExprLet () (LetIn happy_var_1 happy_var_3 happy_var_5 happy_var_6) + ) `HappyStk` happyRest + +happyReduce_168 = happyReduce 6 62 happyReduction_168 +happyReduction_168 (_ `HappyStk` + (HappyAbsSyn142 happy_var_5) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn152 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn56 + (ExprCase () (CaseOf happy_var_1 happy_var_2 happy_var_3 happy_var_5) + ) `HappyStk` happyRest + +happyReduce_169 = happyMonadReduce 8 62 happyReduction_169 +happyReduction_169 ((HappyAbsSyn55 happy_var_8) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_6) `HappyStk` + (HappyAbsSyn147 happy_var_5) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn152 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( addWarning (let (a,b) = whereRange happy_var_8 in [a, b]) WarnDeprecatedCaseOfOffsideSyntax *> pure (ExprCase () (CaseOf happy_var_1 happy_var_2 happy_var_3 (pure (happy_var_5, Unconditional happy_var_6 happy_var_8)))))) + ) (\r -> happyReturn (HappyAbsSyn56 r)) + +happyReduce_170 = happyMonadReduce 7 62 happyReduction_170 +happyReduction_170 ((HappyAbsSyn71 happy_var_7) `HappyStk` + _ `HappyStk` + (HappyAbsSyn147 happy_var_5) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn152 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( addWarning (let (a,b) = guardedRange happy_var_7 in [a, b]) WarnDeprecatedCaseOfOffsideSyntax *> pure (ExprCase () (CaseOf happy_var_1 happy_var_2 happy_var_3 (pure (happy_var_5, happy_var_7)))))) + ) (\r -> happyReturn (HappyAbsSyn56 r)) + +happyReduce_171 = happySpecReduce_1 63 happyReduction_171 +happyReduction_171 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_171 _ = notHappyAtAll + +happyReduce_172 = happySpecReduce_3 63 happyReduction_172 +happyReduction_172 (HappyTerminal happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (ExprApp () happy_var_1 (ExprRecord () (Wrapped happy_var_2 Nothing happy_var_3)) + ) +happyReduction_172 _ _ _ = notHappyAtAll + +happyReduce_173 = happyMonadReduce 4 63 happyReduction_173 +happyReduction_173 ((HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn158 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn56 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toRecordFields happy_var_3 >>= \case + Left xs -> pure $ ExprApp () happy_var_1 (ExprRecord () (Wrapped happy_var_2 (Just xs) happy_var_4)) + Right xs -> pure $ ExprRecordUpdate () happy_var_1 (Wrapped happy_var_2 xs happy_var_4))) + ) (\r -> happyReturn (HappyAbsSyn56 r)) + +happyReduce_174 = happySpecReduce_1 64 happyReduction_174 +happyReduction_174 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (happy_var_1 + ) +happyReduction_174 _ = notHappyAtAll + +happyReduce_175 = happySpecReduce_3 64 happyReduction_175 +happyReduction_175 (HappyAbsSyn155 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn56 + (ExprRecordAccessor () (RecordAccessor happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_175 _ _ _ = notHappyAtAll + +happyReduce_176 = happySpecReduce_1 65 happyReduction_176 +happyReduction_176 (HappyTerminal happy_var_1) + = HappyAbsSyn56 + (ExprSection () happy_var_1 + ) +happyReduction_176 _ = notHappyAtAll + +happyReduce_177 = happySpecReduce_1 65 happyReduction_177 +happyReduction_177 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn56 + (ExprHole () happy_var_1 + ) +happyReduction_177 _ = notHappyAtAll + +happyReduce_178 = happySpecReduce_1 65 happyReduction_178 +happyReduction_178 (HappyAbsSyn29 happy_var_1) + = HappyAbsSyn56 + (ExprIdent () happy_var_1 + ) +happyReduction_178 _ = notHappyAtAll + +happyReduce_179 = happySpecReduce_1 65 happyReduction_179 +happyReduction_179 (HappyAbsSyn27 happy_var_1) + = HappyAbsSyn56 + (ExprConstructor () (getQualifiedProperName happy_var_1) + ) +happyReduction_179 _ = notHappyAtAll + +happyReduce_180 = happySpecReduce_1 65 happyReduction_180 +happyReduction_180 (HappyAbsSyn31 happy_var_1) + = HappyAbsSyn56 + (ExprOpName () (getQualifiedOpName happy_var_1) + ) +happyReduction_180 _ = notHappyAtAll + +happyReduce_181 = happySpecReduce_1 65 happyReduction_181 +happyReduction_181 (HappyAbsSyn41 happy_var_1) + = HappyAbsSyn56 + (uncurry (ExprBoolean ()) happy_var_1 + ) +happyReduction_181 _ = notHappyAtAll + +happyReduce_182 = happySpecReduce_1 65 happyReduction_182 +happyReduction_182 (HappyAbsSyn38 happy_var_1) + = HappyAbsSyn56 + (uncurry (ExprChar ()) happy_var_1 + ) +happyReduction_182 _ = notHappyAtAll + +happyReduce_183 = happySpecReduce_1 65 happyReduction_183 +happyReduction_183 (HappyAbsSyn37 happy_var_1) + = HappyAbsSyn56 + (uncurry (ExprString ()) happy_var_1 + ) +happyReduction_183 _ = notHappyAtAll + +happyReduce_184 = happySpecReduce_1 65 happyReduction_184 +happyReduction_184 (HappyAbsSyn39 happy_var_1) + = HappyAbsSyn56 + (uncurry (ExprNumber ()) happy_var_1 + ) +happyReduction_184 _ = notHappyAtAll + +happyReduce_185 = happySpecReduce_1 65 happyReduction_185 +happyReduction_185 (HappyAbsSyn129 happy_var_1) + = HappyAbsSyn56 + (ExprArray () happy_var_1 + ) +happyReduction_185 _ = notHappyAtAll + +happyReduce_186 = happySpecReduce_1 65 happyReduction_186 +happyReduction_186 (HappyAbsSyn131 happy_var_1) + = HappyAbsSyn56 + (ExprRecord () happy_var_1 + ) +happyReduction_186 _ = notHappyAtAll + +happyReduce_187 = happySpecReduce_3 65 happyReduction_187 +happyReduction_187 (HappyTerminal happy_var_3) + (HappyAbsSyn56 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn56 + (ExprParens () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_187 _ _ _ = notHappyAtAll + +happyReduce_188 = happyMonadReduce 1 66 happyReduction_188 +happyReduction_188 ((HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( fmap RecordPun . toName Ident $ lblTok happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn66 r)) + +happyReduce_189 = happyMonadReduce 3 66 happyReduction_189 +happyReduction_189 (_ `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( addFailure [happy_var_2] ErrRecordUpdateInCtr *> pure (RecordPun $ unexpectedName $ lblTok happy_var_1))) + ) (\r -> happyReturn (HappyAbsSyn66 r)) + +happyReduce_190 = happySpecReduce_3 66 happyReduction_190 +happyReduction_190 (HappyAbsSyn56 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn66 + (RecordField happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_190 _ _ _ = notHappyAtAll + +happyReduce_191 = happySpecReduce_3 67 happyReduction_191 +happyReduction_191 (HappyAbsSyn56 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn67 + (Left (RecordField happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_191 _ _ _ = notHappyAtAll + +happyReduce_192 = happyMonadReduce 1 67 happyReduction_192 +happyReduction_192 ((HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( fmap (Left . RecordPun) . toName Ident $ lblTok happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn67 r)) + +happyReduce_193 = happySpecReduce_3 67 happyReduction_193 +happyReduction_193 (HappyAbsSyn56 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn67 + (Right (RecordUpdateLeaf happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_193 _ _ _ = notHappyAtAll + +happyReduce_194 = happyReduce 4 67 happyReduction_194 +happyReduction_194 ((HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn157 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn67 + (Right (RecordUpdateBranch happy_var_1 (Wrapped happy_var_2 happy_var_3 happy_var_4)) + ) `HappyStk` happyRest + +happyReduce_195 = happySpecReduce_3 68 happyReduction_195 +happyReduction_195 (HappyAbsSyn56 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn68 + (RecordUpdateLeaf happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_195 _ _ _ = notHappyAtAll + +happyReduce_196 = happyReduce 4 68 happyReduction_196 +happyReduction_196 ((HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn157 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn68 + (RecordUpdateBranch happy_var_1 (Wrapped happy_var_2 happy_var_3 happy_var_4) + ) `HappyStk` happyRest + +happyReduce_197 = happySpecReduce_3 69 happyReduction_197 +happyReduction_197 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn69 + (LetBindingSignature () (Labeled happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_197 _ _ _ = notHappyAtAll + +happyReduce_198 = happySpecReduce_2 69 happyReduction_198 +happyReduction_198 (HappyAbsSyn71 happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn69 + (LetBindingName () (ValueBindingFields happy_var_1 [] happy_var_2) + ) +happyReduction_198 _ _ = notHappyAtAll + +happyReduce_199 = happySpecReduce_3 69 happyReduction_199 +happyReduction_199 (HappyAbsSyn71 happy_var_3) + (HappyAbsSyn132 happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn69 + (LetBindingName () (ValueBindingFields happy_var_1 (NE.toList happy_var_2) happy_var_3) + ) +happyReduction_199 _ _ _ = notHappyAtAll + +happyReduce_200 = happySpecReduce_3 69 happyReduction_200 +happyReduction_200 (HappyAbsSyn55 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn69 + (LetBindingPattern () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_200 _ _ _ = notHappyAtAll + +happyReduce_201 = happySpecReduce_2 70 happyReduction_201 +happyReduction_201 (HappyAbsSyn71 happy_var_2) + (HappyAbsSyn147 happy_var_1) + = HappyAbsSyn70 + ((happy_var_1, happy_var_2) + ) +happyReduction_201 _ _ = notHappyAtAll + +happyReduce_202 = happySpecReduce_2 71 happyReduction_202 +happyReduction_202 (HappyAbsSyn55 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn71 + (Unconditional happy_var_1 happy_var_2 + ) +happyReduction_202 _ _ = notHappyAtAll + +happyReduce_203 = happySpecReduce_1 71 happyReduction_203 +happyReduction_203 (HappyAbsSyn133 happy_var_1) + = HappyAbsSyn71 + (Guarded happy_var_1 + ) +happyReduction_203 _ = notHappyAtAll + +happyReduce_204 = happySpecReduce_3 72 happyReduction_204 +happyReduction_204 (HappyAbsSyn55 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn80 happy_var_1) + = HappyAbsSyn72 + (uncurry GuardedExpr happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_204 _ _ _ = notHappyAtAll + +happyReduce_205 = happySpecReduce_2 73 happyReduction_205 +happyReduction_205 (HappyAbsSyn55 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn71 + (Unconditional happy_var_1 happy_var_2 + ) +happyReduction_205 _ _ = notHappyAtAll + +happyReduce_206 = happySpecReduce_1 73 happyReduction_206 +happyReduction_206 (HappyAbsSyn133 happy_var_1) + = HappyAbsSyn71 + (Guarded happy_var_1 + ) +happyReduction_206 _ = notHappyAtAll + +happyReduce_207 = happySpecReduce_3 74 happyReduction_207 +happyReduction_207 (HappyAbsSyn55 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn80 happy_var_1) + = HappyAbsSyn72 + (uncurry GuardedExpr happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_207 _ _ _ = notHappyAtAll + +happyReduce_208 = happyMonad2Reduce 2 75 happyReduction_208 +happyReduction_208 ((HappyTerminal happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ do + res <- parseDoStatement + when (null res) $ addFailure [happy_var_2] ErrEmptyDo + pure $ DoBlock happy_var_1 $ NE.fromList res)) tk + ) (\r -> happyReturn (HappyAbsSyn75 r)) + +happyReduce_209 = happySpecReduce_3 76 happyReduction_209 +happyReduction_209 _ + _ + (HappyTerminal happy_var_1) + = HappyAbsSyn76 + ((happy_var_1, []) + ) +happyReduction_209 _ _ _ = notHappyAtAll + +happyReduce_210 = happyMonad2Reduce 2 76 happyReduction_210 +happyReduction_210 (_ `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ fmap (happy_var_1,) parseDoStatement)) tk + ) (\r -> happyReturn (HappyAbsSyn76 r)) + +happyReduce_211 = happyMonadReduce 4 77 happyReduction_211 +happyReduction_211 (_ `HappyStk` + (HappyAbsSyn145 happy_var_3) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ fmap (DoLet happy_var_1 happy_var_3 :) parseDoNext)) tk + ) (\r -> happyReturn (HappyAbsSyn77 r)) + +happyReduce_212 = happyMonadReduce 0 77 happyReduction_212 +happyReduction_212 (happyRest) tk + = happyThen ((( revert $ do + stmt <- tryPrefix parseBinderAndArrow parseDoExpr + let + ctr = case stmt of + (Just (binder, sep), expr) -> + (DoBind binder sep expr :) + (Nothing, expr) -> + (DoDiscard expr :) + fmap ctr parseDoNext)) tk + ) (\r -> happyReturn (HappyAbsSyn77 r)) + +happyReduce_213 = happyMonadReduce 1 78 happyReduction_213 +happyReduction_213 ((HappyAbsSyn56 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn56 r)) + +happyReduce_214 = happyMonadReduce 1 79 happyReduction_214 +happyReduction_214 (_ `HappyStk` + happyRest) tk + = happyThen ((( revert parseDoStatement)) tk + ) (\r -> happyReturn (HappyAbsSyn77 r)) + +happyReduce_215 = happyMonadReduce 1 79 happyReduction_215 +happyReduction_215 (_ `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure [])) tk + ) (\r -> happyReturn (HappyAbsSyn77 r)) + +happyReduce_216 = happyMonad2Reduce 1 80 happyReduction_216 +happyReduction_216 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ fmap ((happy_var_1,) . uncurry Separated) parseGuardStatement)) tk + ) (\r -> happyReturn (HappyAbsSyn80 r)) + +happyReduce_217 = happyMonadReduce 0 81 happyReduction_217 +happyReduction_217 (happyRest) tk + = happyThen ((( revert $ do + grd <- fmap (uncurry PatternGuard) $ tryPrefix parseBinderAndArrow parseGuardExpr + fmap (grd,) parseGuardNext)) tk + ) (\r -> happyReturn (HappyAbsSyn81 r)) + +happyReduce_218 = happyMonadReduce 1 82 happyReduction_218 +happyReduction_218 ((HappyAbsSyn56 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn82 r)) + +happyReduce_219 = happyMonadReduce 1 83 happyReduction_219 +happyReduction_219 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ fmap (\(g, gs) -> (happy_var_1, g) : gs) parseGuardStatement)) tk + ) (\r -> happyReturn (HappyAbsSyn83 r)) + +happyReduce_220 = happyMonadReduce 0 83 happyReduction_220 +happyReduction_220 (happyRest) tk + = happyThen ((( revert $ pure [])) tk + ) (\r -> happyReturn (HappyAbsSyn83 r)) + +happyReduce_221 = happyMonadReduce 2 84 happyReduction_221 +happyReduction_221 ((HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn85 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure (happy_var_1, happy_var_2))) tk + ) (\r -> happyReturn (HappyAbsSyn84 r)) + +happyReduce_222 = happySpecReduce_1 85 happyReduction_222 +happyReduction_222 (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn85 + (happy_var_1 + ) +happyReduction_222 _ = notHappyAtAll + +happyReduce_223 = happySpecReduce_3 85 happyReduction_223 +happyReduction_223 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn85 + (BinderTyped () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_223 _ _ _ = notHappyAtAll + +happyReduce_224 = happySpecReduce_1 86 happyReduction_224 +happyReduction_224 (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn85 + (happy_var_1 + ) +happyReduction_224 _ = notHappyAtAll + +happyReduce_225 = happySpecReduce_3 86 happyReduction_225 +happyReduction_225 (HappyAbsSyn85 happy_var_3) + (HappyAbsSyn31 happy_var_2) + (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn85 + (BinderOp () happy_var_1 (getQualifiedOpName happy_var_2) happy_var_3 + ) +happyReduction_225 _ _ _ = notHappyAtAll + +happyReduce_226 = happyMonadReduce 1 87 happyReduction_226 +happyReduction_226 ((HappyAbsSyn132 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toBinderConstructor happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn85 r)) + +happyReduce_227 = happySpecReduce_2 87 happyReduction_227 +happyReduction_227 (HappyAbsSyn39 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn85 + (uncurry (BinderNumber () (Just happy_var_1)) happy_var_2 + ) +happyReduction_227 _ _ = notHappyAtAll + +happyReduce_228 = happySpecReduce_1 88 happyReduction_228 +happyReduction_228 (HappyTerminal happy_var_1) + = HappyAbsSyn85 + (BinderWildcard () happy_var_1 + ) +happyReduction_228 _ = notHappyAtAll + +happyReduce_229 = happySpecReduce_1 88 happyReduction_229 +happyReduction_229 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn85 + (BinderVar () happy_var_1 + ) +happyReduction_229 _ = notHappyAtAll + +happyReduce_230 = happySpecReduce_3 88 happyReduction_230 +happyReduction_230 (HappyAbsSyn85 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn85 + (BinderNamed () happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_230 _ _ _ = notHappyAtAll + +happyReduce_231 = happySpecReduce_1 88 happyReduction_231 +happyReduction_231 (HappyAbsSyn27 happy_var_1) + = HappyAbsSyn85 + (BinderConstructor () (getQualifiedProperName happy_var_1) [] + ) +happyReduction_231 _ = notHappyAtAll + +happyReduce_232 = happySpecReduce_1 88 happyReduction_232 +happyReduction_232 (HappyAbsSyn41 happy_var_1) + = HappyAbsSyn85 + (uncurry (BinderBoolean ()) happy_var_1 + ) +happyReduction_232 _ = notHappyAtAll + +happyReduce_233 = happySpecReduce_1 88 happyReduction_233 +happyReduction_233 (HappyAbsSyn38 happy_var_1) + = HappyAbsSyn85 + (uncurry (BinderChar ()) happy_var_1 + ) +happyReduction_233 _ = notHappyAtAll + +happyReduce_234 = happySpecReduce_1 88 happyReduction_234 +happyReduction_234 (HappyAbsSyn37 happy_var_1) + = HappyAbsSyn85 + (uncurry (BinderString ()) happy_var_1 + ) +happyReduction_234 _ = notHappyAtAll + +happyReduce_235 = happySpecReduce_1 88 happyReduction_235 +happyReduction_235 (HappyAbsSyn39 happy_var_1) + = HappyAbsSyn85 + (uncurry (BinderNumber () Nothing) happy_var_1 + ) +happyReduction_235 _ = notHappyAtAll + +happyReduce_236 = happySpecReduce_1 88 happyReduction_236 +happyReduction_236 (HappyAbsSyn128 happy_var_1) + = HappyAbsSyn85 + (BinderArray () happy_var_1 + ) +happyReduction_236 _ = notHappyAtAll + +happyReduce_237 = happySpecReduce_1 88 happyReduction_237 +happyReduction_237 (HappyAbsSyn130 happy_var_1) + = HappyAbsSyn85 + (BinderRecord () happy_var_1 + ) +happyReduction_237 _ = notHappyAtAll + +happyReduce_238 = happySpecReduce_3 88 happyReduction_238 +happyReduction_238 (HappyTerminal happy_var_3) + (HappyAbsSyn85 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn85 + (BinderParens () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_238 _ _ _ = notHappyAtAll + +happyReduce_239 = happyMonadReduce 1 89 happyReduction_239 +happyReduction_239 ((HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( fmap RecordPun . toName Ident $ lblTok happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn89 r)) + +happyReduce_240 = happyMonadReduce 3 89 happyReduction_240 +happyReduction_240 (_ `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn35 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( addFailure [happy_var_2] ErrRecordUpdateInCtr *> pure (RecordPun $ unexpectedName $ lblTok happy_var_1))) + ) (\r -> happyReturn (HappyAbsSyn89 r)) + +happyReduce_241 = happySpecReduce_3 89 happyReduction_241 +happyReduction_241 (HappyAbsSyn85 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn89 + (RecordField happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_241 _ _ _ = notHappyAtAll + +happyReduce_242 = happyReduce 6 90 happyReduction_242 +happyReduction_242 ((HappyAbsSyn92 happy_var_6) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn97 happy_var_3) `HappyStk` + (HappyAbsSyn26 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn90 + ((Module () happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_6 [] []) + ) `HappyStk` happyRest + +happyReduce_243 = happyMonadReduce 2 91 happyReduction_243 +happyReduction_243 (_ `HappyStk` + (HappyAbsSyn94 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( \(SourceToken ann _) -> pure (snd happy_var_1, tokLeadingComments ann))) tk + ) (\r -> happyReturn (HappyAbsSyn91 r)) + +happyReduce_244 = happyMonadReduce 3 92 happyReduction_244 +happyReduction_244 ((HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn100 happy_var_2) `HappyStk` + (HappyAbsSyn92 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pushBack happy_var_3 *> pure (reverse (happy_var_2 : happy_var_1)))) tk + ) (\r -> happyReturn (HappyAbsSyn92 r)) + +happyReduce_245 = happyMonadReduce 1 92 happyReduction_245 +happyReduction_245 ((HappyAbsSyn92 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure (reverse happy_var_1))) tk + ) (\r -> happyReturn (HappyAbsSyn92 r)) + +happyReduce_246 = happySpecReduce_3 93 happyReduction_246 +happyReduction_246 _ + (HappyAbsSyn100 happy_var_2) + (HappyAbsSyn92 happy_var_1) + = HappyAbsSyn92 + (happy_var_2 : happy_var_1 + ) +happyReduction_246 _ _ _ = notHappyAtAll + +happyReduce_247 = happySpecReduce_0 93 happyReduction_247 +happyReduction_247 = HappyAbsSyn92 + ([] + ) + +happyReduce_248 = happyMonadReduce 1 94 happyReduction_248 +happyReduction_248 ((HappyAbsSyn146 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( toModuleDecls $ NE.toList happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn94 r)) + +happyReduce_249 = happySpecReduce_0 94 happyReduction_249 +happyReduction_249 = HappyAbsSyn94 + (([], []) + ) + +happyReduce_250 = happySpecReduce_1 95 happyReduction_250 +happyReduction_250 (HappyAbsSyn100 happy_var_1) + = HappyAbsSyn95 + (TmpImport happy_var_1 + ) +happyReduction_250 _ = notHappyAtAll + +happyReduce_251 = happySpecReduce_1 95 happyReduction_251 +happyReduction_251 (HappyAbsSyn150 happy_var_1) + = HappyAbsSyn95 + (TmpChain happy_var_1 + ) +happyReduction_251 _ = notHappyAtAll + +happyReduce_252 = happySpecReduce_1 96 happyReduction_252 +happyReduction_252 (HappyTerminal happy_var_1) + = HappyAbsSyn54 + (happy_var_1 + ) +happyReduction_252 _ = notHappyAtAll + +happyReduce_253 = happySpecReduce_2 96 happyReduction_253 +happyReduction_253 _ + (HappyTerminal happy_var_1) + = HappyAbsSyn54 + (happy_var_1 + ) +happyReduction_253 _ _ = notHappyAtAll + +happyReduce_254 = happySpecReduce_0 97 happyReduction_254 +happyReduction_254 = HappyAbsSyn97 + (Nothing + ) + +happyReduce_255 = happySpecReduce_3 97 happyReduction_255 +happyReduction_255 (HappyTerminal happy_var_3) + (HappyAbsSyn151 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn97 + (Just (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_255 _ _ _ = notHappyAtAll + +happyReduce_256 = happySpecReduce_1 98 happyReduction_256 +happyReduction_256 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn98 + (ExportValue () happy_var_1 + ) +happyReduction_256 _ = notHappyAtAll + +happyReduce_257 = happySpecReduce_1 98 happyReduction_257 +happyReduction_257 (HappyAbsSyn32 happy_var_1) + = HappyAbsSyn98 + (ExportOp () (getOpName happy_var_1) + ) +happyReduction_257 _ = notHappyAtAll + +happyReduce_258 = happySpecReduce_1 98 happyReduction_258 +happyReduction_258 (HappyAbsSyn28 happy_var_1) + = HappyAbsSyn98 + (ExportType () (getProperName happy_var_1) Nothing + ) +happyReduction_258 _ = notHappyAtAll + +happyReduce_259 = happySpecReduce_2 98 happyReduction_259 +happyReduction_259 (HappyAbsSyn99 happy_var_2) + (HappyAbsSyn28 happy_var_1) + = HappyAbsSyn98 + (ExportType () (getProperName happy_var_1) (Just happy_var_2) + ) +happyReduction_259 _ _ = notHappyAtAll + +happyReduce_260 = happySpecReduce_2 98 happyReduction_260 +happyReduction_260 (HappyAbsSyn32 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn98 + (ExportTypeOp () happy_var_1 (getOpName happy_var_2) + ) +happyReduction_260 _ _ = notHappyAtAll + +happyReduce_261 = happySpecReduce_2 98 happyReduction_261 +happyReduction_261 (HappyAbsSyn28 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn98 + (ExportClass () happy_var_1 (getProperName happy_var_2) + ) +happyReduction_261 _ _ = notHappyAtAll + +happyReduce_262 = happySpecReduce_2 98 happyReduction_262 +happyReduction_262 (HappyAbsSyn26 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn98 + (ExportModule () happy_var_1 happy_var_2 + ) +happyReduction_262 _ _ = notHappyAtAll + +happyReduce_263 = happySpecReduce_1 99 happyReduction_263 +happyReduction_263 (HappyTerminal happy_var_1) + = HappyAbsSyn99 + (DataAll () happy_var_1 + ) +happyReduction_263 _ = notHappyAtAll + +happyReduce_264 = happySpecReduce_2 99 happyReduction_264 +happyReduction_264 (HappyTerminal happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn99 + (DataEnumerated () (Wrapped happy_var_1 Nothing happy_var_2) + ) +happyReduction_264 _ _ = notHappyAtAll + +happyReduce_265 = happySpecReduce_3 99 happyReduction_265 +happyReduction_265 (HappyTerminal happy_var_3) + (HappyAbsSyn156 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn99 + (DataEnumerated () (Wrapped happy_var_1 (Just $ getProperName <$> happy_var_2) happy_var_3) + ) +happyReduction_265 _ _ _ = notHappyAtAll + +happyReduce_266 = happySpecReduce_3 100 happyReduction_266 +happyReduction_266 (HappyAbsSyn101 happy_var_3) + (HappyAbsSyn26 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn100 + (ImportDecl () happy_var_1 happy_var_2 happy_var_3 Nothing + ) +happyReduction_266 _ _ _ = notHappyAtAll + +happyReduce_267 = happyReduce 5 100 happyReduction_267 +happyReduction_267 ((HappyAbsSyn26 happy_var_5) `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn101 happy_var_3) `HappyStk` + (HappyAbsSyn26 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn100 + (ImportDecl () happy_var_1 happy_var_2 happy_var_3 (Just (happy_var_4, happy_var_5)) + ) `HappyStk` happyRest + +happyReduce_268 = happySpecReduce_0 101 happyReduction_268 +happyReduction_268 = HappyAbsSyn101 + (Nothing + ) + +happyReduce_269 = happySpecReduce_3 101 happyReduction_269 +happyReduction_269 (HappyTerminal happy_var_3) + (HappyAbsSyn154 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn101 + (Just (Nothing, Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_269 _ _ _ = notHappyAtAll + +happyReduce_270 = happyReduce 4 101 happyReduction_270 +happyReduction_270 ((HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn154 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn101 + (Just (Just happy_var_1, Wrapped happy_var_2 happy_var_3 happy_var_4) + ) `HappyStk` happyRest + +happyReduce_271 = happySpecReduce_1 102 happyReduction_271 +happyReduction_271 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn102 + (ImportValue () happy_var_1 + ) +happyReduction_271 _ = notHappyAtAll + +happyReduce_272 = happySpecReduce_1 102 happyReduction_272 +happyReduction_272 (HappyAbsSyn32 happy_var_1) + = HappyAbsSyn102 + (ImportOp () (getOpName happy_var_1) + ) +happyReduction_272 _ = notHappyAtAll + +happyReduce_273 = happySpecReduce_1 102 happyReduction_273 +happyReduction_273 (HappyAbsSyn28 happy_var_1) + = HappyAbsSyn102 + (ImportType () (getProperName happy_var_1) Nothing + ) +happyReduction_273 _ = notHappyAtAll + +happyReduce_274 = happySpecReduce_2 102 happyReduction_274 +happyReduction_274 (HappyAbsSyn99 happy_var_2) + (HappyAbsSyn28 happy_var_1) + = HappyAbsSyn102 + (ImportType () (getProperName happy_var_1) (Just happy_var_2) + ) +happyReduction_274 _ _ = notHappyAtAll + +happyReduce_275 = happySpecReduce_2 102 happyReduction_275 +happyReduction_275 (HappyAbsSyn32 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn102 + (ImportTypeOp () happy_var_1 (getOpName happy_var_2) + ) +happyReduction_275 _ _ = notHappyAtAll + +happyReduce_276 = happySpecReduce_2 102 happyReduction_276 +happyReduction_276 (HappyAbsSyn28 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn102 + (ImportClass () happy_var_1 (getProperName happy_var_2) + ) +happyReduction_276 _ _ = notHappyAtAll + +happyReduce_277 = happySpecReduce_1 103 happyReduction_277 +happyReduction_277 (HappyAbsSyn104 happy_var_1) + = HappyAbsSyn103 + (DeclData () happy_var_1 Nothing + ) +happyReduction_277 _ = notHappyAtAll + +happyReduce_278 = happySpecReduce_3 103 happyReduction_278 +happyReduction_278 (HappyAbsSyn149 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn104 happy_var_1) + = HappyAbsSyn103 + (DeclData () happy_var_1 (Just (happy_var_2, happy_var_3)) + ) +happyReduction_278 _ _ _ = notHappyAtAll + +happyReduce_279 = happyMonadReduce 3 103 happyReduction_279 +happyReduction_279 ((HappyAbsSyn42 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn104 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_3 *> pure (DeclType () happy_var_1 happy_var_2 happy_var_3))) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_280 = happyMonadReduce 4 103 happyReduction_280 +happyReduction_280 ((HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyAbsSyn28 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn104 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_4 *> pure (DeclNewtype () happy_var_1 happy_var_2 (getProperName happy_var_3) happy_var_4))) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_281 = happySpecReduce_1 103 happyReduction_281 +happyReduction_281 (HappyAbsSyn108 happy_var_1) + = HappyAbsSyn103 + (either id (\h -> DeclClass () h Nothing) happy_var_1 + ) +happyReduction_281 _ = notHappyAtAll + +happyReduce_282 = happyMonadReduce 5 103 happyReduction_282 +happyReduction_282 (_ `HappyStk` + (HappyAbsSyn143 happy_var_4) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn108 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( either (const (parseError happy_var_2)) (\h -> pure $ DeclClass () h (Just (happy_var_2, happy_var_4))) happy_var_1)) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_283 = happySpecReduce_1 103 happyReduction_283 +happyReduction_283 (HappyAbsSyn115 happy_var_1) + = HappyAbsSyn103 + (DeclInstanceChain () (Separated (Instance happy_var_1 Nothing) []) + ) +happyReduction_283 _ = notHappyAtAll + +happyReduce_284 = happyReduce 5 103 happyReduction_284 +happyReduction_284 (_ `HappyStk` + (HappyAbsSyn144 happy_var_4) `HappyStk` + _ `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn115 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn103 + (DeclInstanceChain () (Separated (Instance happy_var_1 (Just (happy_var_2, happy_var_4))) []) + ) `HappyStk` happyRest + +happyReduce_285 = happyMonadReduce 4 103 happyReduction_285 +happyReduction_285 ((HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn28 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_4 *> pure (DeclKindSignature () happy_var_1 (Labeled (getProperName happy_var_2) happy_var_3 happy_var_4)))) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_286 = happyMonadReduce 4 103 happyReduction_286 +happyReduction_286 ((HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn28 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_4 *> pure (DeclKindSignature () happy_var_1 (Labeled (getProperName happy_var_2) happy_var_3 happy_var_4)))) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_287 = happyMonadReduce 4 103 happyReduction_287 +happyReduction_287 ((HappyAbsSyn42 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn28 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_4 *> pure (DeclKindSignature () happy_var_1 (Labeled (getProperName happy_var_2) happy_var_3 happy_var_4)))) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_288 = happySpecReduce_2 103 happyReduction_288 +happyReduction_288 (HappyAbsSyn115 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn103 + (DeclDerive () happy_var_1 Nothing happy_var_2 + ) +happyReduction_288 _ _ = notHappyAtAll + +happyReduce_289 = happySpecReduce_3 103 happyReduction_289 +happyReduction_289 (HappyAbsSyn115 happy_var_3) + (HappyTerminal happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn103 + (DeclDerive () happy_var_1 (Just happy_var_2) happy_var_3 + ) +happyReduction_289 _ _ _ = notHappyAtAll + +happyReduce_290 = happySpecReduce_3 103 happyReduction_290 +happyReduction_290 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn103 + (DeclSignature () (Labeled happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_290 _ _ _ = notHappyAtAll + +happyReduce_291 = happySpecReduce_3 103 happyReduction_291 +happyReduction_291 (HappyAbsSyn71 happy_var_3) + (HappyAbsSyn138 happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn103 + (DeclValue () (ValueBindingFields happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_291 _ _ _ = notHappyAtAll + +happyReduce_292 = happySpecReduce_1 103 happyReduction_292 +happyReduction_292 (HappyAbsSyn119 happy_var_1) + = HappyAbsSyn103 + (DeclFixity () happy_var_1 + ) +happyReduction_292 _ = notHappyAtAll + +happyReduce_293 = happyMonadReduce 5 103 happyReduction_293 +happyReduction_293 ((HappyAbsSyn42 happy_var_5) `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn30 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( when (isConstrained happy_var_5) (addFailure ([happy_var_1, happy_var_2, nameTok happy_var_3, happy_var_4] <> toList (flattenType happy_var_5)) ErrConstraintInForeignImportSyntax) *> pure (DeclForeign () happy_var_1 happy_var_2 (ForeignValue (Labeled happy_var_3 happy_var_4 happy_var_5))))) + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_294 = happyReduce 6 103 happyReduction_294 +happyReduction_294 ((HappyAbsSyn42 happy_var_6) `HappyStk` + (HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn28 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn103 + (DeclForeign () happy_var_1 happy_var_2 (ForeignData happy_var_3 (Labeled (getProperName happy_var_4) happy_var_5 happy_var_6)) + ) `HappyStk` happyRest + +happyReduce_295 = happyReduce 4 103 happyReduction_295 +happyReduction_295 ((HappyAbsSyn136 happy_var_4) `HappyStk` + (HappyAbsSyn28 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn103 + (DeclRole () happy_var_1 happy_var_2 (getProperName happy_var_3) happy_var_4 + ) `HappyStk` happyRest + +happyReduce_296 = happySpecReduce_3 104 happyReduction_296 +happyReduction_296 (HappyAbsSyn140 happy_var_3) + (HappyAbsSyn28 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn104 + (DataHead happy_var_1 (getProperName happy_var_2) happy_var_3 + ) +happyReduction_296 _ _ _ = notHappyAtAll + +happyReduce_297 = happySpecReduce_3 105 happyReduction_297 +happyReduction_297 (HappyAbsSyn140 happy_var_3) + (HappyAbsSyn28 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn104 + (DataHead happy_var_1 (getProperName happy_var_2) happy_var_3 + ) +happyReduction_297 _ _ _ = notHappyAtAll + +happyReduce_298 = happySpecReduce_3 106 happyReduction_298 +happyReduction_298 (HappyAbsSyn140 happy_var_3) + (HappyAbsSyn28 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn104 + (DataHead happy_var_1 (getProperName happy_var_2) happy_var_3 + ) +happyReduction_298 _ _ _ = notHappyAtAll + +happyReduce_299 = happyMonadReduce 2 107 happyReduction_299 +happyReduction_299 ((HappyAbsSyn139 happy_var_2) `HappyStk` + (HappyAbsSyn28 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( for_ happy_var_2 checkNoWildcards *> pure (DataCtor () (getProperName happy_var_1) happy_var_2))) + ) (\r -> happyReturn (HappyAbsSyn107 r)) + +happyReduce_300 = happyMonad2Reduce 1 108 happyReduction_300 +happyReduction_300 ((HappyTerminal happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ oneOf $ NE.fromList + [ fmap (Left . DeclKindSignature () happy_var_1) parseClassSignature + , do + (super, (name, vars, fundeps)) <- tryPrefix parseClassSuper parseClassNameAndFundeps + let hd = ClassHead happy_var_1 super name vars fundeps + checkFundeps hd + pure $ Right hd + ])) tk + ) (\r -> happyReturn (HappyAbsSyn108 r)) + +happyReduce_301 = happyMonadReduce 3 109 happyReduction_301 +happyReduction_301 ((HappyAbsSyn42 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn28 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ checkNoWildcards happy_var_3 *> pure (Labeled (getProperName happy_var_1) happy_var_2 happy_var_3))) tk + ) (\r -> happyReturn (HappyAbsSyn109 r)) + +happyReduce_302 = happyMonadReduce 2 110 happyReduction_302 +happyReduction_302 ((HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn116 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure (happy_var_1, happy_var_2))) tk + ) (\r -> happyReturn (HappyAbsSyn110 r)) + +happyReduce_303 = happyMonadReduce 3 111 happyReduction_303 +happyReduction_303 ((HappyAbsSyn112 happy_var_3) `HappyStk` + (HappyAbsSyn140 happy_var_2) `HappyStk` + (HappyAbsSyn28 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure (getProperName happy_var_1, happy_var_2, happy_var_3))) tk + ) (\r -> happyReturn (HappyAbsSyn111 r)) + +happyReduce_304 = happySpecReduce_0 112 happyReduction_304 +happyReduction_304 = HappyAbsSyn112 + (Nothing + ) + +happyReduce_305 = happySpecReduce_2 112 happyReduction_305 +happyReduction_305 (HappyAbsSyn153 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn112 + (Just (happy_var_1, happy_var_2) + ) +happyReduction_305 _ _ = notHappyAtAll + +happyReduce_306 = happySpecReduce_2 113 happyReduction_306 +happyReduction_306 (HappyAbsSyn135 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn113 + (FundepDetermined happy_var_1 happy_var_2 + ) +happyReduction_306 _ _ = notHappyAtAll + +happyReduce_307 = happySpecReduce_3 113 happyReduction_307 +happyReduction_307 (HappyAbsSyn135 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn135 happy_var_1) + = HappyAbsSyn113 + (FundepDetermines happy_var_1 happy_var_2 happy_var_3 + ) +happyReduction_307 _ _ _ = notHappyAtAll + +happyReduce_308 = happyMonadReduce 3 114 happyReduction_308 +happyReduction_308 ((HappyAbsSyn42 happy_var_3) `HappyStk` + (HappyTerminal happy_var_2) `HappyStk` + (HappyAbsSyn30 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( checkNoWildcards happy_var_3 *> pure (Labeled happy_var_1 happy_var_2 happy_var_3))) + ) (\r -> happyReturn (HappyAbsSyn114 r)) + +happyReduce_309 = happyReduce 5 115 happyReduction_309 +happyReduction_309 ((HappyAbsSyn139 happy_var_5) `HappyStk` + (HappyAbsSyn27 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn116 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn115 + (InstanceHead happy_var_1 Nothing (Just (happy_var_2, happy_var_3)) (getQualifiedProperName happy_var_4) happy_var_5 + ) `HappyStk` happyRest + +happyReduce_310 = happySpecReduce_3 115 happyReduction_310 +happyReduction_310 (HappyAbsSyn139 happy_var_3) + (HappyAbsSyn27 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn115 + (InstanceHead happy_var_1 Nothing Nothing (getQualifiedProperName happy_var_2) happy_var_3 + ) +happyReduction_310 _ _ _ = notHappyAtAll + +happyReduce_311 = happyReduce 7 115 happyReduction_311 +happyReduction_311 ((HappyAbsSyn139 happy_var_7) `HappyStk` + (HappyAbsSyn27 happy_var_6) `HappyStk` + (HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn116 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn30 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn115 + (InstanceHead happy_var_1 (Just (happy_var_2, happy_var_3)) (Just (happy_var_4, happy_var_5)) (getQualifiedProperName happy_var_6) happy_var_7 + ) `HappyStk` happyRest + +happyReduce_312 = happyReduce 5 115 happyReduction_312 +happyReduction_312 ((HappyAbsSyn139 happy_var_5) `HappyStk` + (HappyAbsSyn27 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn30 happy_var_2) `HappyStk` + (HappyTerminal happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn115 + (InstanceHead happy_var_1 (Just (happy_var_2, happy_var_3)) Nothing (getQualifiedProperName happy_var_4) happy_var_5 + ) `HappyStk` happyRest + +happyReduce_313 = happySpecReduce_1 116 happyReduction_313 +happyReduction_313 (HappyAbsSyn117 happy_var_1) + = HappyAbsSyn116 + (One happy_var_1 + ) +happyReduction_313 _ = notHappyAtAll + +happyReduce_314 = happySpecReduce_3 116 happyReduction_314 +happyReduction_314 (HappyTerminal happy_var_3) + (HappyAbsSyn148 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn116 + (Many (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_314 _ _ _ = notHappyAtAll + +happyReduce_315 = happyMonadReduce 2 117 happyReduction_315 +happyReduction_315 ((HappyAbsSyn139 happy_var_2) `HappyStk` + (HappyAbsSyn27 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( for_ happy_var_2 checkNoWildcards *> for_ happy_var_2 checkNoForalls *> pure (Constraint () (getQualifiedProperName happy_var_1) happy_var_2))) + ) (\r -> happyReturn (HappyAbsSyn117 r)) + +happyReduce_316 = happySpecReduce_3 117 happyReduction_316 +happyReduction_316 (HappyTerminal happy_var_3) + (HappyAbsSyn117 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn117 + (ConstraintParens () (Wrapped happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_316 _ _ _ = notHappyAtAll + +happyReduce_317 = happySpecReduce_3 118 happyReduction_317 +happyReduction_317 (HappyAbsSyn42 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn118 + (InstanceBindingSignature () (Labeled happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_317 _ _ _ = notHappyAtAll + +happyReduce_318 = happySpecReduce_3 118 happyReduction_318 +happyReduction_318 (HappyAbsSyn71 happy_var_3) + (HappyAbsSyn138 happy_var_2) + (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn118 + (InstanceBindingName () (ValueBindingFields happy_var_1 happy_var_2 happy_var_3) + ) +happyReduction_318 _ _ _ = notHappyAtAll + +happyReduce_319 = happyReduce 5 119 happyReduction_319 +happyReduction_319 ((HappyAbsSyn32 happy_var_5) `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn29 happy_var_3) `HappyStk` + (HappyAbsSyn40 happy_var_2) `HappyStk` + (HappyAbsSyn120 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn119 + (FixityFields happy_var_1 happy_var_2 (FixityValue (fmap Left happy_var_3) happy_var_4 (getOpName happy_var_5)) + ) `HappyStk` happyRest + +happyReduce_320 = happyReduce 5 119 happyReduction_320 +happyReduction_320 ((HappyAbsSyn32 happy_var_5) `HappyStk` + (HappyTerminal happy_var_4) `HappyStk` + (HappyAbsSyn27 happy_var_3) `HappyStk` + (HappyAbsSyn40 happy_var_2) `HappyStk` + (HappyAbsSyn120 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn119 + (FixityFields happy_var_1 happy_var_2 (FixityValue (fmap Right (getQualifiedProperName happy_var_3)) happy_var_4 (getOpName happy_var_5)) + ) `HappyStk` happyRest + +happyReduce_321 = happyReduce 6 119 happyReduction_321 +happyReduction_321 ((HappyAbsSyn32 happy_var_6) `HappyStk` + (HappyTerminal happy_var_5) `HappyStk` + (HappyAbsSyn27 happy_var_4) `HappyStk` + (HappyTerminal happy_var_3) `HappyStk` + (HappyAbsSyn40 happy_var_2) `HappyStk` + (HappyAbsSyn120 happy_var_1) `HappyStk` + happyRest) + = HappyAbsSyn119 + (FixityFields happy_var_1 happy_var_2 (FixityType happy_var_3 (getQualifiedProperName happy_var_4) happy_var_5 (getOpName happy_var_6)) + ) `HappyStk` happyRest + +happyReduce_322 = happySpecReduce_1 120 happyReduction_322 +happyReduction_322 (HappyTerminal happy_var_1) + = HappyAbsSyn120 + ((happy_var_1, Infix) + ) +happyReduction_322 _ = notHappyAtAll + +happyReduce_323 = happySpecReduce_1 120 happyReduction_323 +happyReduction_323 (HappyTerminal happy_var_1) + = HappyAbsSyn120 + ((happy_var_1, Infixl) + ) +happyReduction_323 _ = notHappyAtAll + +happyReduce_324 = happySpecReduce_1 120 happyReduction_324 +happyReduction_324 (HappyTerminal happy_var_1) + = HappyAbsSyn120 + ((happy_var_1, Infixr) + ) +happyReduction_324 _ = notHappyAtAll + +happyReduce_325 = happySpecReduce_1 121 happyReduction_325 +happyReduction_325 (HappyTerminal happy_var_1) + = HappyAbsSyn121 + (Role happy_var_1 R.Nominal + ) +happyReduction_325 _ = notHappyAtAll + +happyReduce_326 = happySpecReduce_1 121 happyReduction_326 +happyReduction_326 (HappyTerminal happy_var_1) + = HappyAbsSyn121 + (Role happy_var_1 R.Representational + ) +happyReduction_326 _ = notHappyAtAll + +happyReduce_327 = happySpecReduce_1 121 happyReduction_327 +happyReduction_327 (HappyTerminal happy_var_1) + = HappyAbsSyn121 + (Role happy_var_1 R.Phantom + ) +happyReduction_327 _ = notHappyAtAll + +happyReduce_328 = happyMonadReduce 1 122 happyReduction_328 +happyReduction_328 ((HappyAbsSyn100 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn100 r)) + +happyReduce_329 = happyMonadReduce 1 123 happyReduction_329 +happyReduction_329 ((HappyAbsSyn103 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn103 r)) + +happyReduce_330 = happyMonadReduce 1 124 happyReduction_330 +happyReduction_330 ((HappyAbsSyn56 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn56 r)) + +happyReduce_331 = happyMonadReduce 1 125 happyReduction_331 +happyReduction_331 ((HappyAbsSyn42 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn42 r)) + +happyReduce_332 = happyMonadReduce 1 126 happyReduction_332 +happyReduction_332 ((HappyAbsSyn26 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn26 r)) + +happyReduce_333 = happyMonadReduce 1 127 happyReduction_333 +happyReduction_333 ((HappyAbsSyn29 happy_var_1) `HappyStk` + happyRest) tk + = happyThen ((( revert $ pure happy_var_1)) tk + ) (\r -> happyReturn (HappyAbsSyn29 r)) + +happyReduce_334 = happySpecReduce_2 128 happyReduction_334 +happyReduction_334 (HappyTerminal happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn128 + (Wrapped happy_var_1 Nothing happy_var_2 + ) +happyReduction_334 _ _ = notHappyAtAll + +happyReduce_335 = happySpecReduce_3 128 happyReduction_335 +happyReduction_335 (HappyTerminal happy_var_3) + (HappyAbsSyn147 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn128 + (Wrapped happy_var_1 (Just happy_var_2) happy_var_3 + ) +happyReduction_335 _ _ _ = notHappyAtAll + +happyReduce_336 = happySpecReduce_2 129 happyReduction_336 +happyReduction_336 (HappyTerminal happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn129 + (Wrapped happy_var_1 Nothing happy_var_2 + ) +happyReduction_336 _ _ = notHappyAtAll + +happyReduce_337 = happySpecReduce_3 129 happyReduction_337 +happyReduction_337 (HappyTerminal happy_var_3) + (HappyAbsSyn152 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn129 + (Wrapped happy_var_1 (Just happy_var_2) happy_var_3 + ) +happyReduction_337 _ _ _ = notHappyAtAll + +happyReduce_338 = happySpecReduce_2 130 happyReduction_338 +happyReduction_338 (HappyTerminal happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn130 + (Wrapped happy_var_1 Nothing happy_var_2 + ) +happyReduction_338 _ _ = notHappyAtAll + +happyReduce_339 = happySpecReduce_3 130 happyReduction_339 +happyReduction_339 (HappyTerminal happy_var_3) + (HappyAbsSyn174 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn130 + (Wrapped happy_var_1 (Just happy_var_2) happy_var_3 + ) +happyReduction_339 _ _ _ = notHappyAtAll + +happyReduce_340 = happySpecReduce_2 131 happyReduction_340 +happyReduction_340 (HappyTerminal happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn131 + (Wrapped happy_var_1 Nothing happy_var_2 + ) +happyReduction_340 _ _ = notHappyAtAll + +happyReduce_341 = happySpecReduce_3 131 happyReduction_341 +happyReduction_341 (HappyTerminal happy_var_3) + (HappyAbsSyn175 happy_var_2) + (HappyTerminal happy_var_1) + = HappyAbsSyn131 + (Wrapped happy_var_1 (Just happy_var_2) happy_var_3 + ) +happyReduction_341 _ _ _ = notHappyAtAll + +happyReduce_342 = happySpecReduce_1 132 happyReduction_342 +happyReduction_342 (HappyAbsSyn132 happy_var_1) + = HappyAbsSyn132 + (NE.reverse happy_var_1 + ) +happyReduction_342 _ = notHappyAtAll + +happyReduce_343 = happySpecReduce_1 133 happyReduction_343 +happyReduction_343 (HappyAbsSyn133 happy_var_1) + = HappyAbsSyn133 + (NE.reverse happy_var_1 + ) +happyReduction_343 _ = notHappyAtAll + +happyReduce_344 = happySpecReduce_1 134 happyReduction_344 +happyReduction_344 (HappyAbsSyn133 happy_var_1) + = HappyAbsSyn133 + (NE.reverse happy_var_1 + ) +happyReduction_344 _ = notHappyAtAll + +happyReduce_345 = happySpecReduce_1 135 happyReduction_345 +happyReduction_345 (HappyAbsSyn135 happy_var_1) + = HappyAbsSyn135 + (NE.reverse happy_var_1 + ) +happyReduction_345 _ = notHappyAtAll + +happyReduce_346 = happySpecReduce_1 136 happyReduction_346 +happyReduction_346 (HappyAbsSyn136 happy_var_1) + = HappyAbsSyn136 + (NE.reverse happy_var_1 + ) +happyReduction_346 _ = notHappyAtAll + +happyReduce_347 = happySpecReduce_1 137 happyReduction_347 +happyReduction_347 (HappyAbsSyn137 happy_var_1) + = HappyAbsSyn137 + (NE.reverse happy_var_1 + ) +happyReduction_347 _ = notHappyAtAll + +happyReduce_348 = happySpecReduce_0 138 happyReduction_348 +happyReduction_348 = HappyAbsSyn138 + ([] + ) + +happyReduce_349 = happySpecReduce_1 138 happyReduction_349 +happyReduction_349 (HappyAbsSyn132 happy_var_1) + = HappyAbsSyn138 + (NE.toList happy_var_1 + ) +happyReduction_349 _ = notHappyAtAll + +happyReduce_350 = happySpecReduce_0 139 happyReduction_350 +happyReduction_350 = HappyAbsSyn139 + ([] + ) + +happyReduce_351 = happySpecReduce_1 139 happyReduction_351 +happyReduction_351 (HappyAbsSyn160 happy_var_1) + = HappyAbsSyn139 + (NE.toList happy_var_1 + ) +happyReduction_351 _ = notHappyAtAll + +happyReduce_352 = happySpecReduce_0 140 happyReduction_352 +happyReduction_352 = HappyAbsSyn140 + ([] + ) + +happyReduce_353 = happySpecReduce_1 140 happyReduction_353 +happyReduction_353 (HappyAbsSyn137 happy_var_1) + = HappyAbsSyn140 + (NE.toList happy_var_1 + ) +happyReduction_353 _ = notHappyAtAll + +happyReduce_354 = happySpecReduce_0 141 happyReduction_354 +happyReduction_354 = HappyAbsSyn140 + ([] + ) + +happyReduce_355 = happySpecReduce_1 141 happyReduction_355 +happyReduction_355 (HappyAbsSyn137 happy_var_1) + = HappyAbsSyn140 + (NE.toList happy_var_1 + ) +happyReduction_355 _ = notHappyAtAll + +happyReduce_356 = happySpecReduce_1 142 happyReduction_356 +happyReduction_356 (HappyAbsSyn142 happy_var_1) + = HappyAbsSyn142 + (NE.reverse happy_var_1 + ) +happyReduction_356 _ = notHappyAtAll + +happyReduce_357 = happySpecReduce_1 143 happyReduction_357 +happyReduction_357 (HappyAbsSyn143 happy_var_1) + = HappyAbsSyn143 + (NE.reverse happy_var_1 + ) +happyReduction_357 _ = notHappyAtAll + +happyReduce_358 = happySpecReduce_1 144 happyReduction_358 +happyReduction_358 (HappyAbsSyn144 happy_var_1) + = HappyAbsSyn144 + (NE.reverse happy_var_1 + ) +happyReduction_358 _ = notHappyAtAll + +happyReduce_359 = happySpecReduce_1 145 happyReduction_359 +happyReduction_359 (HappyAbsSyn145 happy_var_1) + = HappyAbsSyn145 + (NE.reverse happy_var_1 + ) +happyReduction_359 _ = notHappyAtAll + +happyReduce_360 = happySpecReduce_1 146 happyReduction_360 +happyReduction_360 (HappyAbsSyn146 happy_var_1) + = HappyAbsSyn146 + (NE.reverse happy_var_1 + ) +happyReduction_360 _ = notHappyAtAll + +happyReduce_361 = happySpecReduce_1 147 happyReduction_361 +happyReduction_361 (HappyAbsSyn176 happy_var_1) + = HappyAbsSyn147 + (separated happy_var_1 + ) +happyReduction_361 _ = notHappyAtAll + +happyReduce_362 = happySpecReduce_1 148 happyReduction_362 +happyReduction_362 (HappyAbsSyn177 happy_var_1) + = HappyAbsSyn148 + (separated happy_var_1 + ) +happyReduction_362 _ = notHappyAtAll + +happyReduce_363 = happySpecReduce_1 149 happyReduction_363 +happyReduction_363 (HappyAbsSyn178 happy_var_1) + = HappyAbsSyn149 + (separated happy_var_1 + ) +happyReduction_363 _ = notHappyAtAll + +happyReduce_364 = happySpecReduce_1 150 happyReduction_364 +happyReduction_364 (HappyAbsSyn179 happy_var_1) + = HappyAbsSyn150 + (separated happy_var_1 + ) +happyReduction_364 _ = notHappyAtAll + +happyReduce_365 = happySpecReduce_1 151 happyReduction_365 +happyReduction_365 (HappyAbsSyn180 happy_var_1) + = HappyAbsSyn151 + (separated happy_var_1 + ) +happyReduction_365 _ = notHappyAtAll + +happyReduce_366 = happySpecReduce_1 152 happyReduction_366 +happyReduction_366 (HappyAbsSyn181 happy_var_1) + = HappyAbsSyn152 + (separated happy_var_1 + ) +happyReduction_366 _ = notHappyAtAll + +happyReduce_367 = happySpecReduce_1 153 happyReduction_367 +happyReduction_367 (HappyAbsSyn182 happy_var_1) + = HappyAbsSyn153 + (separated happy_var_1 + ) +happyReduction_367 _ = notHappyAtAll + +happyReduce_368 = happySpecReduce_1 154 happyReduction_368 +happyReduction_368 (HappyAbsSyn183 happy_var_1) + = HappyAbsSyn154 + (separated happy_var_1 + ) +happyReduction_368 _ = notHappyAtAll + +happyReduce_369 = happySpecReduce_1 155 happyReduction_369 +happyReduction_369 (HappyAbsSyn184 happy_var_1) + = HappyAbsSyn155 + (separated happy_var_1 + ) +happyReduction_369 _ = notHappyAtAll + +happyReduce_370 = happySpecReduce_1 156 happyReduction_370 +happyReduction_370 (HappyAbsSyn185 happy_var_1) + = HappyAbsSyn156 + (separated happy_var_1 + ) +happyReduction_370 _ = notHappyAtAll + +happyReduce_371 = happySpecReduce_1 157 happyReduction_371 +happyReduction_371 (HappyAbsSyn186 happy_var_1) + = HappyAbsSyn157 + (separated happy_var_1 + ) +happyReduction_371 _ = notHappyAtAll + +happyReduce_372 = happySpecReduce_1 158 happyReduction_372 +happyReduction_372 (HappyAbsSyn187 happy_var_1) + = HappyAbsSyn158 + (separated happy_var_1 + ) +happyReduction_372 _ = notHappyAtAll + +happyReduce_373 = happySpecReduce_1 159 happyReduction_373 +happyReduction_373 (HappyAbsSyn188 happy_var_1) + = HappyAbsSyn159 + (separated happy_var_1 + ) +happyReduction_373 _ = notHappyAtAll + +happyReduce_374 = happySpecReduce_1 160 happyReduction_374 +happyReduction_374 (HappyAbsSyn160 happy_var_1) + = HappyAbsSyn160 + (NE.reverse happy_var_1 + ) +happyReduction_374 _ = notHappyAtAll + +happyReduce_375 = happySpecReduce_1 161 happyReduction_375 +happyReduction_375 (HappyAbsSyn137 happy_var_1) + = HappyAbsSyn137 + (NE.reverse happy_var_1 + ) +happyReduction_375 _ = notHappyAtAll + +happyReduce_376 = happySpecReduce_1 162 happyReduction_376 +happyReduction_376 (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn132 + (pure happy_var_1 + ) +happyReduction_376 _ = notHappyAtAll + +happyReduce_377 = happySpecReduce_2 162 happyReduction_377 +happyReduction_377 (HappyAbsSyn85 happy_var_2) + (HappyAbsSyn132 happy_var_1) + = HappyAbsSyn132 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_377 _ _ = notHappyAtAll + +happyReduce_378 = happySpecReduce_1 163 happyReduction_378 +happyReduction_378 (HappyAbsSyn72 happy_var_1) + = HappyAbsSyn133 + (pure happy_var_1 + ) +happyReduction_378 _ = notHappyAtAll + +happyReduce_379 = happySpecReduce_2 163 happyReduction_379 +happyReduction_379 (HappyAbsSyn72 happy_var_2) + (HappyAbsSyn133 happy_var_1) + = HappyAbsSyn133 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_379 _ _ = notHappyAtAll + +happyReduce_380 = happySpecReduce_1 164 happyReduction_380 +happyReduction_380 (HappyAbsSyn72 happy_var_1) + = HappyAbsSyn133 + (pure happy_var_1 + ) +happyReduction_380 _ = notHappyAtAll + +happyReduce_381 = happySpecReduce_2 164 happyReduction_381 +happyReduction_381 (HappyAbsSyn72 happy_var_2) + (HappyAbsSyn133 happy_var_1) + = HappyAbsSyn133 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_381 _ _ = notHappyAtAll + +happyReduce_382 = happySpecReduce_1 165 happyReduction_382 +happyReduction_382 (HappyAbsSyn30 happy_var_1) + = HappyAbsSyn135 + (pure happy_var_1 + ) +happyReduction_382 _ = notHappyAtAll + +happyReduce_383 = happySpecReduce_2 165 happyReduction_383 +happyReduction_383 (HappyAbsSyn30 happy_var_2) + (HappyAbsSyn135 happy_var_1) + = HappyAbsSyn135 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_383 _ _ = notHappyAtAll + +happyReduce_384 = happySpecReduce_1 166 happyReduction_384 +happyReduction_384 (HappyAbsSyn121 happy_var_1) + = HappyAbsSyn136 + (pure happy_var_1 + ) +happyReduction_384 _ = notHappyAtAll + +happyReduce_385 = happySpecReduce_2 166 happyReduction_385 +happyReduction_385 (HappyAbsSyn121 happy_var_2) + (HappyAbsSyn136 happy_var_1) + = HappyAbsSyn136 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_385 _ _ = notHappyAtAll + +happyReduce_386 = happySpecReduce_1 167 happyReduction_386 +happyReduction_386 (HappyAbsSyn52 happy_var_1) + = HappyAbsSyn137 + (pure happy_var_1 + ) +happyReduction_386 _ = notHappyAtAll + +happyReduce_387 = happySpecReduce_2 167 happyReduction_387 +happyReduction_387 (HappyAbsSyn52 happy_var_2) + (HappyAbsSyn137 happy_var_1) + = HappyAbsSyn137 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_387 _ _ = notHappyAtAll + +happyReduce_388 = happySpecReduce_1 168 happyReduction_388 +happyReduction_388 (HappyAbsSyn70 happy_var_1) + = HappyAbsSyn142 + (pure happy_var_1 + ) +happyReduction_388 _ = notHappyAtAll + +happyReduce_389 = happySpecReduce_3 168 happyReduction_389 +happyReduction_389 (HappyAbsSyn70 happy_var_3) + _ + (HappyAbsSyn142 happy_var_1) + = HappyAbsSyn142 + (NE.cons happy_var_3 happy_var_1 + ) +happyReduction_389 _ _ _ = notHappyAtAll + +happyReduce_390 = happySpecReduce_1 169 happyReduction_390 +happyReduction_390 (HappyAbsSyn114 happy_var_1) + = HappyAbsSyn143 + (pure happy_var_1 + ) +happyReduction_390 _ = notHappyAtAll + +happyReduce_391 = happySpecReduce_3 169 happyReduction_391 +happyReduction_391 (HappyAbsSyn114 happy_var_3) + _ + (HappyAbsSyn143 happy_var_1) + = HappyAbsSyn143 + (NE.cons happy_var_3 happy_var_1 + ) +happyReduction_391 _ _ _ = notHappyAtAll + +happyReduce_392 = happySpecReduce_1 170 happyReduction_392 +happyReduction_392 (HappyAbsSyn118 happy_var_1) + = HappyAbsSyn144 + (pure happy_var_1 + ) +happyReduction_392 _ = notHappyAtAll + +happyReduce_393 = happySpecReduce_3 170 happyReduction_393 +happyReduction_393 (HappyAbsSyn118 happy_var_3) + _ + (HappyAbsSyn144 happy_var_1) + = HappyAbsSyn144 + (NE.cons happy_var_3 happy_var_1 + ) +happyReduction_393 _ _ _ = notHappyAtAll + +happyReduce_394 = happySpecReduce_1 171 happyReduction_394 +happyReduction_394 (HappyAbsSyn69 happy_var_1) + = HappyAbsSyn145 + (pure happy_var_1 + ) +happyReduction_394 _ = notHappyAtAll + +happyReduce_395 = happySpecReduce_3 171 happyReduction_395 +happyReduction_395 (HappyAbsSyn69 happy_var_3) + _ + (HappyAbsSyn145 happy_var_1) + = HappyAbsSyn145 + (NE.cons happy_var_3 happy_var_1 + ) +happyReduction_395 _ _ _ = notHappyAtAll + +happyReduce_396 = happySpecReduce_1 172 happyReduction_396 +happyReduction_396 (HappyAbsSyn95 happy_var_1) + = HappyAbsSyn146 + (pure happy_var_1 + ) +happyReduction_396 _ = notHappyAtAll + +happyReduce_397 = happySpecReduce_3 172 happyReduction_397 +happyReduction_397 (HappyAbsSyn95 happy_var_3) + _ + (HappyAbsSyn146 happy_var_1) + = HappyAbsSyn146 + (NE.cons happy_var_3 happy_var_1 + ) +happyReduction_397 _ _ _ = notHappyAtAll + +happyReduce_398 = happySpecReduce_1 173 happyReduction_398 +happyReduction_398 (HappyAbsSyn176 happy_var_1) + = HappyAbsSyn147 + (separated happy_var_1 + ) +happyReduction_398 _ = notHappyAtAll + +happyReduce_399 = happySpecReduce_1 174 happyReduction_399 +happyReduction_399 (HappyAbsSyn192 happy_var_1) + = HappyAbsSyn174 + (separated happy_var_1 + ) +happyReduction_399 _ = notHappyAtAll + +happyReduce_400 = happySpecReduce_1 175 happyReduction_400 +happyReduction_400 (HappyAbsSyn193 happy_var_1) + = HappyAbsSyn175 + (separated happy_var_1 + ) +happyReduction_400 _ = notHappyAtAll + +happyReduce_401 = happySpecReduce_1 176 happyReduction_401 +happyReduction_401 (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn176 + ([(placeholder, happy_var_1)] + ) +happyReduction_401 _ = notHappyAtAll + +happyReduce_402 = happySpecReduce_3 176 happyReduction_402 +happyReduction_402 (HappyAbsSyn85 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn176 happy_var_1) + = HappyAbsSyn176 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_402 _ _ _ = notHappyAtAll + +happyReduce_403 = happySpecReduce_1 177 happyReduction_403 +happyReduction_403 (HappyAbsSyn117 happy_var_1) + = HappyAbsSyn177 + ([(placeholder, happy_var_1)] + ) +happyReduction_403 _ = notHappyAtAll + +happyReduce_404 = happySpecReduce_3 177 happyReduction_404 +happyReduction_404 (HappyAbsSyn117 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn177 happy_var_1) + = HappyAbsSyn177 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_404 _ _ _ = notHappyAtAll + +happyReduce_405 = happySpecReduce_1 178 happyReduction_405 +happyReduction_405 (HappyAbsSyn107 happy_var_1) + = HappyAbsSyn178 + ([(placeholder, happy_var_1)] + ) +happyReduction_405 _ = notHappyAtAll + +happyReduce_406 = happySpecReduce_3 178 happyReduction_406 +happyReduction_406 (HappyAbsSyn107 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn178 happy_var_1) + = HappyAbsSyn178 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_406 _ _ _ = notHappyAtAll + +happyReduce_407 = happySpecReduce_1 179 happyReduction_407 +happyReduction_407 (HappyAbsSyn103 happy_var_1) + = HappyAbsSyn179 + ([(placeholder, happy_var_1)] + ) +happyReduction_407 _ = notHappyAtAll + +happyReduce_408 = happySpecReduce_3 179 happyReduction_408 +happyReduction_408 (HappyAbsSyn103 happy_var_3) + (HappyAbsSyn54 happy_var_2) + (HappyAbsSyn179 happy_var_1) + = HappyAbsSyn179 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_408 _ _ _ = notHappyAtAll + +happyReduce_409 = happySpecReduce_1 180 happyReduction_409 +happyReduction_409 (HappyAbsSyn98 happy_var_1) + = HappyAbsSyn180 + ([(placeholder, happy_var_1)] + ) +happyReduction_409 _ = notHappyAtAll + +happyReduce_410 = happySpecReduce_3 180 happyReduction_410 +happyReduction_410 (HappyAbsSyn98 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn180 happy_var_1) + = HappyAbsSyn180 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_410 _ _ _ = notHappyAtAll + +happyReduce_411 = happySpecReduce_1 181 happyReduction_411 +happyReduction_411 (HappyAbsSyn56 happy_var_1) + = HappyAbsSyn181 + ([(placeholder, happy_var_1)] + ) +happyReduction_411 _ = notHappyAtAll + +happyReduce_412 = happySpecReduce_3 181 happyReduction_412 +happyReduction_412 (HappyAbsSyn56 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn181 happy_var_1) + = HappyAbsSyn181 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_412 _ _ _ = notHappyAtAll + +happyReduce_413 = happySpecReduce_1 182 happyReduction_413 +happyReduction_413 (HappyAbsSyn113 happy_var_1) + = HappyAbsSyn182 + ([(placeholder, happy_var_1)] + ) +happyReduction_413 _ = notHappyAtAll + +happyReduce_414 = happySpecReduce_3 182 happyReduction_414 +happyReduction_414 (HappyAbsSyn113 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn182 happy_var_1) + = HappyAbsSyn182 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_414 _ _ _ = notHappyAtAll + +happyReduce_415 = happySpecReduce_1 183 happyReduction_415 +happyReduction_415 (HappyAbsSyn102 happy_var_1) + = HappyAbsSyn183 + ([(placeholder, happy_var_1)] + ) +happyReduction_415 _ = notHappyAtAll + +happyReduce_416 = happySpecReduce_3 183 happyReduction_416 +happyReduction_416 (HappyAbsSyn102 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn183 happy_var_1) + = HappyAbsSyn183 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_416 _ _ _ = notHappyAtAll + +happyReduce_417 = happySpecReduce_1 184 happyReduction_417 +happyReduction_417 (HappyAbsSyn35 happy_var_1) + = HappyAbsSyn184 + ([(placeholder, happy_var_1)] + ) +happyReduction_417 _ = notHappyAtAll + +happyReduce_418 = happySpecReduce_3 184 happyReduction_418 +happyReduction_418 (HappyAbsSyn35 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn184 happy_var_1) + = HappyAbsSyn184 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_418 _ _ _ = notHappyAtAll + +happyReduce_419 = happySpecReduce_1 185 happyReduction_419 +happyReduction_419 (HappyAbsSyn28 happy_var_1) + = HappyAbsSyn185 + ([(placeholder, happy_var_1)] + ) +happyReduction_419 _ = notHappyAtAll + +happyReduce_420 = happySpecReduce_3 185 happyReduction_420 +happyReduction_420 (HappyAbsSyn28 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn185 happy_var_1) + = HappyAbsSyn185 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_420 _ _ _ = notHappyAtAll + +happyReduce_421 = happySpecReduce_1 186 happyReduction_421 +happyReduction_421 (HappyAbsSyn68 happy_var_1) + = HappyAbsSyn186 + ([(placeholder, happy_var_1)] + ) +happyReduction_421 _ = notHappyAtAll + +happyReduce_422 = happySpecReduce_3 186 happyReduction_422 +happyReduction_422 (HappyAbsSyn68 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn186 happy_var_1) + = HappyAbsSyn186 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_422 _ _ _ = notHappyAtAll + +happyReduce_423 = happySpecReduce_1 187 happyReduction_423 +happyReduction_423 (HappyAbsSyn67 happy_var_1) + = HappyAbsSyn187 + ([(placeholder, happy_var_1)] + ) +happyReduction_423 _ = notHappyAtAll + +happyReduce_424 = happySpecReduce_3 187 happyReduction_424 +happyReduction_424 (HappyAbsSyn67 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn187 happy_var_1) + = HappyAbsSyn187 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_424 _ _ _ = notHappyAtAll + +happyReduce_425 = happySpecReduce_1 188 happyReduction_425 +happyReduction_425 (HappyAbsSyn51 happy_var_1) + = HappyAbsSyn188 + ([(placeholder, happy_var_1)] + ) +happyReduction_425 _ = notHappyAtAll + +happyReduce_426 = happySpecReduce_3 188 happyReduction_426 +happyReduction_426 (HappyAbsSyn51 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn188 happy_var_1) + = HappyAbsSyn188 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_426 _ _ _ = notHappyAtAll + +happyReduce_427 = happySpecReduce_1 189 happyReduction_427 +happyReduction_427 (HappyAbsSyn42 happy_var_1) + = HappyAbsSyn160 + (pure happy_var_1 + ) +happyReduction_427 _ = notHappyAtAll + +happyReduce_428 = happySpecReduce_2 189 happyReduction_428 +happyReduction_428 (HappyAbsSyn42 happy_var_2) + (HappyAbsSyn160 happy_var_1) + = HappyAbsSyn160 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_428 _ _ = notHappyAtAll + +happyReduce_429 = happySpecReduce_1 190 happyReduction_429 +happyReduction_429 (HappyAbsSyn52 happy_var_1) + = HappyAbsSyn137 + (pure happy_var_1 + ) +happyReduction_429 _ = notHappyAtAll + +happyReduce_430 = happySpecReduce_2 190 happyReduction_430 +happyReduction_430 (HappyAbsSyn52 happy_var_2) + (HappyAbsSyn137 happy_var_1) + = HappyAbsSyn137 + (NE.cons happy_var_2 happy_var_1 + ) +happyReduction_430 _ _ = notHappyAtAll + +happyReduce_431 = happySpecReduce_1 191 happyReduction_431 +happyReduction_431 (HappyAbsSyn85 happy_var_1) + = HappyAbsSyn176 + ([(placeholder, happy_var_1)] + ) +happyReduction_431 _ = notHappyAtAll + +happyReduce_432 = happySpecReduce_3 191 happyReduction_432 +happyReduction_432 (HappyAbsSyn85 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn176 happy_var_1) + = HappyAbsSyn176 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_432 _ _ _ = notHappyAtAll + +happyReduce_433 = happySpecReduce_1 192 happyReduction_433 +happyReduction_433 (HappyAbsSyn89 happy_var_1) + = HappyAbsSyn192 + ([(placeholder, happy_var_1)] + ) +happyReduction_433 _ = notHappyAtAll + +happyReduce_434 = happySpecReduce_3 192 happyReduction_434 +happyReduction_434 (HappyAbsSyn89 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn192 happy_var_1) + = HappyAbsSyn192 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_434 _ _ _ = notHappyAtAll + +happyReduce_435 = happySpecReduce_1 193 happyReduction_435 +happyReduction_435 (HappyAbsSyn66 happy_var_1) + = HappyAbsSyn193 + ([(placeholder, happy_var_1)] + ) +happyReduction_435 _ = notHappyAtAll + +happyReduce_436 = happySpecReduce_3 193 happyReduction_436 +happyReduction_436 (HappyAbsSyn66 happy_var_3) + (HappyTerminal happy_var_2) + (HappyAbsSyn193 happy_var_1) + = HappyAbsSyn193 + ((happy_var_2, happy_var_3) : happy_var_1 + ) +happyReduction_436 _ _ _ = notHappyAtAll + +happyNewToken action sts stk + = lexer(\tk -> + let cont i = action i i tk (HappyState action) sts stk in + case tk of { + SourceToken _ TokEof -> action 266 266 tk (HappyState action) sts stk; + SourceToken _ TokLeftParen -> cont 194; + SourceToken _ TokRightParen -> cont 195; + SourceToken _ TokLeftBrace -> cont 196; + SourceToken _ TokRightBrace -> cont 197; + SourceToken _ TokLeftSquare -> cont 198; + SourceToken _ TokRightSquare -> cont 199; + SourceToken _ TokLayoutStart -> cont 200; + SourceToken _ TokLayoutEnd -> cont 201; + SourceToken _ TokLayoutSep -> cont 202; + SourceToken _ (TokLeftArrow _) -> cont 203; + SourceToken _ (TokRightArrow _) -> cont 204; + SourceToken _ (TokOperator [] sym) | isLeftFatArrow sym -> cont 205; + SourceToken _ (TokRightFatArrow _) -> cont 206; + SourceToken _ (TokOperator [] ":") -> cont 207; + SourceToken _ (TokDoubleColon _) -> cont 208; + SourceToken _ TokEquals -> cont 209; + SourceToken _ TokPipe -> cont 210; + SourceToken _ TokTick -> cont 211; + SourceToken _ TokDot -> cont 212; + SourceToken _ TokComma -> cont 213; + SourceToken _ TokUnderscore -> cont 214; + SourceToken _ TokBackslash -> cont 215; + SourceToken _ (TokOperator [] "-") -> cont 216; + SourceToken _ (TokOperator [] "@") -> cont 217; + SourceToken _ (TokLowerName _ "ado") -> cont 218; + SourceToken _ (TokLowerName [] "as") -> cont 219; + SourceToken _ (TokLowerName [] "case") -> cont 220; + SourceToken _ (TokLowerName [] "class") -> cont 221; + SourceToken _ (TokLowerName [] "data") -> cont 222; + SourceToken _ (TokLowerName [] "derive") -> cont 223; + SourceToken _ (TokLowerName _ "do") -> cont 224; + SourceToken _ (TokLowerName [] "else") -> cont 225; + SourceToken _ (TokLowerName [] "false") -> cont 226; + SourceToken _ (TokForall ASCII) -> cont 227; + SourceToken _ (TokForall Unicode) -> cont 228; + SourceToken _ (TokLowerName [] "foreign") -> cont 229; + SourceToken _ (TokLowerName [] "hiding") -> cont 230; + SourceToken _ (TokLowerName [] "import") -> cont 231; + SourceToken _ (TokLowerName [] "if") -> cont 232; + SourceToken _ (TokLowerName [] "in") -> cont 233; + SourceToken _ (TokLowerName [] "infix") -> cont 234; + SourceToken _ (TokLowerName [] "infixl") -> cont 235; + SourceToken _ (TokLowerName [] "infixr") -> cont 236; + SourceToken _ (TokLowerName [] "instance") -> cont 237; + SourceToken _ (TokLowerName [] "let") -> cont 238; + SourceToken _ (TokLowerName [] "module") -> cont 239; + SourceToken _ (TokLowerName [] "newtype") -> cont 240; + SourceToken _ (TokLowerName [] "nominal") -> cont 241; + SourceToken _ (TokLowerName [] "phantom") -> cont 242; + SourceToken _ (TokLowerName [] "of") -> cont 243; + SourceToken _ (TokLowerName [] "representational") -> cont 244; + SourceToken _ (TokLowerName [] "role") -> cont 245; + SourceToken _ (TokLowerName [] "then") -> cont 246; + SourceToken _ (TokLowerName [] "true") -> cont 247; + SourceToken _ (TokLowerName [] "type") -> cont 248; + SourceToken _ (TokLowerName [] "where") -> cont 249; + SourceToken _ (TokSymbolArr _) -> cont 250; + SourceToken _ (TokSymbolName [] "..") -> cont 251; + SourceToken _ (TokLowerName [] _) -> cont 252; + SourceToken _ (TokLowerName _ _) -> cont 253; + SourceToken _ (TokUpperName [] _) -> cont 254; + SourceToken _ (TokUpperName _ _) -> cont 255; + SourceToken _ (TokSymbolName [] _) -> cont 256; + SourceToken _ (TokSymbolName _ _) -> cont 257; + SourceToken _ (TokOperator [] _) -> cont 258; + SourceToken _ (TokOperator _ _) -> cont 259; + SourceToken _ (TokHole _) -> cont 260; + SourceToken _ (TokChar _ _) -> cont 261; + SourceToken _ (TokString _ _) -> cont 262; + SourceToken _ (TokRawString _) -> cont 263; + SourceToken _ (TokInt _ _) -> cont 264; + SourceToken _ (TokNumber _ _) -> cont 265; + _ -> happyError' (tk, []) + }) + +happyError_ explist 266 tk = happyError' (tk, explist) +happyError_ explist _ tk = happyError' (tk, explist) + +happyThen :: () => Parser a -> (a -> Parser b) -> Parser b +happyThen = (Prelude.>>=) +happyReturn :: () => a -> Parser a +happyReturn = (Prelude.return) +happyThen1 :: () => Parser a -> (a -> Parser b) -> Parser b +happyThen1 = happyThen +happyReturn1 :: () => a -> Parser a +happyReturn1 = happyReturn +happyError' :: () => ((SourceToken), [Prelude.String]) -> Parser a +happyError' tk = (\(tokens, _) -> parseError tokens) tk +parseType = happySomeParser where + happySomeParser = happyThen (happyParse action_0) (\x -> case x of {HappyAbsSyn42 z -> happyReturn z; _other -> notHappyAtAll }) + +parseExpr = happySomeParser where + happySomeParser = happyThen (happyParse action_1) (\x -> case x of {HappyAbsSyn56 z -> happyReturn z; _other -> notHappyAtAll }) + +parseIdent = happySomeParser where + happySomeParser = happyThen (happyParse action_2) (\x -> case x of {HappyAbsSyn30 z -> happyReturn z; _other -> notHappyAtAll }) + +parseOperator = happySomeParser where + happySomeParser = happyThen (happyParse action_3) (\x -> case x of {HappyAbsSyn32 z -> happyReturn z; _other -> notHappyAtAll }) + +parseModuleBody = happySomeParser where + happySomeParser = happyThen (happyParse action_4) (\x -> case x of {HappyAbsSyn91 z -> happyReturn z; _other -> notHappyAtAll }) + +parseDecl = happySomeParser where + happySomeParser = happyThen (happyParse action_5) (\x -> case x of {HappyAbsSyn103 z -> happyReturn z; _other -> notHappyAtAll }) + +parseImportDeclP = happySomeParser where + happySomeParser = happyThen (happyParse action_6) (\x -> case x of {HappyAbsSyn100 z -> happyReturn z; _other -> notHappyAtAll }) + +parseDeclP = happySomeParser where + happySomeParser = happyThen (happyParse action_7) (\x -> case x of {HappyAbsSyn103 z -> happyReturn z; _other -> notHappyAtAll }) + +parseExprP = happySomeParser where + happySomeParser = happyThen (happyParse action_8) (\x -> case x of {HappyAbsSyn56 z -> happyReturn z; _other -> notHappyAtAll }) + +parseTypeP = happySomeParser where + happySomeParser = happyThen (happyParse action_9) (\x -> case x of {HappyAbsSyn42 z -> happyReturn z; _other -> notHappyAtAll }) + +parseModuleNameP = happySomeParser where + happySomeParser = happyThen (happyParse action_10) (\x -> case x of {HappyAbsSyn26 z -> happyReturn z; _other -> notHappyAtAll }) + +parseQualIdentP = happySomeParser where + happySomeParser = happyThen (happyParse action_11) (\x -> case x of {HappyAbsSyn29 z -> happyReturn z; _other -> notHappyAtAll }) + +parseModuleHeader = happySomeParser where + happySomeParser = happyThen (happyParse action_12) (\x -> case x of {HappyAbsSyn90 z -> happyReturn z; _other -> notHappyAtAll }) + +parseDoStatement = happySomeParser where + happySomeParser = happyThen (happyParse action_13) (\x -> case x of {HappyAbsSyn77 z -> happyReturn z; _other -> notHappyAtAll }) + +parseDoExpr = happySomeParser where + happySomeParser = happyThen (happyParse action_14) (\x -> case x of {HappyAbsSyn56 z -> happyReturn z; _other -> notHappyAtAll }) + +parseDoNext = happySomeParser where + happySomeParser = happyThen (happyParse action_15) (\x -> case x of {HappyAbsSyn77 z -> happyReturn z; _other -> notHappyAtAll }) + +parseGuardExpr = happySomeParser where + happySomeParser = happyThen (happyParse action_16) (\x -> case x of {HappyAbsSyn82 z -> happyReturn z; _other -> notHappyAtAll }) + +parseGuardNext = happySomeParser where + happySomeParser = happyThen (happyParse action_17) (\x -> case x of {HappyAbsSyn83 z -> happyReturn z; _other -> notHappyAtAll }) + +parseGuardStatement = happySomeParser where + happySomeParser = happyThen (happyParse action_18) (\x -> case x of {HappyAbsSyn81 z -> happyReturn z; _other -> notHappyAtAll }) + +parseClassSignature = happySomeParser where + happySomeParser = happyThen (happyParse action_19) (\x -> case x of {HappyAbsSyn109 z -> happyReturn z; _other -> notHappyAtAll }) + +parseClassSuper = happySomeParser where + happySomeParser = happyThen (happyParse action_20) (\x -> case x of {HappyAbsSyn110 z -> happyReturn z; _other -> notHappyAtAll }) + +parseClassNameAndFundeps = happySomeParser where + happySomeParser = happyThen (happyParse action_21) (\x -> case x of {HappyAbsSyn111 z -> happyReturn z; _other -> notHappyAtAll }) + +parseBinderAndArrow = happySomeParser where + happySomeParser = happyThen (happyParse action_22) (\x -> case x of {HappyAbsSyn84 z -> happyReturn z; _other -> notHappyAtAll }) + +happySeq = happyDontSeq + + +lexer :: (SourceToken -> Parser a) -> Parser a +lexer k = munch >>= k + +parse :: Text -> ([ParserWarning], Either (NE.NonEmpty ParserError) (Module ())) +parse = either (([],) . Left) resFull . parseModule . lexModule + +data PartialResult a = PartialResult + { resPartial :: a + , resFull :: ([ParserWarning], Either (NE.NonEmpty ParserError) a) + } deriving (Functor) + +parseModule :: [LexResult] -> Either (NE.NonEmpty ParserError) (PartialResult (Module ())) +parseModule toks = fmap (\header -> PartialResult header (parseFull header)) headerRes + where + (st, headerRes) = + runParser (ParserState toks [] []) parseModuleHeader + + parseFull header = do + let (ParserState _ _ warnings, res) = runParser st parseModuleBody + (warnings, (\(decls, trailing) -> header { modDecls = decls, modTrailingComments = trailing }) <$> res) +{-# LINE 1 "templates/GenericTemplate.hs" #-} +-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +data Happy_IntList = HappyCons Prelude.Int Happy_IntList + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +infixr 9 `HappyStk` +data HappyStk a = HappyStk a (HappyStk a) + +----------------------------------------------------------------------------- +-- starting the parse + +happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll + +----------------------------------------------------------------------------- +-- Accepting the parse + +-- If the current token is ERROR_TOK, it means we've just accepted a partial +-- parse (a %partial parser). We must ignore the saved token on the top of +-- the stack in this case. +happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) = + happyReturn1 ans +happyAccept j tk st sts (HappyStk ans _) = + (happyReturn1 ans) + +----------------------------------------------------------------------------- +-- Arrays only: do the next action + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +indexShortOffAddr arr off = arr Happy_Data_Array.! off + + +{-# INLINE happyLt #-} +happyLt x y = (x Prelude.< y) + + + + + + +readArrayBit arr bit = + Bits.testBit (indexShortOffAddr arr (bit `Prelude.div` 16)) (bit `Prelude.mod` 16) + + + + + + +----------------------------------------------------------------------------- +-- HappyState data type (not arrays) + + + +newtype HappyState b c = HappyState + (Prelude.Int -> -- token number + Prelude.Int -> -- token number (yes, again) + b -> -- token semantic value + HappyState b c -> -- current state + [HappyState b c] -> -- state stack + c) + + + +----------------------------------------------------------------------------- +-- Shifting a token + +happyShift new_state (1) tk st sts stk@(x `HappyStk` _) = + let i = (case x of { HappyErrorToken (i) -> i }) in +-- trace "shifting the error token" $ + new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk) + +happyShift new_state i tk st sts stk = + happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk) + +-- happyReduce is specialised for the common cases. + +happySpecReduce_0 i fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk + = action nt j tk st ((st):(sts)) (fn `HappyStk` stk) + +happySpecReduce_1 i fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk') + = let r = fn v1 in + happySeq r (action nt j tk st sts (r `HappyStk` stk')) + +happySpecReduce_2 i fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk') + = let r = fn v1 v2 in + happySeq r (action nt j tk st sts (r `HappyStk` stk')) + +happySpecReduce_3 i fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk') + = let r = fn v1 v2 v3 in + happySeq r (action nt j tk st sts (r `HappyStk` stk')) + +happyReduce k i fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happyReduce k nt fn j tk st sts stk + = case happyDrop (k Prelude.- ((1) :: Prelude.Int)) sts of + sts1@(((st1@(HappyState (action))):(_))) -> + let r = fn stk in -- it doesn't hurt to always seq here... + happyDoSeq r (action nt j tk st1 sts1 r) + +happyMonadReduce k nt fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happyMonadReduce k nt fn j tk st sts stk = + case happyDrop k ((st):(sts)) of + sts1@(((st1@(HappyState (action))):(_))) -> + let drop_stk = happyDropStk k stk in + happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk)) + +happyMonad2Reduce k nt fn (1) tk st sts stk + = happyFail [] (1) tk st sts stk +happyMonad2Reduce k nt fn j tk st sts stk = + case happyDrop k ((st):(sts)) of + sts1@(((st1@(HappyState (action))):(_))) -> + let drop_stk = happyDropStk k stk + + + + + + _ = nt :: Prelude.Int + new_state = action + + in + happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk)) + +happyDrop (0) l = l +happyDrop n ((_):(t)) = happyDrop (n Prelude.- ((1) :: Prelude.Int)) t + +happyDropStk (0) l = l +happyDropStk n (x `HappyStk` xs) = happyDropStk (n Prelude.- ((1)::Prelude.Int)) xs + +----------------------------------------------------------------------------- +-- Moving to a new state after a reduction + + + + + + + + + +happyGoto action j tk st = action j j tk (HappyState action) + + +----------------------------------------------------------------------------- +-- Error recovery (ERROR_TOK is the error token) + +-- parse error if we are in recovery and we fail again +happyFail explist (1) tk old_st _ stk@(x `HappyStk` _) = + let i = (case x of { HappyErrorToken (i) -> i }) in +-- trace "failing" $ + happyError_ explist i tk + +{- We don't need state discarding for our restricted implementation of + "error". In fact, it can cause some bogus parses, so I've disabled it + for now --SDM + +-- discard a state +happyFail ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) + (saved_tok `HappyStk` _ `HappyStk` stk) = +-- trace ("discarding state, depth " ++ show (length stk)) $ + DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk)) +-} + +-- Enter error recovery: generate an error token, +-- save the old token and carry on. +happyFail explist i tk (HappyState (action)) sts stk = +-- trace "entering error recovery" $ + action (1) (1) tk (HappyState (action)) sts ((HappyErrorToken (i)) `HappyStk` stk) + +-- Internal happy errors: + +notHappyAtAll :: a +notHappyAtAll = Prelude.error "Internal Happy error\n" + +----------------------------------------------------------------------------- +-- Hack to get the typechecker to accept our action functions + + + + + + + +----------------------------------------------------------------------------- +-- Seq-ing. If the --strict flag is given, then Happy emits +-- happySeq = happyDoSeq +-- otherwise it emits +-- happySeq = happyDontSeq + +happyDoSeq, happyDontSeq :: a -> b -> b +happyDoSeq a b = a `Prelude.seq` b +happyDontSeq a b = b + +----------------------------------------------------------------------------- +-- Don't inline any functions from the template. GHC has a nasty habit +-- of deciding to inline happyGoto everywhere, which increases the size of +-- the generated parser quite a bit. + + + + + + + + + +{-# NOINLINE happyShift #-} +{-# NOINLINE happySpecReduce_0 #-} +{-# NOINLINE happySpecReduce_1 #-} +{-# NOINLINE happySpecReduce_2 #-} +{-# NOINLINE happySpecReduce_3 #-} +{-# NOINLINE happyReduce #-} +{-# NOINLINE happyMonadReduce #-} +{-# NOINLINE happyGoto #-} +{-# NOINLINE happyFail #-} + +-- end of Happy Template. diff --git a/src/Language/PureScript/CST/Parser.info b/src/Language/PureScript/CST/Parser.info new file mode 100644 index 000000000..c61fbf1b7 --- /dev/null +++ b/src/Language/PureScript/CST/Parser.info @@ -0,0 +1,20284 @@ +----------------------------------------------------------------------------- +Info file generated by Happy Version 1.20.1.1 from src/Language/PureScript/CST/Parser.y +----------------------------------------------------------------------------- + + +----------------------------------------------------------------------------- +Grammar +----------------------------------------------------------------------------- + %start_parseType -> type (0) + %start_parseExpr -> expr (1) + %start_parseIdent -> ident (2) + %start_parseOperator -> op (3) + %start_parseModuleBody -> moduleBody (4) + %start_parseDecl -> decl (5) + %start_parseImportDeclP -> importDeclP (6) + %start_parseDeclP -> declP (7) + %start_parseExprP -> exprP (8) + %start_parseTypeP -> typeP (9) + %start_parseModuleNameP -> moduleNameP (10) + %start_parseQualIdentP -> qualIdentP (11) + %start_parseModuleHeader -> moduleHeader (12) + %start_parseDoStatement -> doStatement (13) + %start_parseDoExpr -> doExpr (14) + %start_parseDoNext -> doNext (15) + %start_parseGuardExpr -> guardExpr (16) + %start_parseGuardNext -> guardNext (17) + %start_parseGuardStatement -> guardStatement (18) + %start_parseClassSignature -> classSignature (19) + %start_parseClassSuper -> classSuper (20) + %start_parseClassNameAndFundeps -> classNameAndFundeps (21) + %start_parseBinderAndArrow -> binderAndArrow (22) + moduleName -> UPPER (23) + moduleName -> QUAL_UPPER (24) + qualProperName -> UPPER (25) + qualProperName -> QUAL_UPPER (26) + properName -> UPPER (27) + qualIdent -> LOWER (28) + qualIdent -> QUAL_LOWER (29) + qualIdent -> 'as' (30) + qualIdent -> 'hiding' (31) + qualIdent -> 'role' (32) + qualIdent -> 'nominal' (33) + qualIdent -> 'representational' (34) + qualIdent -> 'phantom' (35) + ident -> LOWER (36) + ident -> 'as' (37) + ident -> 'hiding' (38) + ident -> 'role' (39) + ident -> 'nominal' (40) + ident -> 'representational' (41) + ident -> 'phantom' (42) + qualOp -> OPERATOR (43) + qualOp -> QUAL_OPERATOR (44) + qualOp -> '<=' (45) + qualOp -> '-' (46) + qualOp -> ':' (47) + op -> OPERATOR (48) + op -> '<=' (49) + op -> '-' (50) + op -> ':' (51) + qualSymbol -> SYMBOL (52) + qualSymbol -> QUAL_SYMBOL (53) + qualSymbol -> '(..)' (54) + symbol -> SYMBOL (55) + symbol -> '(..)' (56) + label -> LOWER (57) + label -> LIT_STRING (58) + label -> LIT_RAW_STRING (59) + label -> 'ado' (60) + label -> 'as' (61) + label -> 'case' (62) + label -> 'class' (63) + label -> 'data' (64) + label -> 'derive' (65) + label -> 'do' (66) + label -> 'else' (67) + label -> 'false' (68) + label -> 'forall' (69) + label -> 'foreign' (70) + label -> 'hiding' (71) + label -> 'import' (72) + label -> 'if' (73) + label -> 'in' (74) + label -> 'infix' (75) + label -> 'infixl' (76) + label -> 'infixr' (77) + label -> 'instance' (78) + label -> 'let' (79) + label -> 'module' (80) + label -> 'newtype' (81) + label -> 'nominal' (82) + label -> 'of' (83) + label -> 'phantom' (84) + label -> 'representational' (85) + label -> 'role' (86) + label -> 'then' (87) + label -> 'true' (88) + label -> 'type' (89) + label -> 'where' (90) + hole -> LIT_HOLE (91) + string -> LIT_STRING (92) + string -> LIT_RAW_STRING (93) + char -> LIT_CHAR (94) + number -> LIT_INT (95) + number -> LIT_NUMBER (96) + int -> LIT_INT (97) + boolean -> 'true' (98) + boolean -> 'false' (99) + type -> type1 (100) + type -> type1 '::' type (101) + type1 -> type2 (102) + type1 -> forall many__typeVarBinding__ '.' type1 (103) + type2 -> type3 (104) + type2 -> type3 '->' type1 (105) + type2 -> type3 '=>' type1 (106) + type3 -> type4 (107) + type3 -> type3 qualOp type4 (108) + type4 -> type5 (109) + type4 -> '-' int (110) + type5 -> typeAtom (111) + type5 -> type5 typeAtom (112) + typeAtom -> '_' (113) + typeAtom -> ident (114) + typeAtom -> qualProperName (115) + typeAtom -> qualSymbol (116) + typeAtom -> string (117) + typeAtom -> int (118) + typeAtom -> hole (119) + typeAtom -> '(->)' (120) + typeAtom -> '{' row '}' (121) + typeAtom -> '(' row ')' (122) + typeAtom -> '(' type1 ')' (123) + typeAtom -> '(' typeKindedAtom '::' type ')' (124) + typeKindedAtom -> '_' (125) + typeKindedAtom -> qualProperName (126) + typeKindedAtom -> qualSymbol (127) + typeKindedAtom -> int (128) + typeKindedAtom -> hole (129) + typeKindedAtom -> '{' row '}' (130) + typeKindedAtom -> '(' row ')' (131) + typeKindedAtom -> '(' type1 ')' (132) + typeKindedAtom -> '(' typeKindedAtom '::' type ')' (133) + row -> (134) + row -> '|' type (135) + row -> sep__rowLabel__','__ (136) + row -> sep__rowLabel__','__ '|' type (137) + rowLabel -> label '::' type (138) + typeVarBinding -> ident (139) + typeVarBinding -> '@' ident (140) + typeVarBinding -> '(' ident '::' type ')' (141) + typeVarBinding -> '(' '@' ident '::' type ')' (142) + typeVarBindingPlain -> ident (143) + typeVarBindingPlain -> '(' ident '::' type ')' (144) + forall -> 'forall' (145) + forall -> 'forallu' (146) + exprWhere -> expr (147) + exprWhere -> expr 'where' '\{' manySep__letBinding__'\;'__ '\}' (148) + expr -> expr1 (149) + expr -> expr1 '::' type (150) + expr1 -> expr2 (151) + expr1 -> expr1 qualOp expr2 (152) + expr2 -> expr3 (153) + expr2 -> expr2 '`' exprBacktick '`' expr3 (154) + exprBacktick -> expr3 (155) + exprBacktick -> exprBacktick qualOp expr3 (156) + expr3 -> expr4 (157) + expr3 -> '-' expr3 (158) + expr4 -> expr5 (159) + expr4 -> expr4 expr5 (160) + expr4 -> expr4 '@' typeAtom (161) + expr5 -> expr6 (162) + expr5 -> 'if' expr 'then' expr 'else' expr (163) + expr5 -> doBlock (164) + expr5 -> adoBlock 'in' expr (165) + expr5 -> '\\' many__binderAtom__ '->' expr (166) + expr5 -> 'let' '\{' manySep__letBinding__'\;'__ '\}' 'in' expr (167) + expr5 -> 'case' sep__expr__','__ 'of' '\{' manySep__caseBranch__'\;'__ '\}' (168) + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '->' '\}' exprWhere (169) + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '\}' guardedCase (170) + expr6 -> expr7 (171) + expr6 -> expr7 '{' '}' (172) + expr6 -> expr7 '{' sep__recordUpdateOrLabel__','__ '}' (173) + expr7 -> exprAtom (174) + expr7 -> exprAtom '.' sep__label__'.'__ (175) + exprAtom -> '_' (176) + exprAtom -> hole (177) + exprAtom -> qualIdent (178) + exprAtom -> qualProperName (179) + exprAtom -> qualSymbol (180) + exprAtom -> boolean (181) + exprAtom -> char (182) + exprAtom -> string (183) + exprAtom -> number (184) + exprAtom -> delim__'['__expr__','__']'__ (185) + exprAtom -> delim__'{'__recordLabel__','__'}'__ (186) + exprAtom -> '(' expr ')' (187) + recordLabel -> label (188) + recordLabel -> label '=' expr (189) + recordLabel -> label ':' expr (190) + recordUpdateOrLabel -> label ':' expr (191) + recordUpdateOrLabel -> label (192) + recordUpdateOrLabel -> label '=' expr (193) + recordUpdateOrLabel -> label '{' sep__recordUpdate__','__ '}' (194) + recordUpdate -> label '=' expr (195) + recordUpdate -> label '{' sep__recordUpdate__','__ '}' (196) + letBinding -> ident '::' type (197) + letBinding -> ident guardedDecl (198) + letBinding -> ident many__binderAtom__ guardedDecl (199) + letBinding -> binder1 '=' exprWhere (200) + caseBranch -> sep__binder1__','__ guardedCase (201) + guardedDecl -> '=' exprWhere (202) + guardedDecl -> many__guardedDeclExpr__ (203) + guardedDeclExpr -> guard '=' exprWhere (204) + guardedCase -> '->' exprWhere (205) + guardedCase -> many__guardedCaseExpr__ (206) + guardedCaseExpr -> guard '->' exprWhere (207) + doBlock -> 'do' '\{' (208) + adoBlock -> 'ado' '\{' '\}' (209) + adoBlock -> 'ado' '\{' (210) + doStatement -> 'let' '\{' manySep__letBinding__'\;'__ '\}' (211) + doStatement -> (212) + doExpr -> expr (213) + doNext -> '\;' (214) + doNext -> '\}' (215) + guard -> '|' (216) + guardStatement -> (217) + guardExpr -> expr1 (218) + guardNext -> ',' (219) + guardNext -> (220) + binderAndArrow -> binder '<-' (221) + binder -> binder1 (222) + binder -> binder1 '::' type (223) + binder1 -> binder2 (224) + binder1 -> binder1 qualOp binder2 (225) + binder2 -> many__binderAtom__ (226) + binder2 -> '-' number (227) + binderAtom -> '_' (228) + binderAtom -> ident (229) + binderAtom -> ident '@' binderAtom (230) + binderAtom -> qualProperName (231) + binderAtom -> boolean (232) + binderAtom -> char (233) + binderAtom -> string (234) + binderAtom -> number (235) + binderAtom -> delim__'['__binder__','__']'__ (236) + binderAtom -> delim__'{'__recordBinder__','__'}'__ (237) + binderAtom -> '(' binder ')' (238) + recordBinder -> label (239) + recordBinder -> label '=' binder (240) + recordBinder -> label ':' binder (241) + moduleHeader -> 'module' moduleName exports 'where' '\{' moduleImports (242) + moduleBody -> moduleDecls '\}' (243) + moduleImports -> importDecls importDecl '\}' (244) + moduleImports -> importDecls (245) + importDecls -> importDecls importDecl '\;' (246) + importDecls -> (247) + moduleDecls -> manySep__moduleDecl__'\;'__ (248) + moduleDecls -> (249) + moduleDecl -> importDecl (250) + moduleDecl -> sep__decl__declElse__ (251) + declElse -> 'else' (252) + declElse -> 'else' '\;' (253) + exports -> (254) + exports -> '(' sep__export__','__ ')' (255) + export -> ident (256) + export -> symbol (257) + export -> properName (258) + export -> properName dataMembers (259) + export -> 'type' symbol (260) + export -> 'class' properName (261) + export -> 'module' moduleName (262) + dataMembers -> '(..)' (263) + dataMembers -> '(' ')' (264) + dataMembers -> '(' sep__properName__','__ ')' (265) + importDecl -> 'import' moduleName imports (266) + importDecl -> 'import' moduleName imports 'as' moduleName (267) + imports -> (268) + imports -> '(' sep__import__','__ ')' (269) + imports -> 'hiding' '(' sep__import__','__ ')' (270) + import -> ident (271) + import -> symbol (272) + import -> properName (273) + import -> properName dataMembers (274) + import -> 'type' symbol (275) + import -> 'class' properName (276) + decl -> dataHead (277) + decl -> dataHead '=' sep__dataCtor__'|'__ (278) + decl -> typeHead '=' type (279) + decl -> newtypeHead '=' properName typeAtom (280) + decl -> classHead (281) + decl -> classHead 'where' '\{' manySep__classMember__'\;'__ '\}' (282) + decl -> instHead (283) + decl -> instHead 'where' '\{' manySep__instBinding__'\;'__ '\}' (284) + decl -> 'data' properName '::' type (285) + decl -> 'newtype' properName '::' type (286) + decl -> 'type' properName '::' type (287) + decl -> 'derive' instHead (288) + decl -> 'derive' 'newtype' instHead (289) + decl -> ident '::' type (290) + decl -> ident manyOrEmpty__binderAtom__ guardedDecl (291) + decl -> fixity (292) + decl -> 'foreign' 'import' ident '::' type (293) + decl -> 'foreign' 'import' 'data' properName '::' type (294) + decl -> 'type' 'role' properName many__role__ (295) + dataHead -> 'data' properName manyOrEmpty__typeVarBindingPlain__ (296) + typeHead -> 'type' properName manyOrEmpty__typeVarBindingPlain__ (297) + newtypeHead -> 'newtype' properName manyOrEmpty__typeVarBindingPlain__ (298) + dataCtor -> properName manyOrEmpty__typeAtom__ (299) + classHead -> 'class' (300) + classSignature -> properName '::' type (301) + classSuper -> constraints '<=' (302) + classNameAndFundeps -> properName manyOrEmpty__typeVarBinding__ fundeps (303) + fundeps -> (304) + fundeps -> '|' sep__fundep__','__ (305) + fundep -> '->' many__ident__ (306) + fundep -> many__ident__ '->' many__ident__ (307) + classMember -> ident '::' type (308) + instHead -> 'instance' constraints '=>' qualProperName manyOrEmpty__typeAtom__ (309) + instHead -> 'instance' qualProperName manyOrEmpty__typeAtom__ (310) + instHead -> 'instance' ident '::' constraints '=>' qualProperName manyOrEmpty__typeAtom__ (311) + instHead -> 'instance' ident '::' qualProperName manyOrEmpty__typeAtom__ (312) + constraints -> constraint (313) + constraints -> '(' sep__constraint__','__ ')' (314) + constraint -> qualProperName manyOrEmpty__typeAtom__ (315) + constraint -> '(' constraint ')' (316) + instBinding -> ident '::' type (317) + instBinding -> ident manyOrEmpty__binderAtom__ guardedDecl (318) + fixity -> infix int qualIdent 'as' op (319) + fixity -> infix int qualProperName 'as' op (320) + fixity -> infix int 'type' qualProperName 'as' op (321) + infix -> 'infix' (322) + infix -> 'infixl' (323) + infix -> 'infixr' (324) + role -> 'nominal' (325) + role -> 'representational' (326) + role -> 'phantom' (327) + importDeclP -> importDecl (328) + declP -> decl (329) + exprP -> expr (330) + typeP -> type (331) + moduleNameP -> moduleName (332) + qualIdentP -> qualIdent (333) + delim__'['__binder__','__']'__ -> '[' ']' (334) + delim__'['__binder__','__']'__ -> '[' sep__binder__','__ ']' (335) + delim__'['__expr__','__']'__ -> '[' ']' (336) + delim__'['__expr__','__']'__ -> '[' sep__expr__','__ ']' (337) + delim__'{'__recordBinder__','__'}'__ -> '{' '}' (338) + delim__'{'__recordBinder__','__'}'__ -> '{' sep__recordBinder__','__ '}' (339) + delim__'{'__recordLabel__','__'}'__ -> '{' '}' (340) + delim__'{'__recordLabel__','__'}'__ -> '{' sep__recordLabel__','__ '}' (341) + many__binderAtom__ -> many1__binderAtom__ (342) + many__guardedCaseExpr__ -> many1__guardedCaseExpr__ (343) + many__guardedDeclExpr__ -> many1__guardedDeclExpr__ (344) + many__ident__ -> many1__ident__ (345) + many__role__ -> many1__role__ (346) + many__typeVarBinding__ -> many1__typeVarBinding__ (347) + manyOrEmpty__binderAtom__ -> (348) + manyOrEmpty__binderAtom__ -> many__binderAtom__ (349) + manyOrEmpty__typeAtom__ -> (350) + manyOrEmpty__typeAtom__ -> many__typeAtom__ (351) + manyOrEmpty__typeVarBinding__ -> (352) + manyOrEmpty__typeVarBinding__ -> many__typeVarBinding__ (353) + manyOrEmpty__typeVarBindingPlain__ -> (354) + manyOrEmpty__typeVarBindingPlain__ -> many__typeVarBindingPlain__ (355) + manySep__caseBranch__'\;'__ -> manySep1__caseBranch__'\;'__ (356) + manySep__classMember__'\;'__ -> manySep1__classMember__'\;'__ (357) + manySep__instBinding__'\;'__ -> manySep1__instBinding__'\;'__ (358) + manySep__letBinding__'\;'__ -> manySep1__letBinding__'\;'__ (359) + manySep__moduleDecl__'\;'__ -> manySep1__moduleDecl__'\;'__ (360) + sep__binder1__','__ -> sep1__binder1__','__ (361) + sep__constraint__','__ -> sep1__constraint__','__ (362) + sep__dataCtor__'|'__ -> sep1__dataCtor__'|'__ (363) + sep__decl__declElse__ -> sep1__decl__declElse__ (364) + sep__export__','__ -> sep1__export__','__ (365) + sep__expr__','__ -> sep1__expr__','__ (366) + sep__fundep__','__ -> sep1__fundep__','__ (367) + sep__import__','__ -> sep1__import__','__ (368) + sep__label__'.'__ -> sep1__label__'.'__ (369) + sep__properName__','__ -> sep1__properName__','__ (370) + sep__recordUpdate__','__ -> sep1__recordUpdate__','__ (371) + sep__recordUpdateOrLabel__','__ -> sep1__recordUpdateOrLabel__','__ (372) + sep__rowLabel__','__ -> sep1__rowLabel__','__ (373) + many__typeAtom__ -> many1__typeAtom__ (374) + many__typeVarBindingPlain__ -> many1__typeVarBindingPlain__ (375) + many1__binderAtom__ -> binderAtom (376) + many1__binderAtom__ -> many1__binderAtom__ binderAtom (377) + many1__guardedCaseExpr__ -> guardedCaseExpr (378) + many1__guardedCaseExpr__ -> many1__guardedCaseExpr__ guardedCaseExpr (379) + many1__guardedDeclExpr__ -> guardedDeclExpr (380) + many1__guardedDeclExpr__ -> many1__guardedDeclExpr__ guardedDeclExpr (381) + many1__ident__ -> ident (382) + many1__ident__ -> many1__ident__ ident (383) + many1__role__ -> role (384) + many1__role__ -> many1__role__ role (385) + many1__typeVarBinding__ -> typeVarBinding (386) + many1__typeVarBinding__ -> many1__typeVarBinding__ typeVarBinding (387) + manySep1__caseBranch__'\;'__ -> caseBranch (388) + manySep1__caseBranch__'\;'__ -> manySep1__caseBranch__'\;'__ '\;' caseBranch (389) + manySep1__classMember__'\;'__ -> classMember (390) + manySep1__classMember__'\;'__ -> manySep1__classMember__'\;'__ '\;' classMember (391) + manySep1__instBinding__'\;'__ -> instBinding (392) + manySep1__instBinding__'\;'__ -> manySep1__instBinding__'\;'__ '\;' instBinding (393) + manySep1__letBinding__'\;'__ -> letBinding (394) + manySep1__letBinding__'\;'__ -> manySep1__letBinding__'\;'__ '\;' letBinding (395) + manySep1__moduleDecl__'\;'__ -> moduleDecl (396) + manySep1__moduleDecl__'\;'__ -> manySep1__moduleDecl__'\;'__ '\;' moduleDecl (397) + sep__binder__','__ -> sep1__binder__','__ (398) + sep__recordBinder__','__ -> sep1__recordBinder__','__ (399) + sep__recordLabel__','__ -> sep1__recordLabel__','__ (400) + sep1__binder1__','__ -> binder1 (401) + sep1__binder1__','__ -> sep1__binder1__','__ ',' binder1 (402) + sep1__constraint__','__ -> constraint (403) + sep1__constraint__','__ -> sep1__constraint__','__ ',' constraint (404) + sep1__dataCtor__'|'__ -> dataCtor (405) + sep1__dataCtor__'|'__ -> sep1__dataCtor__'|'__ '|' dataCtor (406) + sep1__decl__declElse__ -> decl (407) + sep1__decl__declElse__ -> sep1__decl__declElse__ declElse decl (408) + sep1__export__','__ -> export (409) + sep1__export__','__ -> sep1__export__','__ ',' export (410) + sep1__expr__','__ -> expr (411) + sep1__expr__','__ -> sep1__expr__','__ ',' expr (412) + sep1__fundep__','__ -> fundep (413) + sep1__fundep__','__ -> sep1__fundep__','__ ',' fundep (414) + sep1__import__','__ -> import (415) + sep1__import__','__ -> sep1__import__','__ ',' import (416) + sep1__label__'.'__ -> label (417) + sep1__label__'.'__ -> sep1__label__'.'__ '.' label (418) + sep1__properName__','__ -> properName (419) + sep1__properName__','__ -> sep1__properName__','__ ',' properName (420) + sep1__recordUpdate__','__ -> recordUpdate (421) + sep1__recordUpdate__','__ -> sep1__recordUpdate__','__ ',' recordUpdate (422) + sep1__recordUpdateOrLabel__','__ -> recordUpdateOrLabel (423) + sep1__recordUpdateOrLabel__','__ -> sep1__recordUpdateOrLabel__','__ ',' recordUpdateOrLabel (424) + sep1__rowLabel__','__ -> rowLabel (425) + sep1__rowLabel__','__ -> sep1__rowLabel__','__ ',' rowLabel (426) + many1__typeAtom__ -> typeAtom (427) + many1__typeAtom__ -> many1__typeAtom__ typeAtom (428) + many1__typeVarBindingPlain__ -> typeVarBindingPlain (429) + many1__typeVarBindingPlain__ -> many1__typeVarBindingPlain__ typeVarBindingPlain (430) + sep1__binder__','__ -> binder (431) + sep1__binder__','__ -> sep1__binder__','__ ',' binder (432) + sep1__recordBinder__','__ -> recordBinder (433) + sep1__recordBinder__','__ -> sep1__recordBinder__','__ ',' recordBinder (434) + sep1__recordLabel__','__ -> recordLabel (435) + sep1__recordLabel__','__ -> sep1__recordLabel__','__ ',' recordLabel (436) + +----------------------------------------------------------------------------- +Terminals +----------------------------------------------------------------------------- + '(' { SourceToken _ TokLeftParen } + ')' { SourceToken _ TokRightParen } + '{' { SourceToken _ TokLeftBrace } + '}' { SourceToken _ TokRightBrace } + '[' { SourceToken _ TokLeftSquare } + ']' { SourceToken _ TokRightSquare } + '\{' { SourceToken _ TokLayoutStart } + '\}' { SourceToken _ TokLayoutEnd } + '\;' { SourceToken _ TokLayoutSep } + '<-' { SourceToken _ (TokLeftArrow _) } + '->' { SourceToken _ (TokRightArrow _) } + '<=' { SourceToken _ (TokOperator [] sym) | isLeftFatArrow sym } + '=>' { SourceToken _ (TokRightFatArrow _) } + ':' { SourceToken _ (TokOperator [] ":") } + '::' { SourceToken _ (TokDoubleColon _) } + '=' { SourceToken _ TokEquals } + '|' { SourceToken _ TokPipe } + '`' { SourceToken _ TokTick } + '.' { SourceToken _ TokDot } + ',' { SourceToken _ TokComma } + '_' { SourceToken _ TokUnderscore } + '\\' { SourceToken _ TokBackslash } + '-' { SourceToken _ (TokOperator [] "-") } + '@' { SourceToken _ (TokOperator [] "@") } + 'ado' { SourceToken _ (TokLowerName _ "ado") } + 'as' { SourceToken _ (TokLowerName [] "as") } + 'case' { SourceToken _ (TokLowerName [] "case") } + 'class' { SourceToken _ (TokLowerName [] "class") } + 'data' { SourceToken _ (TokLowerName [] "data") } + 'derive' { SourceToken _ (TokLowerName [] "derive") } + 'do' { SourceToken _ (TokLowerName _ "do") } + 'else' { SourceToken _ (TokLowerName [] "else") } + 'false' { SourceToken _ (TokLowerName [] "false") } + 'forall' { SourceToken _ (TokForall ASCII) } + 'forallu' { SourceToken _ (TokForall Unicode) } + 'foreign' { SourceToken _ (TokLowerName [] "foreign") } + 'hiding' { SourceToken _ (TokLowerName [] "hiding") } + 'import' { SourceToken _ (TokLowerName [] "import") } + 'if' { SourceToken _ (TokLowerName [] "if") } + 'in' { SourceToken _ (TokLowerName [] "in") } + 'infix' { SourceToken _ (TokLowerName [] "infix") } + 'infixl' { SourceToken _ (TokLowerName [] "infixl") } + 'infixr' { SourceToken _ (TokLowerName [] "infixr") } + 'instance' { SourceToken _ (TokLowerName [] "instance") } + 'let' { SourceToken _ (TokLowerName [] "let") } + 'module' { SourceToken _ (TokLowerName [] "module") } + 'newtype' { SourceToken _ (TokLowerName [] "newtype") } + 'nominal' { SourceToken _ (TokLowerName [] "nominal") } + 'phantom' { SourceToken _ (TokLowerName [] "phantom") } + 'of' { SourceToken _ (TokLowerName [] "of") } + 'representational'{ SourceToken _ (TokLowerName [] "representational") } + 'role' { SourceToken _ (TokLowerName [] "role") } + 'then' { SourceToken _ (TokLowerName [] "then") } + 'true' { SourceToken _ (TokLowerName [] "true") } + 'type' { SourceToken _ (TokLowerName [] "type") } + 'where' { SourceToken _ (TokLowerName [] "where") } + '(->)' { SourceToken _ (TokSymbolArr _) } + '(..)' { SourceToken _ (TokSymbolName [] "..") } + LOWER { SourceToken _ (TokLowerName [] _) } + QUAL_LOWER { SourceToken _ (TokLowerName _ _) } + UPPER { SourceToken _ (TokUpperName [] _) } + QUAL_UPPER { SourceToken _ (TokUpperName _ _) } + SYMBOL { SourceToken _ (TokSymbolName [] _) } + QUAL_SYMBOL { SourceToken _ (TokSymbolName _ _) } + OPERATOR { SourceToken _ (TokOperator [] _) } + QUAL_OPERATOR { SourceToken _ (TokOperator _ _) } + LIT_HOLE { SourceToken _ (TokHole _) } + LIT_CHAR { SourceToken _ (TokChar _ _) } + LIT_STRING { SourceToken _ (TokString _ _) } + LIT_RAW_STRING { SourceToken _ (TokRawString _) } + LIT_INT { SourceToken _ (TokInt _ _) } + LIT_NUMBER { SourceToken _ (TokNumber _ _) } + +----------------------------------------------------------------------------- +Non-terminals +----------------------------------------------------------------------------- + %start_parseType rule 0 + %start_parseExpr rule 1 + %start_parseIdent rule 2 + %start_parseOperator rule 3 + %start_parseModuleBody rule 4 + %start_parseDecl rule 5 + %start_parseImportDeclP rule 6 + %start_parseDeclP rule 7 + %start_parseExprP rule 8 + %start_parseTypeP rule 9 + %start_parseModuleNameP rule 10 + %start_parseQualIdentP rule 11 + %start_parseModuleHeader rule 12 + %start_parseDoStatement rule 13 + %start_parseDoExpr rule 14 + %start_parseDoNext rule 15 + %start_parseGuardExpr rule 16 + %start_parseGuardNext rule 17 + %start_parseGuardStatement rule 18 + %start_parseClassSignature rule 19 + %start_parseClassSuper rule 20 + %start_parseClassNameAndFundeps rule 21 + %start_parseBinderAndArrow rule 22 + moduleName rules 23, 24 + qualProperName rules 25, 26 + properName rule 27 + qualIdent rules 28, 29, 30, 31, 32, 33, 34, 35 + ident rules 36, 37, 38, 39, 40, 41, 42 + qualOp rules 43, 44, 45, 46, 47 + op rules 48, 49, 50, 51 + qualSymbol rules 52, 53, 54 + symbol rules 55, 56 + label rules 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 + hole rule 91 + string rules 92, 93 + char rule 94 + number rules 95, 96 + int rule 97 + boolean rules 98, 99 + type rules 100, 101 + type1 rules 102, 103 + type2 rules 104, 105, 106 + type3 rules 107, 108 + type4 rules 109, 110 + type5 rules 111, 112 + typeAtom rules 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124 + typeKindedAtom rules 125, 126, 127, 128, 129, 130, 131, 132, 133 + row rules 134, 135, 136, 137 + rowLabel rule 138 + typeVarBinding rules 139, 140, 141, 142 + typeVarBindingPlain rules 143, 144 + forall rules 145, 146 + exprWhere rules 147, 148 + expr rules 149, 150 + expr1 rules 151, 152 + expr2 rules 153, 154 + exprBacktick rules 155, 156 + expr3 rules 157, 158 + expr4 rules 159, 160, 161 + expr5 rules 162, 163, 164, 165, 166, 167, 168, 169, 170 + expr6 rules 171, 172, 173 + expr7 rules 174, 175 + exprAtom rules 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187 + recordLabel rules 188, 189, 190 + recordUpdateOrLabel rules 191, 192, 193, 194 + recordUpdate rules 195, 196 + letBinding rules 197, 198, 199, 200 + caseBranch rule 201 + guardedDecl rules 202, 203 + guardedDeclExpr rule 204 + guardedCase rules 205, 206 + guardedCaseExpr rule 207 + doBlock rule 208 + adoBlock rules 209, 210 + doStatement rules 211, 212 + doExpr rule 213 + doNext rules 214, 215 + guard rule 216 + guardStatement rule 217 + guardExpr rule 218 + guardNext rules 219, 220 + binderAndArrow rule 221 + binder rules 222, 223 + binder1 rules 224, 225 + binder2 rules 226, 227 + binderAtom rules 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238 + recordBinder rules 239, 240, 241 + moduleHeader rule 242 + moduleBody rule 243 + moduleImports rules 244, 245 + importDecls rules 246, 247 + moduleDecls rules 248, 249 + moduleDecl rules 250, 251 + declElse rules 252, 253 + exports rules 254, 255 + export rules 256, 257, 258, 259, 260, 261, 262 + dataMembers rules 263, 264, 265 + importDecl rules 266, 267 + imports rules 268, 269, 270 + import rules 271, 272, 273, 274, 275, 276 + decl rules 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295 + dataHead rule 296 + typeHead rule 297 + newtypeHead rule 298 + dataCtor rule 299 + classHead rule 300 + classSignature rule 301 + classSuper rule 302 + classNameAndFundeps rule 303 + fundeps rules 304, 305 + fundep rules 306, 307 + classMember rule 308 + instHead rules 309, 310, 311, 312 + constraints rules 313, 314 + constraint rules 315, 316 + instBinding rules 317, 318 + fixity rules 319, 320, 321 + infix rules 322, 323, 324 + role rules 325, 326, 327 + importDeclP rule 328 + declP rule 329 + exprP rule 330 + typeP rule 331 + moduleNameP rule 332 + qualIdentP rule 333 + delim__'['__binder__','__']'__ rules 334, 335 + delim__'['__expr__','__']'__ rules 336, 337 + delim__'{'__recordBinder__','__'}'__ rules 338, 339 + delim__'{'__recordLabel__','__'}'__ rules 340, 341 + many__binderAtom__ rule 342 + many__guardedCaseExpr__ rule 343 + many__guardedDeclExpr__ rule 344 + many__ident__ rule 345 + many__role__ rule 346 + many__typeVarBinding__ rule 347 + manyOrEmpty__binderAtom__ rules 348, 349 + manyOrEmpty__typeAtom__ rules 350, 351 + manyOrEmpty__typeVarBinding__ rules 352, 353 + manyOrEmpty__typeVarBindingPlain__ rules 354, 355 + manySep__caseBranch__'\;'__ rule 356 + manySep__classMember__'\;'__ rule 357 + manySep__instBinding__'\;'__ rule 358 + manySep__letBinding__'\;'__ rule 359 + manySep__moduleDecl__'\;'__ rule 360 + sep__binder1__','__ rule 361 + sep__constraint__','__ rule 362 + sep__dataCtor__'|'__ rule 363 + sep__decl__declElse__ rule 364 + sep__export__','__ rule 365 + sep__expr__','__ rule 366 + sep__fundep__','__ rule 367 + sep__import__','__ rule 368 + sep__label__'.'__ rule 369 + sep__properName__','__ rule 370 + sep__recordUpdate__','__ rule 371 + sep__recordUpdateOrLabel__','__ rule 372 + sep__rowLabel__','__ rule 373 + many__typeAtom__ rule 374 + many__typeVarBindingPlain__ rule 375 + many1__binderAtom__ rules 376, 377 + many1__guardedCaseExpr__ rules 378, 379 + many1__guardedDeclExpr__ rules 380, 381 + many1__ident__ rules 382, 383 + many1__role__ rules 384, 385 + many1__typeVarBinding__ rules 386, 387 + manySep1__caseBranch__'\;'__ rules 388, 389 + manySep1__classMember__'\;'__ rules 390, 391 + manySep1__instBinding__'\;'__ rules 392, 393 + manySep1__letBinding__'\;'__ rules 394, 395 + manySep1__moduleDecl__'\;'__ rules 396, 397 + sep__binder__','__ rule 398 + sep__recordBinder__','__ rule 399 + sep__recordLabel__','__ rule 400 + sep1__binder1__','__ rules 401, 402 + sep1__constraint__','__ rules 403, 404 + sep1__dataCtor__'|'__ rules 405, 406 + sep1__decl__declElse__ rules 407, 408 + sep1__export__','__ rules 409, 410 + sep1__expr__','__ rules 411, 412 + sep1__fundep__','__ rules 413, 414 + sep1__import__','__ rules 415, 416 + sep1__label__'.'__ rules 417, 418 + sep1__properName__','__ rules 419, 420 + sep1__recordUpdate__','__ rules 421, 422 + sep1__recordUpdateOrLabel__','__ rules 423, 424 + sep1__rowLabel__','__ rules 425, 426 + many1__typeAtom__ rules 427, 428 + many1__typeVarBindingPlain__ rules 429, 430 + sep1__binder__','__ rules 431, 432 + sep1__recordBinder__','__ rules 433, 434 + sep1__recordLabel__','__ rules 435, 436 + +----------------------------------------------------------------------------- +States +----------------------------------------------------------------------------- +State 0 + + %start_parseType -> . type (rule 0) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 198 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 1 + + %start_parseExpr -> . expr (rule 1) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 197 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 2 + + %start_parseIdent -> . ident (rule 2) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 196 + +State 3 + + %start_parseOperator -> . op (rule 3) + + '<=' shift, and enter state 192 + ':' shift, and enter state 193 + '-' shift, and enter state 194 + OPERATOR shift, and enter state 195 + + op goto state 191 + +State 4 + + %start_parseModuleBody -> . moduleBody (rule 4) + + '\}' reduce using rule 249 + 'as' shift, and enter state 45 + 'class' shift, and enter state 168 + 'data' shift, and enter state 169 + 'derive' shift, and enter state 170 + 'foreign' shift, and enter state 171 + 'hiding' shift, and enter state 47 + 'import' shift, and enter state 180 + 'infix' shift, and enter state 172 + 'infixl' shift, and enter state 173 + 'infixr' shift, and enter state 174 + 'instance' shift, and enter state 175 + 'newtype' shift, and enter state 176 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 177 + LOWER shift, and enter state 53 + + ident goto state 158 + moduleBody goto state 182 + moduleDecls goto state 183 + moduleDecl goto state 184 + importDecl goto state 185 + decl goto state 186 + dataHead goto state 160 + typeHead goto state 161 + newtypeHead goto state 162 + classHead goto state 163 + instHead goto state 164 + fixity goto state 165 + infix goto state 166 + manySep__moduleDecl__'\;'__goto state 187 + sep__decl__declElse__goto state 188 + manySep1__moduleDecl__'\;'__goto state 189 + sep1__decl__declElse__goto state 190 + +State 5 + + %start_parseDecl -> . decl (rule 5) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 168 + 'data' shift, and enter state 169 + 'derive' shift, and enter state 170 + 'foreign' shift, and enter state 171 + 'hiding' shift, and enter state 47 + 'infix' shift, and enter state 172 + 'infixl' shift, and enter state 173 + 'infixr' shift, and enter state 174 + 'instance' shift, and enter state 175 + 'newtype' shift, and enter state 176 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 177 + LOWER shift, and enter state 53 + + ident goto state 158 + decl goto state 181 + dataHead goto state 160 + typeHead goto state 161 + newtypeHead goto state 162 + classHead goto state 163 + instHead goto state 164 + fixity goto state 165 + infix goto state 166 + +State 6 + + %start_parseImportDeclP -> . importDeclP (rule 6) + + 'import' shift, and enter state 180 + + importDecl goto state 178 + importDeclP goto state 179 + +State 7 + + %start_parseDeclP -> . declP (rule 7) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 168 + 'data' shift, and enter state 169 + 'derive' shift, and enter state 170 + 'foreign' shift, and enter state 171 + 'hiding' shift, and enter state 47 + 'infix' shift, and enter state 172 + 'infixl' shift, and enter state 173 + 'infixr' shift, and enter state 174 + 'instance' shift, and enter state 175 + 'newtype' shift, and enter state 176 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 177 + LOWER shift, and enter state 53 + + ident goto state 158 + decl goto state 159 + dataHead goto state 160 + typeHead goto state 161 + newtypeHead goto state 162 + classHead goto state 163 + instHead goto state 164 + fixity goto state 165 + infix goto state 166 + declP goto state 167 + +State 8 + + %start_parseExprP -> . exprP (rule 8) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 156 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + exprP goto state 157 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 9 + + %start_parseTypeP -> . typeP (rule 9) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 139 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + typeP goto state 147 + +State 10 + + %start_parseModuleNameP -> . moduleNameP (rule 10) + + UPPER shift, and enter state 24 + QUAL_UPPER shift, and enter state 132 + + moduleName goto state 130 + moduleNameP goto state 131 + +State 11 + + %start_parseQualIdentP -> . qualIdentP (rule 11) + + 'as' shift, and enter state 102 + 'hiding' shift, and enter state 105 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + + qualIdent goto state 128 + qualIdentP goto state 129 + +State 12 + + %start_parseModuleHeader -> . moduleHeader (rule 12) + + 'module' shift, and enter state 127 + + moduleHeader goto state 126 + +State 13 + + %start_parseDoStatement -> . doStatement (rule 13) + + error reduce using rule 212 + 'let' shift, and enter state 125 + + doStatement goto state 124 + +State 14 + + %start_parseDoExpr -> . doExpr (rule 14) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 121 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + doExpr goto state 123 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 15 + + %start_parseDoNext -> . doNext (rule 15) + + '\}' shift, and enter state 119 + '\;' shift, and enter state 120 + + doNext goto state 118 + +State 16 + + %start_parseGuardExpr -> . guardExpr (rule 16) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr1 goto state 82 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + guardExpr goto state 92 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 17 + + %start_parseGuardNext -> . guardNext (rule 17) + + error reduce using rule 220 + ',' shift, and enter state 73 + + guardNext goto state 72 + +State 18 + + %start_parseGuardStatement -> . guardStatement (rule 18) + + error reduce using rule 217 + + guardStatement goto state 71 + +State 19 + + %start_parseClassSignature -> . classSignature (rule 19) + + UPPER shift, and enter state 63 + + properName goto state 69 + classSignature goto state 70 + +State 20 + + %start_parseClassSuper -> . classSuper (rule 20) + + '(' shift, and enter state 68 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 64 + classSuper goto state 65 + constraints goto state 66 + constraint goto state 67 + +State 21 + + %start_parseClassNameAndFundeps -> . classNameAndFundeps (rule 21) + + UPPER shift, and enter state 63 + + properName goto state 61 + classNameAndFundepsgoto state 62 + +State 22 + + %start_parseBinderAndArrow -> . binderAndArrow (rule 22) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binderAndArrow goto state 31 + binder goto state 32 + binder1 goto state 33 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 23 + + moduleName -> . UPPER (rule 23) + + UPPER shift, and enter state 24 + + +State 24 + + moduleName -> UPPER . (rule 23) + + error reduce using rule 23 + '(' reduce using rule 23 + ')' reduce using rule 23 + '\}' reduce using rule 23 + '\;' reduce using rule 23 + ',' reduce using rule 23 + 'as' reduce using rule 23 + 'hiding' reduce using rule 23 + 'where' reduce using rule 23 + + +State 25 + + binderAtom -> qualProperName . (rule 231) + + '(' reduce using rule 231 + ')' reduce using rule 231 + '{' reduce using rule 231 + '}' reduce using rule 231 + '[' reduce using rule 231 + ']' reduce using rule 231 + '\}' reduce using rule 231 + '<-' reduce using rule 231 + '->' reduce using rule 231 + '<=' reduce using rule 231 + ':' reduce using rule 231 + '::' reduce using rule 231 + '=' reduce using rule 231 + '|' reduce using rule 231 + ',' reduce using rule 231 + '_' reduce using rule 231 + '-' reduce using rule 231 + 'as' reduce using rule 231 + 'false' reduce using rule 231 + 'hiding' reduce using rule 231 + 'nominal' reduce using rule 231 + 'phantom' reduce using rule 231 + 'representational'reduce using rule 231 + 'role' reduce using rule 231 + 'true' reduce using rule 231 + LOWER reduce using rule 231 + UPPER reduce using rule 231 + QUAL_UPPER reduce using rule 231 + OPERATOR reduce using rule 231 + QUAL_OPERATOR reduce using rule 231 + LIT_CHAR reduce using rule 231 + LIT_STRING reduce using rule 231 + LIT_RAW_STRING reduce using rule 231 + LIT_INT reduce using rule 231 + LIT_NUMBER reduce using rule 231 + + +State 26 + + binderAtom -> ident . (rule 229) + binderAtom -> ident . '@' binderAtom (rule 230) + + '(' reduce using rule 229 + ')' reduce using rule 229 + '{' reduce using rule 229 + '}' reduce using rule 229 + '[' reduce using rule 229 + ']' reduce using rule 229 + '\}' reduce using rule 229 + '<-' reduce using rule 229 + '->' reduce using rule 229 + '<=' reduce using rule 229 + ':' reduce using rule 229 + '::' reduce using rule 229 + '=' reduce using rule 229 + '|' reduce using rule 229 + ',' reduce using rule 229 + '_' reduce using rule 229 + '-' reduce using rule 229 + '@' shift, and enter state 354 + 'as' reduce using rule 229 + 'false' reduce using rule 229 + 'hiding' reduce using rule 229 + 'nominal' reduce using rule 229 + 'phantom' reduce using rule 229 + 'representational'reduce using rule 229 + 'role' reduce using rule 229 + 'true' reduce using rule 229 + LOWER reduce using rule 229 + UPPER reduce using rule 229 + QUAL_UPPER reduce using rule 229 + OPERATOR reduce using rule 229 + QUAL_OPERATOR reduce using rule 229 + LIT_CHAR reduce using rule 229 + LIT_STRING reduce using rule 229 + LIT_RAW_STRING reduce using rule 229 + LIT_INT reduce using rule 229 + LIT_NUMBER reduce using rule 229 + + +State 27 + + binderAtom -> string . (rule 234) + + '(' reduce using rule 234 + ')' reduce using rule 234 + '{' reduce using rule 234 + '}' reduce using rule 234 + '[' reduce using rule 234 + ']' reduce using rule 234 + '\}' reduce using rule 234 + '<-' reduce using rule 234 + '->' reduce using rule 234 + '<=' reduce using rule 234 + ':' reduce using rule 234 + '::' reduce using rule 234 + '=' reduce using rule 234 + '|' reduce using rule 234 + ',' reduce using rule 234 + '_' reduce using rule 234 + '-' reduce using rule 234 + 'as' reduce using rule 234 + 'false' reduce using rule 234 + 'hiding' reduce using rule 234 + 'nominal' reduce using rule 234 + 'phantom' reduce using rule 234 + 'representational'reduce using rule 234 + 'role' reduce using rule 234 + 'true' reduce using rule 234 + LOWER reduce using rule 234 + UPPER reduce using rule 234 + QUAL_UPPER reduce using rule 234 + OPERATOR reduce using rule 234 + QUAL_OPERATOR reduce using rule 234 + LIT_CHAR reduce using rule 234 + LIT_STRING reduce using rule 234 + LIT_RAW_STRING reduce using rule 234 + LIT_INT reduce using rule 234 + LIT_NUMBER reduce using rule 234 + + +State 28 + + binderAtom -> char . (rule 233) + + '(' reduce using rule 233 + ')' reduce using rule 233 + '{' reduce using rule 233 + '}' reduce using rule 233 + '[' reduce using rule 233 + ']' reduce using rule 233 + '\}' reduce using rule 233 + '<-' reduce using rule 233 + '->' reduce using rule 233 + '<=' reduce using rule 233 + ':' reduce using rule 233 + '::' reduce using rule 233 + '=' reduce using rule 233 + '|' reduce using rule 233 + ',' reduce using rule 233 + '_' reduce using rule 233 + '-' reduce using rule 233 + 'as' reduce using rule 233 + 'false' reduce using rule 233 + 'hiding' reduce using rule 233 + 'nominal' reduce using rule 233 + 'phantom' reduce using rule 233 + 'representational'reduce using rule 233 + 'role' reduce using rule 233 + 'true' reduce using rule 233 + LOWER reduce using rule 233 + UPPER reduce using rule 233 + QUAL_UPPER reduce using rule 233 + OPERATOR reduce using rule 233 + QUAL_OPERATOR reduce using rule 233 + LIT_CHAR reduce using rule 233 + LIT_STRING reduce using rule 233 + LIT_RAW_STRING reduce using rule 233 + LIT_INT reduce using rule 233 + LIT_NUMBER reduce using rule 233 + + +State 29 + + binderAtom -> number . (rule 235) + + '(' reduce using rule 235 + ')' reduce using rule 235 + '{' reduce using rule 235 + '}' reduce using rule 235 + '[' reduce using rule 235 + ']' reduce using rule 235 + '\}' reduce using rule 235 + '<-' reduce using rule 235 + '->' reduce using rule 235 + '<=' reduce using rule 235 + ':' reduce using rule 235 + '::' reduce using rule 235 + '=' reduce using rule 235 + '|' reduce using rule 235 + ',' reduce using rule 235 + '_' reduce using rule 235 + '-' reduce using rule 235 + 'as' reduce using rule 235 + 'false' reduce using rule 235 + 'hiding' reduce using rule 235 + 'nominal' reduce using rule 235 + 'phantom' reduce using rule 235 + 'representational'reduce using rule 235 + 'role' reduce using rule 235 + 'true' reduce using rule 235 + LOWER reduce using rule 235 + UPPER reduce using rule 235 + QUAL_UPPER reduce using rule 235 + OPERATOR reduce using rule 235 + QUAL_OPERATOR reduce using rule 235 + LIT_CHAR reduce using rule 235 + LIT_STRING reduce using rule 235 + LIT_RAW_STRING reduce using rule 235 + LIT_INT reduce using rule 235 + LIT_NUMBER reduce using rule 235 + + +State 30 + + binderAtom -> boolean . (rule 232) + + '(' reduce using rule 232 + ')' reduce using rule 232 + '{' reduce using rule 232 + '}' reduce using rule 232 + '[' reduce using rule 232 + ']' reduce using rule 232 + '\}' reduce using rule 232 + '<-' reduce using rule 232 + '->' reduce using rule 232 + '<=' reduce using rule 232 + ':' reduce using rule 232 + '::' reduce using rule 232 + '=' reduce using rule 232 + '|' reduce using rule 232 + ',' reduce using rule 232 + '_' reduce using rule 232 + '-' reduce using rule 232 + 'as' reduce using rule 232 + 'false' reduce using rule 232 + 'hiding' reduce using rule 232 + 'nominal' reduce using rule 232 + 'phantom' reduce using rule 232 + 'representational'reduce using rule 232 + 'role' reduce using rule 232 + 'true' reduce using rule 232 + LOWER reduce using rule 232 + UPPER reduce using rule 232 + QUAL_UPPER reduce using rule 232 + OPERATOR reduce using rule 232 + QUAL_OPERATOR reduce using rule 232 + LIT_CHAR reduce using rule 232 + LIT_STRING reduce using rule 232 + LIT_RAW_STRING reduce using rule 232 + LIT_INT reduce using rule 232 + LIT_NUMBER reduce using rule 232 + + +State 31 + + %start_parseBinderAndArrow -> binderAndArrow . (rule 22) + + error accept + + +State 32 + + binderAndArrow -> binder . '<-' (rule 221) + + '<-' shift, and enter state 353 + + +State 33 + + binder -> binder1 . (rule 222) + binder -> binder1 . '::' type (rule 223) + binder1 -> binder1 . qualOp binder2 (rule 225) + + ')' reduce using rule 222 + '}' reduce using rule 222 + ']' reduce using rule 222 + '<-' reduce using rule 222 + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '::' shift, and enter state 352 + ',' reduce using rule 222 + '-' shift, and enter state 296 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + + qualOp goto state 351 + +State 34 + + binder1 -> binder2 . (rule 224) + + ')' reduce using rule 224 + '}' reduce using rule 224 + ']' reduce using rule 224 + '\}' reduce using rule 224 + '<-' reduce using rule 224 + '->' reduce using rule 224 + '<=' reduce using rule 224 + ':' reduce using rule 224 + '::' reduce using rule 224 + '=' reduce using rule 224 + '|' reduce using rule 224 + ',' reduce using rule 224 + '-' reduce using rule 224 + OPERATOR reduce using rule 224 + QUAL_OPERATOR reduce using rule 224 + + +State 35 + + many1__binderAtom__ -> binderAtom . (rule 376) + + '(' reduce using rule 376 + ')' reduce using rule 376 + '{' reduce using rule 376 + '}' reduce using rule 376 + '[' reduce using rule 376 + ']' reduce using rule 376 + '\}' reduce using rule 376 + '<-' reduce using rule 376 + '->' reduce using rule 376 + '<=' reduce using rule 376 + ':' reduce using rule 376 + '::' reduce using rule 376 + '=' reduce using rule 376 + '|' reduce using rule 376 + ',' reduce using rule 376 + '_' reduce using rule 376 + '-' reduce using rule 376 + 'as' reduce using rule 376 + 'false' reduce using rule 376 + 'hiding' reduce using rule 376 + 'nominal' reduce using rule 376 + 'phantom' reduce using rule 376 + 'representational'reduce using rule 376 + 'role' reduce using rule 376 + 'true' reduce using rule 376 + LOWER reduce using rule 376 + UPPER reduce using rule 376 + QUAL_UPPER reduce using rule 376 + OPERATOR reduce using rule 376 + QUAL_OPERATOR reduce using rule 376 + LIT_CHAR reduce using rule 376 + LIT_STRING reduce using rule 376 + LIT_RAW_STRING reduce using rule 376 + LIT_INT reduce using rule 376 + LIT_NUMBER reduce using rule 376 + + +State 36 + + binderAtom -> delim__'['__binder__','__']'__ . (rule 236) + + '(' reduce using rule 236 + ')' reduce using rule 236 + '{' reduce using rule 236 + '}' reduce using rule 236 + '[' reduce using rule 236 + ']' reduce using rule 236 + '\}' reduce using rule 236 + '<-' reduce using rule 236 + '->' reduce using rule 236 + '<=' reduce using rule 236 + ':' reduce using rule 236 + '::' reduce using rule 236 + '=' reduce using rule 236 + '|' reduce using rule 236 + ',' reduce using rule 236 + '_' reduce using rule 236 + '-' reduce using rule 236 + 'as' reduce using rule 236 + 'false' reduce using rule 236 + 'hiding' reduce using rule 236 + 'nominal' reduce using rule 236 + 'phantom' reduce using rule 236 + 'representational'reduce using rule 236 + 'role' reduce using rule 236 + 'true' reduce using rule 236 + LOWER reduce using rule 236 + UPPER reduce using rule 236 + QUAL_UPPER reduce using rule 236 + OPERATOR reduce using rule 236 + QUAL_OPERATOR reduce using rule 236 + LIT_CHAR reduce using rule 236 + LIT_STRING reduce using rule 236 + LIT_RAW_STRING reduce using rule 236 + LIT_INT reduce using rule 236 + LIT_NUMBER reduce using rule 236 + + +State 37 + + binderAtom -> delim__'{'__recordBinder__','__'}'__ . (rule 237) + + '(' reduce using rule 237 + ')' reduce using rule 237 + '{' reduce using rule 237 + '}' reduce using rule 237 + '[' reduce using rule 237 + ']' reduce using rule 237 + '\}' reduce using rule 237 + '<-' reduce using rule 237 + '->' reduce using rule 237 + '<=' reduce using rule 237 + ':' reduce using rule 237 + '::' reduce using rule 237 + '=' reduce using rule 237 + '|' reduce using rule 237 + ',' reduce using rule 237 + '_' reduce using rule 237 + '-' reduce using rule 237 + 'as' reduce using rule 237 + 'false' reduce using rule 237 + 'hiding' reduce using rule 237 + 'nominal' reduce using rule 237 + 'phantom' reduce using rule 237 + 'representational'reduce using rule 237 + 'role' reduce using rule 237 + 'true' reduce using rule 237 + LOWER reduce using rule 237 + UPPER reduce using rule 237 + QUAL_UPPER reduce using rule 237 + OPERATOR reduce using rule 237 + QUAL_OPERATOR reduce using rule 237 + LIT_CHAR reduce using rule 237 + LIT_STRING reduce using rule 237 + LIT_RAW_STRING reduce using rule 237 + LIT_INT reduce using rule 237 + LIT_NUMBER reduce using rule 237 + + +State 38 + + binder2 -> many__binderAtom__ . (rule 226) + + ')' reduce using rule 226 + '}' reduce using rule 226 + ']' reduce using rule 226 + '\}' reduce using rule 226 + '<-' reduce using rule 226 + '->' reduce using rule 226 + '<=' reduce using rule 226 + ':' reduce using rule 226 + '::' reduce using rule 226 + '=' reduce using rule 226 + '|' reduce using rule 226 + ',' reduce using rule 226 + '-' reduce using rule 226 + OPERATOR reduce using rule 226 + QUAL_OPERATOR reduce using rule 226 + + +State 39 + + many__binderAtom__ -> many1__binderAtom__ . (rule 342) + many1__binderAtom__ -> many1__binderAtom__ . binderAtom (rule 377) + + '(' shift, and enter state 40 + ')' reduce using rule 342 + '{' shift, and enter state 41 + '}' reduce using rule 342 + '[' shift, and enter state 42 + ']' reduce using rule 342 + '\}' reduce using rule 342 + '<-' reduce using rule 342 + '->' reduce using rule 342 + '<=' reduce using rule 342 + ':' reduce using rule 342 + '::' reduce using rule 342 + '=' reduce using rule 342 + '|' reduce using rule 342 + ',' reduce using rule 342 + '_' shift, and enter state 43 + '-' reduce using rule 342 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + OPERATOR reduce using rule 342 + QUAL_OPERATOR reduce using rule 342 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binderAtom goto state 350 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + +State 40 + + binderAtom -> '(' . binder ')' (rule 238) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder goto state 349 + binder1 goto state 33 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 41 + + delim__'{'__recordBinder__','__'}'__ -> '{' . '}' (rule 338) + delim__'{'__recordBinder__','__'}'__ -> '{' . sep__recordBinder__','__ '}' (rule 339) + + '}' shift, and enter state 348 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 344 + recordBinder goto state 345 + sep__recordBinder__','__goto state 346 + sep1__recordBinder__','__goto state 347 + +State 42 + + delim__'['__binder__','__']'__ -> '[' . ']' (rule 334) + delim__'['__binder__','__']'__ -> '[' . sep__binder__','__ ']' (rule 335) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + ']' shift, and enter state 343 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder goto state 340 + binder1 goto state 33 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + sep__binder__','__goto state 341 + sep1__binder__','__goto state 342 + +State 43 + + binderAtom -> '_' . (rule 228) + + '(' reduce using rule 228 + ')' reduce using rule 228 + '{' reduce using rule 228 + '}' reduce using rule 228 + '[' reduce using rule 228 + ']' reduce using rule 228 + '\}' reduce using rule 228 + '<-' reduce using rule 228 + '->' reduce using rule 228 + '<=' reduce using rule 228 + ':' reduce using rule 228 + '::' reduce using rule 228 + '=' reduce using rule 228 + '|' reduce using rule 228 + ',' reduce using rule 228 + '_' reduce using rule 228 + '-' reduce using rule 228 + 'as' reduce using rule 228 + 'false' reduce using rule 228 + 'hiding' reduce using rule 228 + 'nominal' reduce using rule 228 + 'phantom' reduce using rule 228 + 'representational'reduce using rule 228 + 'role' reduce using rule 228 + 'true' reduce using rule 228 + LOWER reduce using rule 228 + UPPER reduce using rule 228 + QUAL_UPPER reduce using rule 228 + OPERATOR reduce using rule 228 + QUAL_OPERATOR reduce using rule 228 + LIT_CHAR reduce using rule 228 + LIT_STRING reduce using rule 228 + LIT_RAW_STRING reduce using rule 228 + LIT_INT reduce using rule 228 + LIT_NUMBER reduce using rule 228 + + +State 44 + + binder2 -> '-' . number (rule 227) + + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + number goto state 339 + +State 45 + + ident -> 'as' . (rule 37) + + error reduce using rule 37 + '(' reduce using rule 37 + ')' reduce using rule 37 + '{' reduce using rule 37 + '}' reduce using rule 37 + '[' reduce using rule 37 + ']' reduce using rule 37 + '\}' reduce using rule 37 + '\;' reduce using rule 37 + '<-' reduce using rule 37 + '->' reduce using rule 37 + '<=' reduce using rule 37 + '=>' reduce using rule 37 + ':' reduce using rule 37 + '::' reduce using rule 37 + '=' reduce using rule 37 + '|' reduce using rule 37 + '`' reduce using rule 37 + '.' reduce using rule 37 + ',' reduce using rule 37 + '_' reduce using rule 37 + '\\' reduce using rule 37 + '-' reduce using rule 37 + '@' reduce using rule 37 + 'ado' reduce using rule 37 + 'as' reduce using rule 37 + 'case' reduce using rule 37 + 'do' reduce using rule 37 + 'else' reduce using rule 37 + 'false' reduce using rule 37 + 'hiding' reduce using rule 37 + 'if' reduce using rule 37 + 'let' reduce using rule 37 + 'nominal' reduce using rule 37 + 'phantom' reduce using rule 37 + 'of' reduce using rule 37 + 'representational'reduce using rule 37 + 'role' reduce using rule 37 + 'then' reduce using rule 37 + 'true' reduce using rule 37 + 'where' reduce using rule 37 + '(->)' reduce using rule 37 + '(..)' reduce using rule 37 + LOWER reduce using rule 37 + QUAL_LOWER reduce using rule 37 + UPPER reduce using rule 37 + QUAL_UPPER reduce using rule 37 + SYMBOL reduce using rule 37 + QUAL_SYMBOL reduce using rule 37 + OPERATOR reduce using rule 37 + QUAL_OPERATOR reduce using rule 37 + LIT_HOLE reduce using rule 37 + LIT_CHAR reduce using rule 37 + LIT_STRING reduce using rule 37 + LIT_RAW_STRING reduce using rule 37 + LIT_INT reduce using rule 37 + LIT_NUMBER reduce using rule 37 + %eof reduce using rule 37 + + +State 46 + + boolean -> 'false' . (rule 99) + + error reduce using rule 99 + '(' reduce using rule 99 + ')' reduce using rule 99 + '{' reduce using rule 99 + '}' reduce using rule 99 + '[' reduce using rule 99 + ']' reduce using rule 99 + '\}' reduce using rule 99 + '\;' reduce using rule 99 + '<-' reduce using rule 99 + '->' reduce using rule 99 + '<=' reduce using rule 99 + ':' reduce using rule 99 + '::' reduce using rule 99 + '=' reduce using rule 99 + '|' reduce using rule 99 + '`' reduce using rule 99 + '.' reduce using rule 99 + ',' reduce using rule 99 + '_' reduce using rule 99 + '\\' reduce using rule 99 + '-' reduce using rule 99 + '@' reduce using rule 99 + 'ado' reduce using rule 99 + 'as' reduce using rule 99 + 'case' reduce using rule 99 + 'do' reduce using rule 99 + 'else' reduce using rule 99 + 'false' reduce using rule 99 + 'hiding' reduce using rule 99 + 'if' reduce using rule 99 + 'let' reduce using rule 99 + 'nominal' reduce using rule 99 + 'phantom' reduce using rule 99 + 'of' reduce using rule 99 + 'representational'reduce using rule 99 + 'role' reduce using rule 99 + 'then' reduce using rule 99 + 'true' reduce using rule 99 + 'where' reduce using rule 99 + '(..)' reduce using rule 99 + LOWER reduce using rule 99 + QUAL_LOWER reduce using rule 99 + UPPER reduce using rule 99 + QUAL_UPPER reduce using rule 99 + SYMBOL reduce using rule 99 + QUAL_SYMBOL reduce using rule 99 + OPERATOR reduce using rule 99 + QUAL_OPERATOR reduce using rule 99 + LIT_HOLE reduce using rule 99 + LIT_CHAR reduce using rule 99 + LIT_STRING reduce using rule 99 + LIT_RAW_STRING reduce using rule 99 + LIT_INT reduce using rule 99 + LIT_NUMBER reduce using rule 99 + %eof reduce using rule 99 + + +State 47 + + ident -> 'hiding' . (rule 38) + + error reduce using rule 38 + '(' reduce using rule 38 + ')' reduce using rule 38 + '{' reduce using rule 38 + '}' reduce using rule 38 + '[' reduce using rule 38 + ']' reduce using rule 38 + '\}' reduce using rule 38 + '\;' reduce using rule 38 + '<-' reduce using rule 38 + '->' reduce using rule 38 + '<=' reduce using rule 38 + '=>' reduce using rule 38 + ':' reduce using rule 38 + '::' reduce using rule 38 + '=' reduce using rule 38 + '|' reduce using rule 38 + '`' reduce using rule 38 + '.' reduce using rule 38 + ',' reduce using rule 38 + '_' reduce using rule 38 + '\\' reduce using rule 38 + '-' reduce using rule 38 + '@' reduce using rule 38 + 'ado' reduce using rule 38 + 'as' reduce using rule 38 + 'case' reduce using rule 38 + 'do' reduce using rule 38 + 'else' reduce using rule 38 + 'false' reduce using rule 38 + 'hiding' reduce using rule 38 + 'if' reduce using rule 38 + 'let' reduce using rule 38 + 'nominal' reduce using rule 38 + 'phantom' reduce using rule 38 + 'of' reduce using rule 38 + 'representational'reduce using rule 38 + 'role' reduce using rule 38 + 'then' reduce using rule 38 + 'true' reduce using rule 38 + 'where' reduce using rule 38 + '(->)' reduce using rule 38 + '(..)' reduce using rule 38 + LOWER reduce using rule 38 + QUAL_LOWER reduce using rule 38 + UPPER reduce using rule 38 + QUAL_UPPER reduce using rule 38 + SYMBOL reduce using rule 38 + QUAL_SYMBOL reduce using rule 38 + OPERATOR reduce using rule 38 + QUAL_OPERATOR reduce using rule 38 + LIT_HOLE reduce using rule 38 + LIT_CHAR reduce using rule 38 + LIT_STRING reduce using rule 38 + LIT_RAW_STRING reduce using rule 38 + LIT_INT reduce using rule 38 + LIT_NUMBER reduce using rule 38 + %eof reduce using rule 38 + + +State 48 + + ident -> 'nominal' . (rule 40) + + error reduce using rule 40 + '(' reduce using rule 40 + ')' reduce using rule 40 + '{' reduce using rule 40 + '}' reduce using rule 40 + '[' reduce using rule 40 + ']' reduce using rule 40 + '\}' reduce using rule 40 + '\;' reduce using rule 40 + '<-' reduce using rule 40 + '->' reduce using rule 40 + '<=' reduce using rule 40 + '=>' reduce using rule 40 + ':' reduce using rule 40 + '::' reduce using rule 40 + '=' reduce using rule 40 + '|' reduce using rule 40 + '`' reduce using rule 40 + '.' reduce using rule 40 + ',' reduce using rule 40 + '_' reduce using rule 40 + '\\' reduce using rule 40 + '-' reduce using rule 40 + '@' reduce using rule 40 + 'ado' reduce using rule 40 + 'as' reduce using rule 40 + 'case' reduce using rule 40 + 'do' reduce using rule 40 + 'else' reduce using rule 40 + 'false' reduce using rule 40 + 'hiding' reduce using rule 40 + 'if' reduce using rule 40 + 'let' reduce using rule 40 + 'nominal' reduce using rule 40 + 'phantom' reduce using rule 40 + 'of' reduce using rule 40 + 'representational'reduce using rule 40 + 'role' reduce using rule 40 + 'then' reduce using rule 40 + 'true' reduce using rule 40 + 'where' reduce using rule 40 + '(->)' reduce using rule 40 + '(..)' reduce using rule 40 + LOWER reduce using rule 40 + QUAL_LOWER reduce using rule 40 + UPPER reduce using rule 40 + QUAL_UPPER reduce using rule 40 + SYMBOL reduce using rule 40 + QUAL_SYMBOL reduce using rule 40 + OPERATOR reduce using rule 40 + QUAL_OPERATOR reduce using rule 40 + LIT_HOLE reduce using rule 40 + LIT_CHAR reduce using rule 40 + LIT_STRING reduce using rule 40 + LIT_RAW_STRING reduce using rule 40 + LIT_INT reduce using rule 40 + LIT_NUMBER reduce using rule 40 + %eof reduce using rule 40 + + +State 49 + + ident -> 'phantom' . (rule 42) + + error reduce using rule 42 + '(' reduce using rule 42 + ')' reduce using rule 42 + '{' reduce using rule 42 + '}' reduce using rule 42 + '[' reduce using rule 42 + ']' reduce using rule 42 + '\}' reduce using rule 42 + '\;' reduce using rule 42 + '<-' reduce using rule 42 + '->' reduce using rule 42 + '<=' reduce using rule 42 + '=>' reduce using rule 42 + ':' reduce using rule 42 + '::' reduce using rule 42 + '=' reduce using rule 42 + '|' reduce using rule 42 + '`' reduce using rule 42 + '.' reduce using rule 42 + ',' reduce using rule 42 + '_' reduce using rule 42 + '\\' reduce using rule 42 + '-' reduce using rule 42 + '@' reduce using rule 42 + 'ado' reduce using rule 42 + 'as' reduce using rule 42 + 'case' reduce using rule 42 + 'do' reduce using rule 42 + 'else' reduce using rule 42 + 'false' reduce using rule 42 + 'hiding' reduce using rule 42 + 'if' reduce using rule 42 + 'let' reduce using rule 42 + 'nominal' reduce using rule 42 + 'phantom' reduce using rule 42 + 'of' reduce using rule 42 + 'representational'reduce using rule 42 + 'role' reduce using rule 42 + 'then' reduce using rule 42 + 'true' reduce using rule 42 + 'where' reduce using rule 42 + '(->)' reduce using rule 42 + '(..)' reduce using rule 42 + LOWER reduce using rule 42 + QUAL_LOWER reduce using rule 42 + UPPER reduce using rule 42 + QUAL_UPPER reduce using rule 42 + SYMBOL reduce using rule 42 + QUAL_SYMBOL reduce using rule 42 + OPERATOR reduce using rule 42 + QUAL_OPERATOR reduce using rule 42 + LIT_HOLE reduce using rule 42 + LIT_CHAR reduce using rule 42 + LIT_STRING reduce using rule 42 + LIT_RAW_STRING reduce using rule 42 + LIT_INT reduce using rule 42 + LIT_NUMBER reduce using rule 42 + %eof reduce using rule 42 + + +State 50 + + ident -> 'representational' . (rule 41) + + error reduce using rule 41 + '(' reduce using rule 41 + ')' reduce using rule 41 + '{' reduce using rule 41 + '}' reduce using rule 41 + '[' reduce using rule 41 + ']' reduce using rule 41 + '\}' reduce using rule 41 + '\;' reduce using rule 41 + '<-' reduce using rule 41 + '->' reduce using rule 41 + '<=' reduce using rule 41 + '=>' reduce using rule 41 + ':' reduce using rule 41 + '::' reduce using rule 41 + '=' reduce using rule 41 + '|' reduce using rule 41 + '`' reduce using rule 41 + '.' reduce using rule 41 + ',' reduce using rule 41 + '_' reduce using rule 41 + '\\' reduce using rule 41 + '-' reduce using rule 41 + '@' reduce using rule 41 + 'ado' reduce using rule 41 + 'as' reduce using rule 41 + 'case' reduce using rule 41 + 'do' reduce using rule 41 + 'else' reduce using rule 41 + 'false' reduce using rule 41 + 'hiding' reduce using rule 41 + 'if' reduce using rule 41 + 'let' reduce using rule 41 + 'nominal' reduce using rule 41 + 'phantom' reduce using rule 41 + 'of' reduce using rule 41 + 'representational'reduce using rule 41 + 'role' reduce using rule 41 + 'then' reduce using rule 41 + 'true' reduce using rule 41 + 'where' reduce using rule 41 + '(->)' reduce using rule 41 + '(..)' reduce using rule 41 + LOWER reduce using rule 41 + QUAL_LOWER reduce using rule 41 + UPPER reduce using rule 41 + QUAL_UPPER reduce using rule 41 + SYMBOL reduce using rule 41 + QUAL_SYMBOL reduce using rule 41 + OPERATOR reduce using rule 41 + QUAL_OPERATOR reduce using rule 41 + LIT_HOLE reduce using rule 41 + LIT_CHAR reduce using rule 41 + LIT_STRING reduce using rule 41 + LIT_RAW_STRING reduce using rule 41 + LIT_INT reduce using rule 41 + LIT_NUMBER reduce using rule 41 + %eof reduce using rule 41 + + +State 51 + + ident -> 'role' . (rule 39) + + error reduce using rule 39 + '(' reduce using rule 39 + ')' reduce using rule 39 + '{' reduce using rule 39 + '}' reduce using rule 39 + '[' reduce using rule 39 + ']' reduce using rule 39 + '\}' reduce using rule 39 + '\;' reduce using rule 39 + '<-' reduce using rule 39 + '->' reduce using rule 39 + '<=' reduce using rule 39 + '=>' reduce using rule 39 + ':' reduce using rule 39 + '::' reduce using rule 39 + '=' reduce using rule 39 + '|' reduce using rule 39 + '`' reduce using rule 39 + '.' reduce using rule 39 + ',' reduce using rule 39 + '_' reduce using rule 39 + '\\' reduce using rule 39 + '-' reduce using rule 39 + '@' reduce using rule 39 + 'ado' reduce using rule 39 + 'as' reduce using rule 39 + 'case' reduce using rule 39 + 'do' reduce using rule 39 + 'else' reduce using rule 39 + 'false' reduce using rule 39 + 'hiding' reduce using rule 39 + 'if' reduce using rule 39 + 'let' reduce using rule 39 + 'nominal' reduce using rule 39 + 'phantom' reduce using rule 39 + 'of' reduce using rule 39 + 'representational'reduce using rule 39 + 'role' reduce using rule 39 + 'then' reduce using rule 39 + 'true' reduce using rule 39 + 'where' reduce using rule 39 + '(->)' reduce using rule 39 + '(..)' reduce using rule 39 + LOWER reduce using rule 39 + QUAL_LOWER reduce using rule 39 + UPPER reduce using rule 39 + QUAL_UPPER reduce using rule 39 + SYMBOL reduce using rule 39 + QUAL_SYMBOL reduce using rule 39 + OPERATOR reduce using rule 39 + QUAL_OPERATOR reduce using rule 39 + LIT_HOLE reduce using rule 39 + LIT_CHAR reduce using rule 39 + LIT_STRING reduce using rule 39 + LIT_RAW_STRING reduce using rule 39 + LIT_INT reduce using rule 39 + LIT_NUMBER reduce using rule 39 + %eof reduce using rule 39 + + +State 52 + + boolean -> 'true' . (rule 98) + + error reduce using rule 98 + '(' reduce using rule 98 + ')' reduce using rule 98 + '{' reduce using rule 98 + '}' reduce using rule 98 + '[' reduce using rule 98 + ']' reduce using rule 98 + '\}' reduce using rule 98 + '\;' reduce using rule 98 + '<-' reduce using rule 98 + '->' reduce using rule 98 + '<=' reduce using rule 98 + ':' reduce using rule 98 + '::' reduce using rule 98 + '=' reduce using rule 98 + '|' reduce using rule 98 + '`' reduce using rule 98 + '.' reduce using rule 98 + ',' reduce using rule 98 + '_' reduce using rule 98 + '\\' reduce using rule 98 + '-' reduce using rule 98 + '@' reduce using rule 98 + 'ado' reduce using rule 98 + 'as' reduce using rule 98 + 'case' reduce using rule 98 + 'do' reduce using rule 98 + 'else' reduce using rule 98 + 'false' reduce using rule 98 + 'hiding' reduce using rule 98 + 'if' reduce using rule 98 + 'let' reduce using rule 98 + 'nominal' reduce using rule 98 + 'phantom' reduce using rule 98 + 'of' reduce using rule 98 + 'representational'reduce using rule 98 + 'role' reduce using rule 98 + 'then' reduce using rule 98 + 'true' reduce using rule 98 + 'where' reduce using rule 98 + '(..)' reduce using rule 98 + LOWER reduce using rule 98 + QUAL_LOWER reduce using rule 98 + UPPER reduce using rule 98 + QUAL_UPPER reduce using rule 98 + SYMBOL reduce using rule 98 + QUAL_SYMBOL reduce using rule 98 + OPERATOR reduce using rule 98 + QUAL_OPERATOR reduce using rule 98 + LIT_HOLE reduce using rule 98 + LIT_CHAR reduce using rule 98 + LIT_STRING reduce using rule 98 + LIT_RAW_STRING reduce using rule 98 + LIT_INT reduce using rule 98 + LIT_NUMBER reduce using rule 98 + %eof reduce using rule 98 + + +State 53 + + ident -> LOWER . (rule 36) + + error reduce using rule 36 + '(' reduce using rule 36 + ')' reduce using rule 36 + '{' reduce using rule 36 + '}' reduce using rule 36 + '[' reduce using rule 36 + ']' reduce using rule 36 + '\}' reduce using rule 36 + '\;' reduce using rule 36 + '<-' reduce using rule 36 + '->' reduce using rule 36 + '<=' reduce using rule 36 + '=>' reduce using rule 36 + ':' reduce using rule 36 + '::' reduce using rule 36 + '=' reduce using rule 36 + '|' reduce using rule 36 + '`' reduce using rule 36 + '.' reduce using rule 36 + ',' reduce using rule 36 + '_' reduce using rule 36 + '\\' reduce using rule 36 + '-' reduce using rule 36 + '@' reduce using rule 36 + 'ado' reduce using rule 36 + 'as' reduce using rule 36 + 'case' reduce using rule 36 + 'do' reduce using rule 36 + 'else' reduce using rule 36 + 'false' reduce using rule 36 + 'hiding' reduce using rule 36 + 'if' reduce using rule 36 + 'let' reduce using rule 36 + 'nominal' reduce using rule 36 + 'phantom' reduce using rule 36 + 'of' reduce using rule 36 + 'representational'reduce using rule 36 + 'role' reduce using rule 36 + 'then' reduce using rule 36 + 'true' reduce using rule 36 + 'where' reduce using rule 36 + '(->)' reduce using rule 36 + '(..)' reduce using rule 36 + LOWER reduce using rule 36 + QUAL_LOWER reduce using rule 36 + UPPER reduce using rule 36 + QUAL_UPPER reduce using rule 36 + SYMBOL reduce using rule 36 + QUAL_SYMBOL reduce using rule 36 + OPERATOR reduce using rule 36 + QUAL_OPERATOR reduce using rule 36 + LIT_HOLE reduce using rule 36 + LIT_CHAR reduce using rule 36 + LIT_STRING reduce using rule 36 + LIT_RAW_STRING reduce using rule 36 + LIT_INT reduce using rule 36 + LIT_NUMBER reduce using rule 36 + %eof reduce using rule 36 + + +State 54 + + qualProperName -> UPPER . (rule 25) + + error reduce using rule 25 + '(' reduce using rule 25 + ')' reduce using rule 25 + '{' reduce using rule 25 + '}' reduce using rule 25 + '[' reduce using rule 25 + ']' reduce using rule 25 + '\}' reduce using rule 25 + '\;' reduce using rule 25 + '<-' reduce using rule 25 + '->' reduce using rule 25 + '<=' reduce using rule 25 + '=>' reduce using rule 25 + ':' reduce using rule 25 + '::' reduce using rule 25 + '=' reduce using rule 25 + '|' reduce using rule 25 + '`' reduce using rule 25 + '.' reduce using rule 25 + ',' reduce using rule 25 + '_' reduce using rule 25 + '\\' reduce using rule 25 + '-' reduce using rule 25 + '@' reduce using rule 25 + 'ado' reduce using rule 25 + 'as' reduce using rule 25 + 'case' reduce using rule 25 + 'do' reduce using rule 25 + 'else' reduce using rule 25 + 'false' reduce using rule 25 + 'hiding' reduce using rule 25 + 'if' reduce using rule 25 + 'let' reduce using rule 25 + 'nominal' reduce using rule 25 + 'phantom' reduce using rule 25 + 'of' reduce using rule 25 + 'representational'reduce using rule 25 + 'role' reduce using rule 25 + 'then' reduce using rule 25 + 'true' reduce using rule 25 + 'where' reduce using rule 25 + '(->)' reduce using rule 25 + '(..)' reduce using rule 25 + LOWER reduce using rule 25 + QUAL_LOWER reduce using rule 25 + UPPER reduce using rule 25 + QUAL_UPPER reduce using rule 25 + SYMBOL reduce using rule 25 + QUAL_SYMBOL reduce using rule 25 + OPERATOR reduce using rule 25 + QUAL_OPERATOR reduce using rule 25 + LIT_HOLE reduce using rule 25 + LIT_CHAR reduce using rule 25 + LIT_STRING reduce using rule 25 + LIT_RAW_STRING reduce using rule 25 + LIT_INT reduce using rule 25 + LIT_NUMBER reduce using rule 25 + %eof reduce using rule 25 + + +State 55 + + qualProperName -> QUAL_UPPER . (rule 26) + + error reduce using rule 26 + '(' reduce using rule 26 + ')' reduce using rule 26 + '{' reduce using rule 26 + '}' reduce using rule 26 + '[' reduce using rule 26 + ']' reduce using rule 26 + '\}' reduce using rule 26 + '\;' reduce using rule 26 + '<-' reduce using rule 26 + '->' reduce using rule 26 + '<=' reduce using rule 26 + '=>' reduce using rule 26 + ':' reduce using rule 26 + '::' reduce using rule 26 + '=' reduce using rule 26 + '|' reduce using rule 26 + '`' reduce using rule 26 + '.' reduce using rule 26 + ',' reduce using rule 26 + '_' reduce using rule 26 + '\\' reduce using rule 26 + '-' reduce using rule 26 + '@' reduce using rule 26 + 'ado' reduce using rule 26 + 'as' reduce using rule 26 + 'case' reduce using rule 26 + 'do' reduce using rule 26 + 'else' reduce using rule 26 + 'false' reduce using rule 26 + 'hiding' reduce using rule 26 + 'if' reduce using rule 26 + 'let' reduce using rule 26 + 'nominal' reduce using rule 26 + 'phantom' reduce using rule 26 + 'of' reduce using rule 26 + 'representational'reduce using rule 26 + 'role' reduce using rule 26 + 'then' reduce using rule 26 + 'true' reduce using rule 26 + 'where' reduce using rule 26 + '(->)' reduce using rule 26 + '(..)' reduce using rule 26 + LOWER reduce using rule 26 + QUAL_LOWER reduce using rule 26 + UPPER reduce using rule 26 + QUAL_UPPER reduce using rule 26 + SYMBOL reduce using rule 26 + QUAL_SYMBOL reduce using rule 26 + OPERATOR reduce using rule 26 + QUAL_OPERATOR reduce using rule 26 + LIT_HOLE reduce using rule 26 + LIT_CHAR reduce using rule 26 + LIT_STRING reduce using rule 26 + LIT_RAW_STRING reduce using rule 26 + LIT_INT reduce using rule 26 + LIT_NUMBER reduce using rule 26 + %eof reduce using rule 26 + + +State 56 + + char -> LIT_CHAR . (rule 94) + + error reduce using rule 94 + '(' reduce using rule 94 + ')' reduce using rule 94 + '{' reduce using rule 94 + '}' reduce using rule 94 + '[' reduce using rule 94 + ']' reduce using rule 94 + '\}' reduce using rule 94 + '\;' reduce using rule 94 + '<-' reduce using rule 94 + '->' reduce using rule 94 + '<=' reduce using rule 94 + ':' reduce using rule 94 + '::' reduce using rule 94 + '=' reduce using rule 94 + '|' reduce using rule 94 + '`' reduce using rule 94 + '.' reduce using rule 94 + ',' reduce using rule 94 + '_' reduce using rule 94 + '\\' reduce using rule 94 + '-' reduce using rule 94 + '@' reduce using rule 94 + 'ado' reduce using rule 94 + 'as' reduce using rule 94 + 'case' reduce using rule 94 + 'do' reduce using rule 94 + 'else' reduce using rule 94 + 'false' reduce using rule 94 + 'hiding' reduce using rule 94 + 'if' reduce using rule 94 + 'let' reduce using rule 94 + 'nominal' reduce using rule 94 + 'phantom' reduce using rule 94 + 'of' reduce using rule 94 + 'representational'reduce using rule 94 + 'role' reduce using rule 94 + 'then' reduce using rule 94 + 'true' reduce using rule 94 + 'where' reduce using rule 94 + '(..)' reduce using rule 94 + LOWER reduce using rule 94 + QUAL_LOWER reduce using rule 94 + UPPER reduce using rule 94 + QUAL_UPPER reduce using rule 94 + SYMBOL reduce using rule 94 + QUAL_SYMBOL reduce using rule 94 + OPERATOR reduce using rule 94 + QUAL_OPERATOR reduce using rule 94 + LIT_HOLE reduce using rule 94 + LIT_CHAR reduce using rule 94 + LIT_STRING reduce using rule 94 + LIT_RAW_STRING reduce using rule 94 + LIT_INT reduce using rule 94 + LIT_NUMBER reduce using rule 94 + %eof reduce using rule 94 + + +State 57 + + string -> LIT_STRING . (rule 92) + + error reduce using rule 92 + '(' reduce using rule 92 + ')' reduce using rule 92 + '{' reduce using rule 92 + '}' reduce using rule 92 + '[' reduce using rule 92 + ']' reduce using rule 92 + '\}' reduce using rule 92 + '\;' reduce using rule 92 + '<-' reduce using rule 92 + '->' reduce using rule 92 + '<=' reduce using rule 92 + '=>' reduce using rule 92 + ':' reduce using rule 92 + '::' reduce using rule 92 + '=' reduce using rule 92 + '|' reduce using rule 92 + '`' reduce using rule 92 + '.' reduce using rule 92 + ',' reduce using rule 92 + '_' reduce using rule 92 + '\\' reduce using rule 92 + '-' reduce using rule 92 + '@' reduce using rule 92 + 'ado' reduce using rule 92 + 'as' reduce using rule 92 + 'case' reduce using rule 92 + 'do' reduce using rule 92 + 'else' reduce using rule 92 + 'false' reduce using rule 92 + 'hiding' reduce using rule 92 + 'if' reduce using rule 92 + 'let' reduce using rule 92 + 'nominal' reduce using rule 92 + 'phantom' reduce using rule 92 + 'of' reduce using rule 92 + 'representational'reduce using rule 92 + 'role' reduce using rule 92 + 'then' reduce using rule 92 + 'true' reduce using rule 92 + 'where' reduce using rule 92 + '(->)' reduce using rule 92 + '(..)' reduce using rule 92 + LOWER reduce using rule 92 + QUAL_LOWER reduce using rule 92 + UPPER reduce using rule 92 + QUAL_UPPER reduce using rule 92 + SYMBOL reduce using rule 92 + QUAL_SYMBOL reduce using rule 92 + OPERATOR reduce using rule 92 + QUAL_OPERATOR reduce using rule 92 + LIT_HOLE reduce using rule 92 + LIT_CHAR reduce using rule 92 + LIT_STRING reduce using rule 92 + LIT_RAW_STRING reduce using rule 92 + LIT_INT reduce using rule 92 + LIT_NUMBER reduce using rule 92 + %eof reduce using rule 92 + + +State 58 + + string -> LIT_RAW_STRING . (rule 93) + + error reduce using rule 93 + '(' reduce using rule 93 + ')' reduce using rule 93 + '{' reduce using rule 93 + '}' reduce using rule 93 + '[' reduce using rule 93 + ']' reduce using rule 93 + '\}' reduce using rule 93 + '\;' reduce using rule 93 + '<-' reduce using rule 93 + '->' reduce using rule 93 + '<=' reduce using rule 93 + '=>' reduce using rule 93 + ':' reduce using rule 93 + '::' reduce using rule 93 + '=' reduce using rule 93 + '|' reduce using rule 93 + '`' reduce using rule 93 + '.' reduce using rule 93 + ',' reduce using rule 93 + '_' reduce using rule 93 + '\\' reduce using rule 93 + '-' reduce using rule 93 + '@' reduce using rule 93 + 'ado' reduce using rule 93 + 'as' reduce using rule 93 + 'case' reduce using rule 93 + 'do' reduce using rule 93 + 'else' reduce using rule 93 + 'false' reduce using rule 93 + 'hiding' reduce using rule 93 + 'if' reduce using rule 93 + 'let' reduce using rule 93 + 'nominal' reduce using rule 93 + 'phantom' reduce using rule 93 + 'of' reduce using rule 93 + 'representational'reduce using rule 93 + 'role' reduce using rule 93 + 'then' reduce using rule 93 + 'true' reduce using rule 93 + 'where' reduce using rule 93 + '(->)' reduce using rule 93 + '(..)' reduce using rule 93 + LOWER reduce using rule 93 + QUAL_LOWER reduce using rule 93 + UPPER reduce using rule 93 + QUAL_UPPER reduce using rule 93 + SYMBOL reduce using rule 93 + QUAL_SYMBOL reduce using rule 93 + OPERATOR reduce using rule 93 + QUAL_OPERATOR reduce using rule 93 + LIT_HOLE reduce using rule 93 + LIT_CHAR reduce using rule 93 + LIT_STRING reduce using rule 93 + LIT_RAW_STRING reduce using rule 93 + LIT_INT reduce using rule 93 + LIT_NUMBER reduce using rule 93 + %eof reduce using rule 93 + + +State 59 + + number -> LIT_INT . (rule 95) + + error reduce using rule 95 + '(' reduce using rule 95 + ')' reduce using rule 95 + '{' reduce using rule 95 + '}' reduce using rule 95 + '[' reduce using rule 95 + ']' reduce using rule 95 + '\}' reduce using rule 95 + '\;' reduce using rule 95 + '<-' reduce using rule 95 + '->' reduce using rule 95 + '<=' reduce using rule 95 + ':' reduce using rule 95 + '::' reduce using rule 95 + '=' reduce using rule 95 + '|' reduce using rule 95 + '`' reduce using rule 95 + '.' reduce using rule 95 + ',' reduce using rule 95 + '_' reduce using rule 95 + '\\' reduce using rule 95 + '-' reduce using rule 95 + '@' reduce using rule 95 + 'ado' reduce using rule 95 + 'as' reduce using rule 95 + 'case' reduce using rule 95 + 'do' reduce using rule 95 + 'else' reduce using rule 95 + 'false' reduce using rule 95 + 'hiding' reduce using rule 95 + 'if' reduce using rule 95 + 'let' reduce using rule 95 + 'nominal' reduce using rule 95 + 'phantom' reduce using rule 95 + 'of' reduce using rule 95 + 'representational'reduce using rule 95 + 'role' reduce using rule 95 + 'then' reduce using rule 95 + 'true' reduce using rule 95 + 'where' reduce using rule 95 + '(..)' reduce using rule 95 + LOWER reduce using rule 95 + QUAL_LOWER reduce using rule 95 + UPPER reduce using rule 95 + QUAL_UPPER reduce using rule 95 + SYMBOL reduce using rule 95 + QUAL_SYMBOL reduce using rule 95 + OPERATOR reduce using rule 95 + QUAL_OPERATOR reduce using rule 95 + LIT_HOLE reduce using rule 95 + LIT_CHAR reduce using rule 95 + LIT_STRING reduce using rule 95 + LIT_RAW_STRING reduce using rule 95 + LIT_INT reduce using rule 95 + LIT_NUMBER reduce using rule 95 + %eof reduce using rule 95 + + +State 60 + + number -> LIT_NUMBER . (rule 96) + + error reduce using rule 96 + '(' reduce using rule 96 + ')' reduce using rule 96 + '{' reduce using rule 96 + '}' reduce using rule 96 + '[' reduce using rule 96 + ']' reduce using rule 96 + '\}' reduce using rule 96 + '\;' reduce using rule 96 + '<-' reduce using rule 96 + '->' reduce using rule 96 + '<=' reduce using rule 96 + ':' reduce using rule 96 + '::' reduce using rule 96 + '=' reduce using rule 96 + '|' reduce using rule 96 + '`' reduce using rule 96 + '.' reduce using rule 96 + ',' reduce using rule 96 + '_' reduce using rule 96 + '\\' reduce using rule 96 + '-' reduce using rule 96 + '@' reduce using rule 96 + 'ado' reduce using rule 96 + 'as' reduce using rule 96 + 'case' reduce using rule 96 + 'do' reduce using rule 96 + 'else' reduce using rule 96 + 'false' reduce using rule 96 + 'hiding' reduce using rule 96 + 'if' reduce using rule 96 + 'let' reduce using rule 96 + 'nominal' reduce using rule 96 + 'phantom' reduce using rule 96 + 'of' reduce using rule 96 + 'representational'reduce using rule 96 + 'role' reduce using rule 96 + 'then' reduce using rule 96 + 'true' reduce using rule 96 + 'where' reduce using rule 96 + '(..)' reduce using rule 96 + LOWER reduce using rule 96 + QUAL_LOWER reduce using rule 96 + UPPER reduce using rule 96 + QUAL_UPPER reduce using rule 96 + SYMBOL reduce using rule 96 + QUAL_SYMBOL reduce using rule 96 + OPERATOR reduce using rule 96 + QUAL_OPERATOR reduce using rule 96 + LIT_HOLE reduce using rule 96 + LIT_CHAR reduce using rule 96 + LIT_STRING reduce using rule 96 + LIT_RAW_STRING reduce using rule 96 + LIT_INT reduce using rule 96 + LIT_NUMBER reduce using rule 96 + %eof reduce using rule 96 + + +State 61 + + classNameAndFundeps -> properName . manyOrEmpty__typeVarBinding__ fundeps (rule 303) + + error reduce using rule 352 + '(' shift, and enter state 288 + '|' reduce using rule 352 + '@' shift, and enter state 289 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 284 + typeVarBinding goto state 285 + many__typeVarBinding__goto state 337 + manyOrEmpty__typeVarBinding__goto state 338 + many1__typeVarBinding__goto state 287 + +State 62 + + %start_parseClassNameAndFundeps -> classNameAndFundeps . (rule 21) + + error accept + + +State 63 + + properName -> UPPER . (rule 27) + + error reduce using rule 27 + '(' reduce using rule 27 + ')' reduce using rule 27 + '{' reduce using rule 27 + '\}' reduce using rule 27 + '\;' reduce using rule 27 + '::' reduce using rule 27 + '=' reduce using rule 27 + '|' reduce using rule 27 + ',' reduce using rule 27 + '_' reduce using rule 27 + '@' reduce using rule 27 + 'as' reduce using rule 27 + 'else' reduce using rule 27 + 'hiding' reduce using rule 27 + 'nominal' reduce using rule 27 + 'phantom' reduce using rule 27 + 'representational'reduce using rule 27 + 'role' reduce using rule 27 + '(->)' reduce using rule 27 + '(..)' reduce using rule 27 + LOWER reduce using rule 27 + UPPER reduce using rule 27 + QUAL_UPPER reduce using rule 27 + SYMBOL reduce using rule 27 + QUAL_SYMBOL reduce using rule 27 + LIT_HOLE reduce using rule 27 + LIT_STRING reduce using rule 27 + LIT_RAW_STRING reduce using rule 27 + LIT_INT reduce using rule 27 + %eof reduce using rule 27 + + +State 64 + + constraint -> qualProperName . manyOrEmpty__typeAtom__ (rule 315) + + '(' shift, and enter state 148 + ')' reduce using rule 350 + '{' shift, and enter state 149 + '<=' reduce using rule 350 + ',' reduce using rule 350 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 333 + manyOrEmpty__typeAtom__goto state 334 + many__typeAtom__goto state 335 + many1__typeAtom__goto state 336 + +State 65 + + %start_parseClassSuper -> classSuper . (rule 20) + + error accept + + +State 66 + + classSuper -> constraints . '<=' (rule 302) + + '<=' shift, and enter state 332 + + +State 67 + + constraints -> constraint . (rule 313) + + '<=' reduce using rule 313 + '=>' reduce using rule 313 + + +State 68 + + constraints -> '(' . sep__constraint__','__ ')' (rule 314) + constraint -> '(' . constraint ')' (rule 316) + + '(' shift, and enter state 331 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 64 + constraint goto state 328 + sep__constraint__','__goto state 329 + sep1__constraint__','__goto state 330 + +State 69 + + classSignature -> properName . '::' type (rule 301) + + '::' shift, and enter state 327 + + +State 70 + + %start_parseClassSignature -> classSignature . (rule 19) + + error accept + + +State 71 + + %start_parseGuardStatement -> guardStatement . (rule 18) + + error accept + + +State 72 + + %start_parseGuardNext -> guardNext . (rule 17) + + error accept + + +State 73 + + guardNext -> ',' . (rule 219) + + error reduce using rule 219 + + +State 74 + + exprAtom -> qualProperName . (rule 179) + + error reduce using rule 179 + '(' reduce using rule 179 + ')' reduce using rule 179 + '{' reduce using rule 179 + '}' reduce using rule 179 + '[' reduce using rule 179 + ']' reduce using rule 179 + '\}' reduce using rule 179 + '\;' reduce using rule 179 + '<=' reduce using rule 179 + ':' reduce using rule 179 + '::' reduce using rule 179 + '|' reduce using rule 179 + '`' reduce using rule 179 + '.' reduce using rule 179 + ',' reduce using rule 179 + '_' reduce using rule 179 + '\\' reduce using rule 179 + '-' reduce using rule 179 + '@' reduce using rule 179 + 'ado' reduce using rule 179 + 'as' reduce using rule 179 + 'case' reduce using rule 179 + 'do' reduce using rule 179 + 'else' reduce using rule 179 + 'false' reduce using rule 179 + 'hiding' reduce using rule 179 + 'if' reduce using rule 179 + 'let' reduce using rule 179 + 'nominal' reduce using rule 179 + 'phantom' reduce using rule 179 + 'of' reduce using rule 179 + 'representational'reduce using rule 179 + 'role' reduce using rule 179 + 'then' reduce using rule 179 + 'true' reduce using rule 179 + 'where' reduce using rule 179 + '(..)' reduce using rule 179 + LOWER reduce using rule 179 + QUAL_LOWER reduce using rule 179 + UPPER reduce using rule 179 + QUAL_UPPER reduce using rule 179 + SYMBOL reduce using rule 179 + QUAL_SYMBOL reduce using rule 179 + OPERATOR reduce using rule 179 + QUAL_OPERATOR reduce using rule 179 + LIT_HOLE reduce using rule 179 + LIT_CHAR reduce using rule 179 + LIT_STRING reduce using rule 179 + LIT_RAW_STRING reduce using rule 179 + LIT_INT reduce using rule 179 + LIT_NUMBER reduce using rule 179 + %eof reduce using rule 179 + + +State 75 + + exprAtom -> qualIdent . (rule 178) + + error reduce using rule 178 + '(' reduce using rule 178 + ')' reduce using rule 178 + '{' reduce using rule 178 + '}' reduce using rule 178 + '[' reduce using rule 178 + ']' reduce using rule 178 + '\}' reduce using rule 178 + '\;' reduce using rule 178 + '<=' reduce using rule 178 + ':' reduce using rule 178 + '::' reduce using rule 178 + '|' reduce using rule 178 + '`' reduce using rule 178 + '.' reduce using rule 178 + ',' reduce using rule 178 + '_' reduce using rule 178 + '\\' reduce using rule 178 + '-' reduce using rule 178 + '@' reduce using rule 178 + 'ado' reduce using rule 178 + 'as' reduce using rule 178 + 'case' reduce using rule 178 + 'do' reduce using rule 178 + 'else' reduce using rule 178 + 'false' reduce using rule 178 + 'hiding' reduce using rule 178 + 'if' reduce using rule 178 + 'let' reduce using rule 178 + 'nominal' reduce using rule 178 + 'phantom' reduce using rule 178 + 'of' reduce using rule 178 + 'representational'reduce using rule 178 + 'role' reduce using rule 178 + 'then' reduce using rule 178 + 'true' reduce using rule 178 + 'where' reduce using rule 178 + '(..)' reduce using rule 178 + LOWER reduce using rule 178 + QUAL_LOWER reduce using rule 178 + UPPER reduce using rule 178 + QUAL_UPPER reduce using rule 178 + SYMBOL reduce using rule 178 + QUAL_SYMBOL reduce using rule 178 + OPERATOR reduce using rule 178 + QUAL_OPERATOR reduce using rule 178 + LIT_HOLE reduce using rule 178 + LIT_CHAR reduce using rule 178 + LIT_STRING reduce using rule 178 + LIT_RAW_STRING reduce using rule 178 + LIT_INT reduce using rule 178 + LIT_NUMBER reduce using rule 178 + %eof reduce using rule 178 + + +State 76 + + exprAtom -> qualSymbol . (rule 180) + + error reduce using rule 180 + '(' reduce using rule 180 + ')' reduce using rule 180 + '{' reduce using rule 180 + '}' reduce using rule 180 + '[' reduce using rule 180 + ']' reduce using rule 180 + '\}' reduce using rule 180 + '\;' reduce using rule 180 + '<=' reduce using rule 180 + ':' reduce using rule 180 + '::' reduce using rule 180 + '|' reduce using rule 180 + '`' reduce using rule 180 + '.' reduce using rule 180 + ',' reduce using rule 180 + '_' reduce using rule 180 + '\\' reduce using rule 180 + '-' reduce using rule 180 + '@' reduce using rule 180 + 'ado' reduce using rule 180 + 'as' reduce using rule 180 + 'case' reduce using rule 180 + 'do' reduce using rule 180 + 'else' reduce using rule 180 + 'false' reduce using rule 180 + 'hiding' reduce using rule 180 + 'if' reduce using rule 180 + 'let' reduce using rule 180 + 'nominal' reduce using rule 180 + 'phantom' reduce using rule 180 + 'of' reduce using rule 180 + 'representational'reduce using rule 180 + 'role' reduce using rule 180 + 'then' reduce using rule 180 + 'true' reduce using rule 180 + 'where' reduce using rule 180 + '(..)' reduce using rule 180 + LOWER reduce using rule 180 + QUAL_LOWER reduce using rule 180 + UPPER reduce using rule 180 + QUAL_UPPER reduce using rule 180 + SYMBOL reduce using rule 180 + QUAL_SYMBOL reduce using rule 180 + OPERATOR reduce using rule 180 + QUAL_OPERATOR reduce using rule 180 + LIT_HOLE reduce using rule 180 + LIT_CHAR reduce using rule 180 + LIT_STRING reduce using rule 180 + LIT_RAW_STRING reduce using rule 180 + LIT_INT reduce using rule 180 + LIT_NUMBER reduce using rule 180 + %eof reduce using rule 180 + + +State 77 + + exprAtom -> hole . (rule 177) + + error reduce using rule 177 + '(' reduce using rule 177 + ')' reduce using rule 177 + '{' reduce using rule 177 + '}' reduce using rule 177 + '[' reduce using rule 177 + ']' reduce using rule 177 + '\}' reduce using rule 177 + '\;' reduce using rule 177 + '<=' reduce using rule 177 + ':' reduce using rule 177 + '::' reduce using rule 177 + '|' reduce using rule 177 + '`' reduce using rule 177 + '.' reduce using rule 177 + ',' reduce using rule 177 + '_' reduce using rule 177 + '\\' reduce using rule 177 + '-' reduce using rule 177 + '@' reduce using rule 177 + 'ado' reduce using rule 177 + 'as' reduce using rule 177 + 'case' reduce using rule 177 + 'do' reduce using rule 177 + 'else' reduce using rule 177 + 'false' reduce using rule 177 + 'hiding' reduce using rule 177 + 'if' reduce using rule 177 + 'let' reduce using rule 177 + 'nominal' reduce using rule 177 + 'phantom' reduce using rule 177 + 'of' reduce using rule 177 + 'representational'reduce using rule 177 + 'role' reduce using rule 177 + 'then' reduce using rule 177 + 'true' reduce using rule 177 + 'where' reduce using rule 177 + '(..)' reduce using rule 177 + LOWER reduce using rule 177 + QUAL_LOWER reduce using rule 177 + UPPER reduce using rule 177 + QUAL_UPPER reduce using rule 177 + SYMBOL reduce using rule 177 + QUAL_SYMBOL reduce using rule 177 + OPERATOR reduce using rule 177 + QUAL_OPERATOR reduce using rule 177 + LIT_HOLE reduce using rule 177 + LIT_CHAR reduce using rule 177 + LIT_STRING reduce using rule 177 + LIT_RAW_STRING reduce using rule 177 + LIT_INT reduce using rule 177 + LIT_NUMBER reduce using rule 177 + %eof reduce using rule 177 + + +State 78 + + exprAtom -> string . (rule 183) + + error reduce using rule 183 + '(' reduce using rule 183 + ')' reduce using rule 183 + '{' reduce using rule 183 + '}' reduce using rule 183 + '[' reduce using rule 183 + ']' reduce using rule 183 + '\}' reduce using rule 183 + '\;' reduce using rule 183 + '<=' reduce using rule 183 + ':' reduce using rule 183 + '::' reduce using rule 183 + '|' reduce using rule 183 + '`' reduce using rule 183 + '.' reduce using rule 183 + ',' reduce using rule 183 + '_' reduce using rule 183 + '\\' reduce using rule 183 + '-' reduce using rule 183 + '@' reduce using rule 183 + 'ado' reduce using rule 183 + 'as' reduce using rule 183 + 'case' reduce using rule 183 + 'do' reduce using rule 183 + 'else' reduce using rule 183 + 'false' reduce using rule 183 + 'hiding' reduce using rule 183 + 'if' reduce using rule 183 + 'let' reduce using rule 183 + 'nominal' reduce using rule 183 + 'phantom' reduce using rule 183 + 'of' reduce using rule 183 + 'representational'reduce using rule 183 + 'role' reduce using rule 183 + 'then' reduce using rule 183 + 'true' reduce using rule 183 + 'where' reduce using rule 183 + '(..)' reduce using rule 183 + LOWER reduce using rule 183 + QUAL_LOWER reduce using rule 183 + UPPER reduce using rule 183 + QUAL_UPPER reduce using rule 183 + SYMBOL reduce using rule 183 + QUAL_SYMBOL reduce using rule 183 + OPERATOR reduce using rule 183 + QUAL_OPERATOR reduce using rule 183 + LIT_HOLE reduce using rule 183 + LIT_CHAR reduce using rule 183 + LIT_STRING reduce using rule 183 + LIT_RAW_STRING reduce using rule 183 + LIT_INT reduce using rule 183 + LIT_NUMBER reduce using rule 183 + %eof reduce using rule 183 + + +State 79 + + exprAtom -> char . (rule 182) + + error reduce using rule 182 + '(' reduce using rule 182 + ')' reduce using rule 182 + '{' reduce using rule 182 + '}' reduce using rule 182 + '[' reduce using rule 182 + ']' reduce using rule 182 + '\}' reduce using rule 182 + '\;' reduce using rule 182 + '<=' reduce using rule 182 + ':' reduce using rule 182 + '::' reduce using rule 182 + '|' reduce using rule 182 + '`' reduce using rule 182 + '.' reduce using rule 182 + ',' reduce using rule 182 + '_' reduce using rule 182 + '\\' reduce using rule 182 + '-' reduce using rule 182 + '@' reduce using rule 182 + 'ado' reduce using rule 182 + 'as' reduce using rule 182 + 'case' reduce using rule 182 + 'do' reduce using rule 182 + 'else' reduce using rule 182 + 'false' reduce using rule 182 + 'hiding' reduce using rule 182 + 'if' reduce using rule 182 + 'let' reduce using rule 182 + 'nominal' reduce using rule 182 + 'phantom' reduce using rule 182 + 'of' reduce using rule 182 + 'representational'reduce using rule 182 + 'role' reduce using rule 182 + 'then' reduce using rule 182 + 'true' reduce using rule 182 + 'where' reduce using rule 182 + '(..)' reduce using rule 182 + LOWER reduce using rule 182 + QUAL_LOWER reduce using rule 182 + UPPER reduce using rule 182 + QUAL_UPPER reduce using rule 182 + SYMBOL reduce using rule 182 + QUAL_SYMBOL reduce using rule 182 + OPERATOR reduce using rule 182 + QUAL_OPERATOR reduce using rule 182 + LIT_HOLE reduce using rule 182 + LIT_CHAR reduce using rule 182 + LIT_STRING reduce using rule 182 + LIT_RAW_STRING reduce using rule 182 + LIT_INT reduce using rule 182 + LIT_NUMBER reduce using rule 182 + %eof reduce using rule 182 + + +State 80 + + exprAtom -> number . (rule 184) + + error reduce using rule 184 + '(' reduce using rule 184 + ')' reduce using rule 184 + '{' reduce using rule 184 + '}' reduce using rule 184 + '[' reduce using rule 184 + ']' reduce using rule 184 + '\}' reduce using rule 184 + '\;' reduce using rule 184 + '<=' reduce using rule 184 + ':' reduce using rule 184 + '::' reduce using rule 184 + '|' reduce using rule 184 + '`' reduce using rule 184 + '.' reduce using rule 184 + ',' reduce using rule 184 + '_' reduce using rule 184 + '\\' reduce using rule 184 + '-' reduce using rule 184 + '@' reduce using rule 184 + 'ado' reduce using rule 184 + 'as' reduce using rule 184 + 'case' reduce using rule 184 + 'do' reduce using rule 184 + 'else' reduce using rule 184 + 'false' reduce using rule 184 + 'hiding' reduce using rule 184 + 'if' reduce using rule 184 + 'let' reduce using rule 184 + 'nominal' reduce using rule 184 + 'phantom' reduce using rule 184 + 'of' reduce using rule 184 + 'representational'reduce using rule 184 + 'role' reduce using rule 184 + 'then' reduce using rule 184 + 'true' reduce using rule 184 + 'where' reduce using rule 184 + '(..)' reduce using rule 184 + LOWER reduce using rule 184 + QUAL_LOWER reduce using rule 184 + UPPER reduce using rule 184 + QUAL_UPPER reduce using rule 184 + SYMBOL reduce using rule 184 + QUAL_SYMBOL reduce using rule 184 + OPERATOR reduce using rule 184 + QUAL_OPERATOR reduce using rule 184 + LIT_HOLE reduce using rule 184 + LIT_CHAR reduce using rule 184 + LIT_STRING reduce using rule 184 + LIT_RAW_STRING reduce using rule 184 + LIT_INT reduce using rule 184 + LIT_NUMBER reduce using rule 184 + %eof reduce using rule 184 + + +State 81 + + exprAtom -> boolean . (rule 181) + + error reduce using rule 181 + '(' reduce using rule 181 + ')' reduce using rule 181 + '{' reduce using rule 181 + '}' reduce using rule 181 + '[' reduce using rule 181 + ']' reduce using rule 181 + '\}' reduce using rule 181 + '\;' reduce using rule 181 + '<=' reduce using rule 181 + ':' reduce using rule 181 + '::' reduce using rule 181 + '|' reduce using rule 181 + '`' reduce using rule 181 + '.' reduce using rule 181 + ',' reduce using rule 181 + '_' reduce using rule 181 + '\\' reduce using rule 181 + '-' reduce using rule 181 + '@' reduce using rule 181 + 'ado' reduce using rule 181 + 'as' reduce using rule 181 + 'case' reduce using rule 181 + 'do' reduce using rule 181 + 'else' reduce using rule 181 + 'false' reduce using rule 181 + 'hiding' reduce using rule 181 + 'if' reduce using rule 181 + 'let' reduce using rule 181 + 'nominal' reduce using rule 181 + 'phantom' reduce using rule 181 + 'of' reduce using rule 181 + 'representational'reduce using rule 181 + 'role' reduce using rule 181 + 'then' reduce using rule 181 + 'true' reduce using rule 181 + 'where' reduce using rule 181 + '(..)' reduce using rule 181 + LOWER reduce using rule 181 + QUAL_LOWER reduce using rule 181 + UPPER reduce using rule 181 + QUAL_UPPER reduce using rule 181 + SYMBOL reduce using rule 181 + QUAL_SYMBOL reduce using rule 181 + OPERATOR reduce using rule 181 + QUAL_OPERATOR reduce using rule 181 + LIT_HOLE reduce using rule 181 + LIT_CHAR reduce using rule 181 + LIT_STRING reduce using rule 181 + LIT_RAW_STRING reduce using rule 181 + LIT_INT reduce using rule 181 + LIT_NUMBER reduce using rule 181 + %eof reduce using rule 181 + + +State 82 + + expr1 -> expr1 . qualOp expr2 (rule 152) + guardExpr -> expr1 . (rule 218) + + error reduce using rule 218 + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '-' shift, and enter state 296 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + + qualOp goto state 302 + +State 83 + + expr1 -> expr2 . (rule 151) + expr2 -> expr2 . '`' exprBacktick '`' expr3 (rule 154) + + error reduce using rule 151 + '(' reduce using rule 151 + ')' reduce using rule 151 + '{' reduce using rule 151 + '}' reduce using rule 151 + '[' reduce using rule 151 + ']' reduce using rule 151 + '\}' reduce using rule 151 + '\;' reduce using rule 151 + '<=' reduce using rule 151 + ':' reduce using rule 151 + '::' reduce using rule 151 + '|' reduce using rule 151 + '`' shift, and enter state 326 + ',' reduce using rule 151 + '_' reduce using rule 151 + '\\' reduce using rule 151 + '-' reduce using rule 151 + '@' reduce using rule 151 + 'ado' reduce using rule 151 + 'as' reduce using rule 151 + 'case' reduce using rule 151 + 'do' reduce using rule 151 + 'else' reduce using rule 151 + 'false' reduce using rule 151 + 'hiding' reduce using rule 151 + 'if' reduce using rule 151 + 'let' reduce using rule 151 + 'nominal' reduce using rule 151 + 'phantom' reduce using rule 151 + 'of' reduce using rule 151 + 'representational'reduce using rule 151 + 'role' reduce using rule 151 + 'then' reduce using rule 151 + 'true' reduce using rule 151 + 'where' reduce using rule 151 + '(..)' reduce using rule 151 + LOWER reduce using rule 151 + QUAL_LOWER reduce using rule 151 + UPPER reduce using rule 151 + QUAL_UPPER reduce using rule 151 + SYMBOL reduce using rule 151 + QUAL_SYMBOL reduce using rule 151 + OPERATOR reduce using rule 151 + QUAL_OPERATOR reduce using rule 151 + LIT_HOLE reduce using rule 151 + LIT_CHAR reduce using rule 151 + LIT_STRING reduce using rule 151 + LIT_RAW_STRING reduce using rule 151 + LIT_INT reduce using rule 151 + LIT_NUMBER reduce using rule 151 + %eof reduce using rule 151 + + +State 84 + + expr2 -> expr3 . (rule 153) + + error reduce using rule 153 + '(' reduce using rule 153 + ')' reduce using rule 153 + '{' reduce using rule 153 + '}' reduce using rule 153 + '[' reduce using rule 153 + ']' reduce using rule 153 + '\}' reduce using rule 153 + '\;' reduce using rule 153 + '<=' reduce using rule 153 + ':' reduce using rule 153 + '::' reduce using rule 153 + '|' reduce using rule 153 + '`' reduce using rule 153 + ',' reduce using rule 153 + '_' reduce using rule 153 + '\\' reduce using rule 153 + '-' reduce using rule 153 + '@' reduce using rule 153 + 'ado' reduce using rule 153 + 'as' reduce using rule 153 + 'case' reduce using rule 153 + 'do' reduce using rule 153 + 'else' reduce using rule 153 + 'false' reduce using rule 153 + 'hiding' reduce using rule 153 + 'if' reduce using rule 153 + 'let' reduce using rule 153 + 'nominal' reduce using rule 153 + 'phantom' reduce using rule 153 + 'of' reduce using rule 153 + 'representational'reduce using rule 153 + 'role' reduce using rule 153 + 'then' reduce using rule 153 + 'true' reduce using rule 153 + 'where' reduce using rule 153 + '(..)' reduce using rule 153 + LOWER reduce using rule 153 + QUAL_LOWER reduce using rule 153 + UPPER reduce using rule 153 + QUAL_UPPER reduce using rule 153 + SYMBOL reduce using rule 153 + QUAL_SYMBOL reduce using rule 153 + OPERATOR reduce using rule 153 + QUAL_OPERATOR reduce using rule 153 + LIT_HOLE reduce using rule 153 + LIT_CHAR reduce using rule 153 + LIT_STRING reduce using rule 153 + LIT_RAW_STRING reduce using rule 153 + LIT_INT reduce using rule 153 + LIT_NUMBER reduce using rule 153 + %eof reduce using rule 153 + + +State 85 + + expr3 -> expr4 . (rule 157) + expr4 -> expr4 . expr5 (rule 160) + expr4 -> expr4 . '@' typeAtom (rule 161) + + error reduce using rule 157 + '(' shift, and enter state 95 + ')' reduce using rule 157 + '{' shift, and enter state 96 + '}' reduce using rule 157 + '[' shift, and enter state 97 + ']' reduce using rule 157 + '\}' reduce using rule 157 + '\;' reduce using rule 157 + '<=' reduce using rule 157 + ':' reduce using rule 157 + '::' reduce using rule 157 + '|' reduce using rule 157 + '`' reduce using rule 157 + ',' reduce using rule 157 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' reduce using rule 157 + '@' shift, and enter state 325 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'else' reduce using rule 157 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'of' reduce using rule 157 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'then' reduce using rule 157 + 'true' shift, and enter state 52 + 'where' reduce using rule 157 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + OPERATOR reduce using rule 157 + QUAL_OPERATOR reduce using rule 157 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + %eof reduce using rule 157 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr5 goto state 324 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 86 + + expr4 -> expr5 . (rule 159) + + error reduce using rule 159 + '(' reduce using rule 159 + ')' reduce using rule 159 + '{' reduce using rule 159 + '}' reduce using rule 159 + '[' reduce using rule 159 + ']' reduce using rule 159 + '\}' reduce using rule 159 + '\;' reduce using rule 159 + '<=' reduce using rule 159 + ':' reduce using rule 159 + '::' reduce using rule 159 + '|' reduce using rule 159 + '`' reduce using rule 159 + ',' reduce using rule 159 + '_' reduce using rule 159 + '\\' reduce using rule 159 + '-' reduce using rule 159 + '@' reduce using rule 159 + 'ado' reduce using rule 159 + 'as' reduce using rule 159 + 'case' reduce using rule 159 + 'do' reduce using rule 159 + 'else' reduce using rule 159 + 'false' reduce using rule 159 + 'hiding' reduce using rule 159 + 'if' reduce using rule 159 + 'let' reduce using rule 159 + 'nominal' reduce using rule 159 + 'phantom' reduce using rule 159 + 'of' reduce using rule 159 + 'representational'reduce using rule 159 + 'role' reduce using rule 159 + 'then' reduce using rule 159 + 'true' reduce using rule 159 + 'where' reduce using rule 159 + '(..)' reduce using rule 159 + LOWER reduce using rule 159 + QUAL_LOWER reduce using rule 159 + UPPER reduce using rule 159 + QUAL_UPPER reduce using rule 159 + SYMBOL reduce using rule 159 + QUAL_SYMBOL reduce using rule 159 + OPERATOR reduce using rule 159 + QUAL_OPERATOR reduce using rule 159 + LIT_HOLE reduce using rule 159 + LIT_CHAR reduce using rule 159 + LIT_STRING reduce using rule 159 + LIT_RAW_STRING reduce using rule 159 + LIT_INT reduce using rule 159 + LIT_NUMBER reduce using rule 159 + %eof reduce using rule 159 + + +State 87 + + expr5 -> expr6 . (rule 162) + + error reduce using rule 162 + '(' reduce using rule 162 + ')' reduce using rule 162 + '{' reduce using rule 162 + '}' reduce using rule 162 + '[' reduce using rule 162 + ']' reduce using rule 162 + '\}' reduce using rule 162 + '\;' reduce using rule 162 + '<=' reduce using rule 162 + ':' reduce using rule 162 + '::' reduce using rule 162 + '|' reduce using rule 162 + '`' reduce using rule 162 + ',' reduce using rule 162 + '_' reduce using rule 162 + '\\' reduce using rule 162 + '-' reduce using rule 162 + '@' reduce using rule 162 + 'ado' reduce using rule 162 + 'as' reduce using rule 162 + 'case' reduce using rule 162 + 'do' reduce using rule 162 + 'else' reduce using rule 162 + 'false' reduce using rule 162 + 'hiding' reduce using rule 162 + 'if' reduce using rule 162 + 'let' reduce using rule 162 + 'nominal' reduce using rule 162 + 'phantom' reduce using rule 162 + 'of' reduce using rule 162 + 'representational'reduce using rule 162 + 'role' reduce using rule 162 + 'then' reduce using rule 162 + 'true' reduce using rule 162 + 'where' reduce using rule 162 + '(..)' reduce using rule 162 + LOWER reduce using rule 162 + QUAL_LOWER reduce using rule 162 + UPPER reduce using rule 162 + QUAL_UPPER reduce using rule 162 + SYMBOL reduce using rule 162 + QUAL_SYMBOL reduce using rule 162 + OPERATOR reduce using rule 162 + QUAL_OPERATOR reduce using rule 162 + LIT_HOLE reduce using rule 162 + LIT_CHAR reduce using rule 162 + LIT_STRING reduce using rule 162 + LIT_RAW_STRING reduce using rule 162 + LIT_INT reduce using rule 162 + LIT_NUMBER reduce using rule 162 + %eof reduce using rule 162 + + +State 88 + + expr6 -> expr7 . (rule 171) + expr6 -> expr7 . '{' '}' (rule 172) + expr6 -> expr7 . '{' sep__recordUpdateOrLabel__','__ '}' (rule 173) + + error reduce using rule 171 + '(' reduce using rule 171 + ')' reduce using rule 171 + '{' shift, and enter state 323 + '}' reduce using rule 171 + '[' reduce using rule 171 + ']' reduce using rule 171 + '\}' reduce using rule 171 + '\;' reduce using rule 171 + '<=' reduce using rule 171 + ':' reduce using rule 171 + '::' reduce using rule 171 + '|' reduce using rule 171 + '`' reduce using rule 171 + ',' reduce using rule 171 + '_' reduce using rule 171 + '\\' reduce using rule 171 + '-' reduce using rule 171 + '@' reduce using rule 171 + 'ado' reduce using rule 171 + 'as' reduce using rule 171 + 'case' reduce using rule 171 + 'do' reduce using rule 171 + 'else' reduce using rule 171 + 'false' reduce using rule 171 + 'hiding' reduce using rule 171 + 'if' reduce using rule 171 + 'let' reduce using rule 171 + 'nominal' reduce using rule 171 + 'phantom' reduce using rule 171 + 'of' reduce using rule 171 + 'representational'reduce using rule 171 + 'role' reduce using rule 171 + 'then' reduce using rule 171 + 'true' reduce using rule 171 + 'where' reduce using rule 171 + '(..)' reduce using rule 171 + LOWER reduce using rule 171 + QUAL_LOWER reduce using rule 171 + UPPER reduce using rule 171 + QUAL_UPPER reduce using rule 171 + SYMBOL reduce using rule 171 + QUAL_SYMBOL reduce using rule 171 + OPERATOR reduce using rule 171 + QUAL_OPERATOR reduce using rule 171 + LIT_HOLE reduce using rule 171 + LIT_CHAR reduce using rule 171 + LIT_STRING reduce using rule 171 + LIT_RAW_STRING reduce using rule 171 + LIT_INT reduce using rule 171 + LIT_NUMBER reduce using rule 171 + %eof reduce using rule 171 + + +State 89 + + expr7 -> exprAtom . (rule 174) + expr7 -> exprAtom . '.' sep__label__'.'__ (rule 175) + + error reduce using rule 174 + '(' reduce using rule 174 + ')' reduce using rule 174 + '{' reduce using rule 174 + '}' reduce using rule 174 + '[' reduce using rule 174 + ']' reduce using rule 174 + '\}' reduce using rule 174 + '\;' reduce using rule 174 + '<=' reduce using rule 174 + ':' reduce using rule 174 + '::' reduce using rule 174 + '|' reduce using rule 174 + '`' reduce using rule 174 + '.' shift, and enter state 322 + ',' reduce using rule 174 + '_' reduce using rule 174 + '\\' reduce using rule 174 + '-' reduce using rule 174 + '@' reduce using rule 174 + 'ado' reduce using rule 174 + 'as' reduce using rule 174 + 'case' reduce using rule 174 + 'do' reduce using rule 174 + 'else' reduce using rule 174 + 'false' reduce using rule 174 + 'hiding' reduce using rule 174 + 'if' reduce using rule 174 + 'let' reduce using rule 174 + 'nominal' reduce using rule 174 + 'phantom' reduce using rule 174 + 'of' reduce using rule 174 + 'representational'reduce using rule 174 + 'role' reduce using rule 174 + 'then' reduce using rule 174 + 'true' reduce using rule 174 + 'where' reduce using rule 174 + '(..)' reduce using rule 174 + LOWER reduce using rule 174 + QUAL_LOWER reduce using rule 174 + UPPER reduce using rule 174 + QUAL_UPPER reduce using rule 174 + SYMBOL reduce using rule 174 + QUAL_SYMBOL reduce using rule 174 + OPERATOR reduce using rule 174 + QUAL_OPERATOR reduce using rule 174 + LIT_HOLE reduce using rule 174 + LIT_CHAR reduce using rule 174 + LIT_STRING reduce using rule 174 + LIT_RAW_STRING reduce using rule 174 + LIT_INT reduce using rule 174 + LIT_NUMBER reduce using rule 174 + %eof reduce using rule 174 + + +State 90 + + expr5 -> doBlock . (rule 164) + + error reduce using rule 164 + '(' reduce using rule 164 + ')' reduce using rule 164 + '{' reduce using rule 164 + '}' reduce using rule 164 + '[' reduce using rule 164 + ']' reduce using rule 164 + '\}' reduce using rule 164 + '\;' reduce using rule 164 + '<=' reduce using rule 164 + ':' reduce using rule 164 + '::' reduce using rule 164 + '|' reduce using rule 164 + '`' reduce using rule 164 + ',' reduce using rule 164 + '_' reduce using rule 164 + '\\' reduce using rule 164 + '-' reduce using rule 164 + '@' reduce using rule 164 + 'ado' reduce using rule 164 + 'as' reduce using rule 164 + 'case' reduce using rule 164 + 'do' reduce using rule 164 + 'else' reduce using rule 164 + 'false' reduce using rule 164 + 'hiding' reduce using rule 164 + 'if' reduce using rule 164 + 'let' reduce using rule 164 + 'nominal' reduce using rule 164 + 'phantom' reduce using rule 164 + 'of' reduce using rule 164 + 'representational'reduce using rule 164 + 'role' reduce using rule 164 + 'then' reduce using rule 164 + 'true' reduce using rule 164 + 'where' reduce using rule 164 + '(..)' reduce using rule 164 + LOWER reduce using rule 164 + QUAL_LOWER reduce using rule 164 + UPPER reduce using rule 164 + QUAL_UPPER reduce using rule 164 + SYMBOL reduce using rule 164 + QUAL_SYMBOL reduce using rule 164 + OPERATOR reduce using rule 164 + QUAL_OPERATOR reduce using rule 164 + LIT_HOLE reduce using rule 164 + LIT_CHAR reduce using rule 164 + LIT_STRING reduce using rule 164 + LIT_RAW_STRING reduce using rule 164 + LIT_INT reduce using rule 164 + LIT_NUMBER reduce using rule 164 + %eof reduce using rule 164 + + +State 91 + + expr5 -> adoBlock . 'in' expr (rule 165) + + 'in' shift, and enter state 321 + + +State 92 + + %start_parseGuardExpr -> guardExpr . (rule 16) + + error accept + + +State 93 + + exprAtom -> delim__'['__expr__','__']'__ . (rule 185) + + error reduce using rule 185 + '(' reduce using rule 185 + ')' reduce using rule 185 + '{' reduce using rule 185 + '}' reduce using rule 185 + '[' reduce using rule 185 + ']' reduce using rule 185 + '\}' reduce using rule 185 + '\;' reduce using rule 185 + '<=' reduce using rule 185 + ':' reduce using rule 185 + '::' reduce using rule 185 + '|' reduce using rule 185 + '`' reduce using rule 185 + '.' reduce using rule 185 + ',' reduce using rule 185 + '_' reduce using rule 185 + '\\' reduce using rule 185 + '-' reduce using rule 185 + '@' reduce using rule 185 + 'ado' reduce using rule 185 + 'as' reduce using rule 185 + 'case' reduce using rule 185 + 'do' reduce using rule 185 + 'else' reduce using rule 185 + 'false' reduce using rule 185 + 'hiding' reduce using rule 185 + 'if' reduce using rule 185 + 'let' reduce using rule 185 + 'nominal' reduce using rule 185 + 'phantom' reduce using rule 185 + 'of' reduce using rule 185 + 'representational'reduce using rule 185 + 'role' reduce using rule 185 + 'then' reduce using rule 185 + 'true' reduce using rule 185 + 'where' reduce using rule 185 + '(..)' reduce using rule 185 + LOWER reduce using rule 185 + QUAL_LOWER reduce using rule 185 + UPPER reduce using rule 185 + QUAL_UPPER reduce using rule 185 + SYMBOL reduce using rule 185 + QUAL_SYMBOL reduce using rule 185 + OPERATOR reduce using rule 185 + QUAL_OPERATOR reduce using rule 185 + LIT_HOLE reduce using rule 185 + LIT_CHAR reduce using rule 185 + LIT_STRING reduce using rule 185 + LIT_RAW_STRING reduce using rule 185 + LIT_INT reduce using rule 185 + LIT_NUMBER reduce using rule 185 + %eof reduce using rule 185 + + +State 94 + + exprAtom -> delim__'{'__recordLabel__','__'}'__ . (rule 186) + + error reduce using rule 186 + '(' reduce using rule 186 + ')' reduce using rule 186 + '{' reduce using rule 186 + '}' reduce using rule 186 + '[' reduce using rule 186 + ']' reduce using rule 186 + '\}' reduce using rule 186 + '\;' reduce using rule 186 + '<=' reduce using rule 186 + ':' reduce using rule 186 + '::' reduce using rule 186 + '|' reduce using rule 186 + '`' reduce using rule 186 + '.' reduce using rule 186 + ',' reduce using rule 186 + '_' reduce using rule 186 + '\\' reduce using rule 186 + '-' reduce using rule 186 + '@' reduce using rule 186 + 'ado' reduce using rule 186 + 'as' reduce using rule 186 + 'case' reduce using rule 186 + 'do' reduce using rule 186 + 'else' reduce using rule 186 + 'false' reduce using rule 186 + 'hiding' reduce using rule 186 + 'if' reduce using rule 186 + 'let' reduce using rule 186 + 'nominal' reduce using rule 186 + 'phantom' reduce using rule 186 + 'of' reduce using rule 186 + 'representational'reduce using rule 186 + 'role' reduce using rule 186 + 'then' reduce using rule 186 + 'true' reduce using rule 186 + 'where' reduce using rule 186 + '(..)' reduce using rule 186 + LOWER reduce using rule 186 + QUAL_LOWER reduce using rule 186 + UPPER reduce using rule 186 + QUAL_UPPER reduce using rule 186 + SYMBOL reduce using rule 186 + QUAL_SYMBOL reduce using rule 186 + OPERATOR reduce using rule 186 + QUAL_OPERATOR reduce using rule 186 + LIT_HOLE reduce using rule 186 + LIT_CHAR reduce using rule 186 + LIT_STRING reduce using rule 186 + LIT_RAW_STRING reduce using rule 186 + LIT_INT reduce using rule 186 + LIT_NUMBER reduce using rule 186 + %eof reduce using rule 186 + + +State 95 + + exprAtom -> '(' . expr ')' (rule 187) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 320 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 96 + + delim__'{'__recordLabel__','__'}'__ -> '{' . '}' (rule 340) + delim__'{'__recordLabel__','__'}'__ -> '{' . sep__recordLabel__','__ '}' (rule 341) + + '}' shift, and enter state 319 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 315 + recordLabel goto state 316 + sep__recordLabel__','__goto state 317 + sep1__recordLabel__','__goto state 318 + +State 97 + + delim__'['__expr__','__']'__ -> '[' . ']' (rule 336) + delim__'['__expr__','__']'__ -> '[' . sep__expr__','__ ']' (rule 337) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + ']' shift, and enter state 314 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 307 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + sep__expr__','__goto state 313 + sep1__expr__','__goto state 309 + +State 98 + + exprAtom -> '_' . (rule 176) + + error reduce using rule 176 + '(' reduce using rule 176 + ')' reduce using rule 176 + '{' reduce using rule 176 + '}' reduce using rule 176 + '[' reduce using rule 176 + ']' reduce using rule 176 + '\}' reduce using rule 176 + '\;' reduce using rule 176 + '<=' reduce using rule 176 + ':' reduce using rule 176 + '::' reduce using rule 176 + '|' reduce using rule 176 + '`' reduce using rule 176 + '.' reduce using rule 176 + ',' reduce using rule 176 + '_' reduce using rule 176 + '\\' reduce using rule 176 + '-' reduce using rule 176 + '@' reduce using rule 176 + 'ado' reduce using rule 176 + 'as' reduce using rule 176 + 'case' reduce using rule 176 + 'do' reduce using rule 176 + 'else' reduce using rule 176 + 'false' reduce using rule 176 + 'hiding' reduce using rule 176 + 'if' reduce using rule 176 + 'let' reduce using rule 176 + 'nominal' reduce using rule 176 + 'phantom' reduce using rule 176 + 'of' reduce using rule 176 + 'representational'reduce using rule 176 + 'role' reduce using rule 176 + 'then' reduce using rule 176 + 'true' reduce using rule 176 + 'where' reduce using rule 176 + '(..)' reduce using rule 176 + LOWER reduce using rule 176 + QUAL_LOWER reduce using rule 176 + UPPER reduce using rule 176 + QUAL_UPPER reduce using rule 176 + SYMBOL reduce using rule 176 + QUAL_SYMBOL reduce using rule 176 + OPERATOR reduce using rule 176 + QUAL_OPERATOR reduce using rule 176 + LIT_HOLE reduce using rule 176 + LIT_CHAR reduce using rule 176 + LIT_STRING reduce using rule 176 + LIT_RAW_STRING reduce using rule 176 + LIT_INT reduce using rule 176 + LIT_NUMBER reduce using rule 176 + %eof reduce using rule 176 + + +State 99 + + expr5 -> '\\' . many__binderAtom__ '->' expr (rule 166) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 312 + many1__binderAtom__goto state 39 + +State 100 + + expr3 -> '-' . expr3 (rule 158) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr3 goto state 311 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 101 + + adoBlock -> 'ado' . '\{' '\}' (rule 209) + adoBlock -> 'ado' . '\{' (rule 210) + + '\{' shift, and enter state 310 + + +State 102 + + qualIdent -> 'as' . (rule 30) + + error reduce using rule 30 + '(' reduce using rule 30 + ')' reduce using rule 30 + '{' reduce using rule 30 + '}' reduce using rule 30 + '[' reduce using rule 30 + ']' reduce using rule 30 + '\}' reduce using rule 30 + '\;' reduce using rule 30 + '<=' reduce using rule 30 + ':' reduce using rule 30 + '::' reduce using rule 30 + '|' reduce using rule 30 + '`' reduce using rule 30 + '.' reduce using rule 30 + ',' reduce using rule 30 + '_' reduce using rule 30 + '\\' reduce using rule 30 + '-' reduce using rule 30 + '@' reduce using rule 30 + 'ado' reduce using rule 30 + 'as' reduce using rule 30 + 'case' reduce using rule 30 + 'do' reduce using rule 30 + 'else' reduce using rule 30 + 'false' reduce using rule 30 + 'hiding' reduce using rule 30 + 'if' reduce using rule 30 + 'let' reduce using rule 30 + 'nominal' reduce using rule 30 + 'phantom' reduce using rule 30 + 'of' reduce using rule 30 + 'representational'reduce using rule 30 + 'role' reduce using rule 30 + 'then' reduce using rule 30 + 'true' reduce using rule 30 + 'where' reduce using rule 30 + '(..)' reduce using rule 30 + LOWER reduce using rule 30 + QUAL_LOWER reduce using rule 30 + UPPER reduce using rule 30 + QUAL_UPPER reduce using rule 30 + SYMBOL reduce using rule 30 + QUAL_SYMBOL reduce using rule 30 + OPERATOR reduce using rule 30 + QUAL_OPERATOR reduce using rule 30 + LIT_HOLE reduce using rule 30 + LIT_CHAR reduce using rule 30 + LIT_STRING reduce using rule 30 + LIT_RAW_STRING reduce using rule 30 + LIT_INT reduce using rule 30 + LIT_NUMBER reduce using rule 30 + %eof reduce using rule 30 + + +State 103 + + expr5 -> 'case' . sep__expr__','__ 'of' '\{' manySep__caseBranch__'\;'__ '\}' (rule 168) + expr5 -> 'case' . sep__expr__','__ 'of' '\{' sep__binder1__','__ '->' '\}' exprWhere (rule 169) + expr5 -> 'case' . sep__expr__','__ 'of' '\{' sep__binder1__','__ '\}' guardedCase (rule 170) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 307 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + sep__expr__','__goto state 308 + sep1__expr__','__goto state 309 + +State 104 + + doBlock -> 'do' . '\{' (rule 208) + + '\{' shift, and enter state 306 + + +State 105 + + qualIdent -> 'hiding' . (rule 31) + + error reduce using rule 31 + '(' reduce using rule 31 + ')' reduce using rule 31 + '{' reduce using rule 31 + '}' reduce using rule 31 + '[' reduce using rule 31 + ']' reduce using rule 31 + '\}' reduce using rule 31 + '\;' reduce using rule 31 + '<=' reduce using rule 31 + ':' reduce using rule 31 + '::' reduce using rule 31 + '|' reduce using rule 31 + '`' reduce using rule 31 + '.' reduce using rule 31 + ',' reduce using rule 31 + '_' reduce using rule 31 + '\\' reduce using rule 31 + '-' reduce using rule 31 + '@' reduce using rule 31 + 'ado' reduce using rule 31 + 'as' reduce using rule 31 + 'case' reduce using rule 31 + 'do' reduce using rule 31 + 'else' reduce using rule 31 + 'false' reduce using rule 31 + 'hiding' reduce using rule 31 + 'if' reduce using rule 31 + 'let' reduce using rule 31 + 'nominal' reduce using rule 31 + 'phantom' reduce using rule 31 + 'of' reduce using rule 31 + 'representational'reduce using rule 31 + 'role' reduce using rule 31 + 'then' reduce using rule 31 + 'true' reduce using rule 31 + 'where' reduce using rule 31 + '(..)' reduce using rule 31 + LOWER reduce using rule 31 + QUAL_LOWER reduce using rule 31 + UPPER reduce using rule 31 + QUAL_UPPER reduce using rule 31 + SYMBOL reduce using rule 31 + QUAL_SYMBOL reduce using rule 31 + OPERATOR reduce using rule 31 + QUAL_OPERATOR reduce using rule 31 + LIT_HOLE reduce using rule 31 + LIT_CHAR reduce using rule 31 + LIT_STRING reduce using rule 31 + LIT_RAW_STRING reduce using rule 31 + LIT_INT reduce using rule 31 + LIT_NUMBER reduce using rule 31 + %eof reduce using rule 31 + + +State 106 + + expr5 -> 'if' . expr 'then' expr 'else' expr (rule 163) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 305 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 107 + + expr5 -> 'let' . '\{' manySep__letBinding__'\;'__ '\}' 'in' expr (rule 167) + + '\{' shift, and enter state 304 + + +State 108 + + qualIdent -> 'nominal' . (rule 33) + + error reduce using rule 33 + '(' reduce using rule 33 + ')' reduce using rule 33 + '{' reduce using rule 33 + '}' reduce using rule 33 + '[' reduce using rule 33 + ']' reduce using rule 33 + '\}' reduce using rule 33 + '\;' reduce using rule 33 + '<=' reduce using rule 33 + ':' reduce using rule 33 + '::' reduce using rule 33 + '|' reduce using rule 33 + '`' reduce using rule 33 + '.' reduce using rule 33 + ',' reduce using rule 33 + '_' reduce using rule 33 + '\\' reduce using rule 33 + '-' reduce using rule 33 + '@' reduce using rule 33 + 'ado' reduce using rule 33 + 'as' reduce using rule 33 + 'case' reduce using rule 33 + 'do' reduce using rule 33 + 'else' reduce using rule 33 + 'false' reduce using rule 33 + 'hiding' reduce using rule 33 + 'if' reduce using rule 33 + 'let' reduce using rule 33 + 'nominal' reduce using rule 33 + 'phantom' reduce using rule 33 + 'of' reduce using rule 33 + 'representational'reduce using rule 33 + 'role' reduce using rule 33 + 'then' reduce using rule 33 + 'true' reduce using rule 33 + 'where' reduce using rule 33 + '(..)' reduce using rule 33 + LOWER reduce using rule 33 + QUAL_LOWER reduce using rule 33 + UPPER reduce using rule 33 + QUAL_UPPER reduce using rule 33 + SYMBOL reduce using rule 33 + QUAL_SYMBOL reduce using rule 33 + OPERATOR reduce using rule 33 + QUAL_OPERATOR reduce using rule 33 + LIT_HOLE reduce using rule 33 + LIT_CHAR reduce using rule 33 + LIT_STRING reduce using rule 33 + LIT_RAW_STRING reduce using rule 33 + LIT_INT reduce using rule 33 + LIT_NUMBER reduce using rule 33 + %eof reduce using rule 33 + + +State 109 + + qualIdent -> 'phantom' . (rule 35) + + error reduce using rule 35 + '(' reduce using rule 35 + ')' reduce using rule 35 + '{' reduce using rule 35 + '}' reduce using rule 35 + '[' reduce using rule 35 + ']' reduce using rule 35 + '\}' reduce using rule 35 + '\;' reduce using rule 35 + '<=' reduce using rule 35 + ':' reduce using rule 35 + '::' reduce using rule 35 + '|' reduce using rule 35 + '`' reduce using rule 35 + '.' reduce using rule 35 + ',' reduce using rule 35 + '_' reduce using rule 35 + '\\' reduce using rule 35 + '-' reduce using rule 35 + '@' reduce using rule 35 + 'ado' reduce using rule 35 + 'as' reduce using rule 35 + 'case' reduce using rule 35 + 'do' reduce using rule 35 + 'else' reduce using rule 35 + 'false' reduce using rule 35 + 'hiding' reduce using rule 35 + 'if' reduce using rule 35 + 'let' reduce using rule 35 + 'nominal' reduce using rule 35 + 'phantom' reduce using rule 35 + 'of' reduce using rule 35 + 'representational'reduce using rule 35 + 'role' reduce using rule 35 + 'then' reduce using rule 35 + 'true' reduce using rule 35 + 'where' reduce using rule 35 + '(..)' reduce using rule 35 + LOWER reduce using rule 35 + QUAL_LOWER reduce using rule 35 + UPPER reduce using rule 35 + QUAL_UPPER reduce using rule 35 + SYMBOL reduce using rule 35 + QUAL_SYMBOL reduce using rule 35 + OPERATOR reduce using rule 35 + QUAL_OPERATOR reduce using rule 35 + LIT_HOLE reduce using rule 35 + LIT_CHAR reduce using rule 35 + LIT_STRING reduce using rule 35 + LIT_RAW_STRING reduce using rule 35 + LIT_INT reduce using rule 35 + LIT_NUMBER reduce using rule 35 + %eof reduce using rule 35 + + +State 110 + + qualIdent -> 'representational' . (rule 34) + + error reduce using rule 34 + '(' reduce using rule 34 + ')' reduce using rule 34 + '{' reduce using rule 34 + '}' reduce using rule 34 + '[' reduce using rule 34 + ']' reduce using rule 34 + '\}' reduce using rule 34 + '\;' reduce using rule 34 + '<=' reduce using rule 34 + ':' reduce using rule 34 + '::' reduce using rule 34 + '|' reduce using rule 34 + '`' reduce using rule 34 + '.' reduce using rule 34 + ',' reduce using rule 34 + '_' reduce using rule 34 + '\\' reduce using rule 34 + '-' reduce using rule 34 + '@' reduce using rule 34 + 'ado' reduce using rule 34 + 'as' reduce using rule 34 + 'case' reduce using rule 34 + 'do' reduce using rule 34 + 'else' reduce using rule 34 + 'false' reduce using rule 34 + 'hiding' reduce using rule 34 + 'if' reduce using rule 34 + 'let' reduce using rule 34 + 'nominal' reduce using rule 34 + 'phantom' reduce using rule 34 + 'of' reduce using rule 34 + 'representational'reduce using rule 34 + 'role' reduce using rule 34 + 'then' reduce using rule 34 + 'true' reduce using rule 34 + 'where' reduce using rule 34 + '(..)' reduce using rule 34 + LOWER reduce using rule 34 + QUAL_LOWER reduce using rule 34 + UPPER reduce using rule 34 + QUAL_UPPER reduce using rule 34 + SYMBOL reduce using rule 34 + QUAL_SYMBOL reduce using rule 34 + OPERATOR reduce using rule 34 + QUAL_OPERATOR reduce using rule 34 + LIT_HOLE reduce using rule 34 + LIT_CHAR reduce using rule 34 + LIT_STRING reduce using rule 34 + LIT_RAW_STRING reduce using rule 34 + LIT_INT reduce using rule 34 + LIT_NUMBER reduce using rule 34 + %eof reduce using rule 34 + + +State 111 + + qualIdent -> 'role' . (rule 32) + + error reduce using rule 32 + '(' reduce using rule 32 + ')' reduce using rule 32 + '{' reduce using rule 32 + '}' reduce using rule 32 + '[' reduce using rule 32 + ']' reduce using rule 32 + '\}' reduce using rule 32 + '\;' reduce using rule 32 + '<=' reduce using rule 32 + ':' reduce using rule 32 + '::' reduce using rule 32 + '|' reduce using rule 32 + '`' reduce using rule 32 + '.' reduce using rule 32 + ',' reduce using rule 32 + '_' reduce using rule 32 + '\\' reduce using rule 32 + '-' reduce using rule 32 + '@' reduce using rule 32 + 'ado' reduce using rule 32 + 'as' reduce using rule 32 + 'case' reduce using rule 32 + 'do' reduce using rule 32 + 'else' reduce using rule 32 + 'false' reduce using rule 32 + 'hiding' reduce using rule 32 + 'if' reduce using rule 32 + 'let' reduce using rule 32 + 'nominal' reduce using rule 32 + 'phantom' reduce using rule 32 + 'of' reduce using rule 32 + 'representational'reduce using rule 32 + 'role' reduce using rule 32 + 'then' reduce using rule 32 + 'true' reduce using rule 32 + 'where' reduce using rule 32 + '(..)' reduce using rule 32 + LOWER reduce using rule 32 + QUAL_LOWER reduce using rule 32 + UPPER reduce using rule 32 + QUAL_UPPER reduce using rule 32 + SYMBOL reduce using rule 32 + QUAL_SYMBOL reduce using rule 32 + OPERATOR reduce using rule 32 + QUAL_OPERATOR reduce using rule 32 + LIT_HOLE reduce using rule 32 + LIT_CHAR reduce using rule 32 + LIT_STRING reduce using rule 32 + LIT_RAW_STRING reduce using rule 32 + LIT_INT reduce using rule 32 + LIT_NUMBER reduce using rule 32 + %eof reduce using rule 32 + + +State 112 + + qualSymbol -> '(..)' . (rule 54) + + error reduce using rule 54 + '(' reduce using rule 54 + ')' reduce using rule 54 + '{' reduce using rule 54 + '}' reduce using rule 54 + '[' reduce using rule 54 + ']' reduce using rule 54 + '\}' reduce using rule 54 + '\;' reduce using rule 54 + '<-' reduce using rule 54 + '->' reduce using rule 54 + '<=' reduce using rule 54 + '=>' reduce using rule 54 + ':' reduce using rule 54 + '::' reduce using rule 54 + '|' reduce using rule 54 + '`' reduce using rule 54 + '.' reduce using rule 54 + ',' reduce using rule 54 + '_' reduce using rule 54 + '\\' reduce using rule 54 + '-' reduce using rule 54 + '@' reduce using rule 54 + 'ado' reduce using rule 54 + 'as' reduce using rule 54 + 'case' reduce using rule 54 + 'do' reduce using rule 54 + 'else' reduce using rule 54 + 'false' reduce using rule 54 + 'hiding' reduce using rule 54 + 'if' reduce using rule 54 + 'let' reduce using rule 54 + 'nominal' reduce using rule 54 + 'phantom' reduce using rule 54 + 'of' reduce using rule 54 + 'representational'reduce using rule 54 + 'role' reduce using rule 54 + 'then' reduce using rule 54 + 'true' reduce using rule 54 + 'where' reduce using rule 54 + '(->)' reduce using rule 54 + '(..)' reduce using rule 54 + LOWER reduce using rule 54 + QUAL_LOWER reduce using rule 54 + UPPER reduce using rule 54 + QUAL_UPPER reduce using rule 54 + SYMBOL reduce using rule 54 + QUAL_SYMBOL reduce using rule 54 + OPERATOR reduce using rule 54 + QUAL_OPERATOR reduce using rule 54 + LIT_HOLE reduce using rule 54 + LIT_CHAR reduce using rule 54 + LIT_STRING reduce using rule 54 + LIT_RAW_STRING reduce using rule 54 + LIT_INT reduce using rule 54 + LIT_NUMBER reduce using rule 54 + %eof reduce using rule 54 + + +State 113 + + qualIdent -> LOWER . (rule 28) + + error reduce using rule 28 + '(' reduce using rule 28 + ')' reduce using rule 28 + '{' reduce using rule 28 + '}' reduce using rule 28 + '[' reduce using rule 28 + ']' reduce using rule 28 + '\}' reduce using rule 28 + '\;' reduce using rule 28 + '<=' reduce using rule 28 + ':' reduce using rule 28 + '::' reduce using rule 28 + '|' reduce using rule 28 + '`' reduce using rule 28 + '.' reduce using rule 28 + ',' reduce using rule 28 + '_' reduce using rule 28 + '\\' reduce using rule 28 + '-' reduce using rule 28 + '@' reduce using rule 28 + 'ado' reduce using rule 28 + 'as' reduce using rule 28 + 'case' reduce using rule 28 + 'do' reduce using rule 28 + 'else' reduce using rule 28 + 'false' reduce using rule 28 + 'hiding' reduce using rule 28 + 'if' reduce using rule 28 + 'let' reduce using rule 28 + 'nominal' reduce using rule 28 + 'phantom' reduce using rule 28 + 'of' reduce using rule 28 + 'representational'reduce using rule 28 + 'role' reduce using rule 28 + 'then' reduce using rule 28 + 'true' reduce using rule 28 + 'where' reduce using rule 28 + '(..)' reduce using rule 28 + LOWER reduce using rule 28 + QUAL_LOWER reduce using rule 28 + UPPER reduce using rule 28 + QUAL_UPPER reduce using rule 28 + SYMBOL reduce using rule 28 + QUAL_SYMBOL reduce using rule 28 + OPERATOR reduce using rule 28 + QUAL_OPERATOR reduce using rule 28 + LIT_HOLE reduce using rule 28 + LIT_CHAR reduce using rule 28 + LIT_STRING reduce using rule 28 + LIT_RAW_STRING reduce using rule 28 + LIT_INT reduce using rule 28 + LIT_NUMBER reduce using rule 28 + %eof reduce using rule 28 + + +State 114 + + qualIdent -> QUAL_LOWER . (rule 29) + + error reduce using rule 29 + '(' reduce using rule 29 + ')' reduce using rule 29 + '{' reduce using rule 29 + '}' reduce using rule 29 + '[' reduce using rule 29 + ']' reduce using rule 29 + '\}' reduce using rule 29 + '\;' reduce using rule 29 + '<=' reduce using rule 29 + ':' reduce using rule 29 + '::' reduce using rule 29 + '|' reduce using rule 29 + '`' reduce using rule 29 + '.' reduce using rule 29 + ',' reduce using rule 29 + '_' reduce using rule 29 + '\\' reduce using rule 29 + '-' reduce using rule 29 + '@' reduce using rule 29 + 'ado' reduce using rule 29 + 'as' reduce using rule 29 + 'case' reduce using rule 29 + 'do' reduce using rule 29 + 'else' reduce using rule 29 + 'false' reduce using rule 29 + 'hiding' reduce using rule 29 + 'if' reduce using rule 29 + 'let' reduce using rule 29 + 'nominal' reduce using rule 29 + 'phantom' reduce using rule 29 + 'of' reduce using rule 29 + 'representational'reduce using rule 29 + 'role' reduce using rule 29 + 'then' reduce using rule 29 + 'true' reduce using rule 29 + 'where' reduce using rule 29 + '(..)' reduce using rule 29 + LOWER reduce using rule 29 + QUAL_LOWER reduce using rule 29 + UPPER reduce using rule 29 + QUAL_UPPER reduce using rule 29 + SYMBOL reduce using rule 29 + QUAL_SYMBOL reduce using rule 29 + OPERATOR reduce using rule 29 + QUAL_OPERATOR reduce using rule 29 + LIT_HOLE reduce using rule 29 + LIT_CHAR reduce using rule 29 + LIT_STRING reduce using rule 29 + LIT_RAW_STRING reduce using rule 29 + LIT_INT reduce using rule 29 + LIT_NUMBER reduce using rule 29 + %eof reduce using rule 29 + + +State 115 + + qualSymbol -> SYMBOL . (rule 52) + + error reduce using rule 52 + '(' reduce using rule 52 + ')' reduce using rule 52 + '{' reduce using rule 52 + '}' reduce using rule 52 + '[' reduce using rule 52 + ']' reduce using rule 52 + '\}' reduce using rule 52 + '\;' reduce using rule 52 + '<-' reduce using rule 52 + '->' reduce using rule 52 + '<=' reduce using rule 52 + '=>' reduce using rule 52 + ':' reduce using rule 52 + '::' reduce using rule 52 + '|' reduce using rule 52 + '`' reduce using rule 52 + '.' reduce using rule 52 + ',' reduce using rule 52 + '_' reduce using rule 52 + '\\' reduce using rule 52 + '-' reduce using rule 52 + '@' reduce using rule 52 + 'ado' reduce using rule 52 + 'as' reduce using rule 52 + 'case' reduce using rule 52 + 'do' reduce using rule 52 + 'else' reduce using rule 52 + 'false' reduce using rule 52 + 'hiding' reduce using rule 52 + 'if' reduce using rule 52 + 'let' reduce using rule 52 + 'nominal' reduce using rule 52 + 'phantom' reduce using rule 52 + 'of' reduce using rule 52 + 'representational'reduce using rule 52 + 'role' reduce using rule 52 + 'then' reduce using rule 52 + 'true' reduce using rule 52 + 'where' reduce using rule 52 + '(->)' reduce using rule 52 + '(..)' reduce using rule 52 + LOWER reduce using rule 52 + QUAL_LOWER reduce using rule 52 + UPPER reduce using rule 52 + QUAL_UPPER reduce using rule 52 + SYMBOL reduce using rule 52 + QUAL_SYMBOL reduce using rule 52 + OPERATOR reduce using rule 52 + QUAL_OPERATOR reduce using rule 52 + LIT_HOLE reduce using rule 52 + LIT_CHAR reduce using rule 52 + LIT_STRING reduce using rule 52 + LIT_RAW_STRING reduce using rule 52 + LIT_INT reduce using rule 52 + LIT_NUMBER reduce using rule 52 + %eof reduce using rule 52 + + +State 116 + + qualSymbol -> QUAL_SYMBOL . (rule 53) + + error reduce using rule 53 + '(' reduce using rule 53 + ')' reduce using rule 53 + '{' reduce using rule 53 + '}' reduce using rule 53 + '[' reduce using rule 53 + ']' reduce using rule 53 + '\}' reduce using rule 53 + '\;' reduce using rule 53 + '<-' reduce using rule 53 + '->' reduce using rule 53 + '<=' reduce using rule 53 + '=>' reduce using rule 53 + ':' reduce using rule 53 + '::' reduce using rule 53 + '|' reduce using rule 53 + '`' reduce using rule 53 + '.' reduce using rule 53 + ',' reduce using rule 53 + '_' reduce using rule 53 + '\\' reduce using rule 53 + '-' reduce using rule 53 + '@' reduce using rule 53 + 'ado' reduce using rule 53 + 'as' reduce using rule 53 + 'case' reduce using rule 53 + 'do' reduce using rule 53 + 'else' reduce using rule 53 + 'false' reduce using rule 53 + 'hiding' reduce using rule 53 + 'if' reduce using rule 53 + 'let' reduce using rule 53 + 'nominal' reduce using rule 53 + 'phantom' reduce using rule 53 + 'of' reduce using rule 53 + 'representational'reduce using rule 53 + 'role' reduce using rule 53 + 'then' reduce using rule 53 + 'true' reduce using rule 53 + 'where' reduce using rule 53 + '(->)' reduce using rule 53 + '(..)' reduce using rule 53 + LOWER reduce using rule 53 + QUAL_LOWER reduce using rule 53 + UPPER reduce using rule 53 + QUAL_UPPER reduce using rule 53 + SYMBOL reduce using rule 53 + QUAL_SYMBOL reduce using rule 53 + OPERATOR reduce using rule 53 + QUAL_OPERATOR reduce using rule 53 + LIT_HOLE reduce using rule 53 + LIT_CHAR reduce using rule 53 + LIT_STRING reduce using rule 53 + LIT_RAW_STRING reduce using rule 53 + LIT_INT reduce using rule 53 + LIT_NUMBER reduce using rule 53 + %eof reduce using rule 53 + + +State 117 + + hole -> LIT_HOLE . (rule 91) + + error reduce using rule 91 + '(' reduce using rule 91 + ')' reduce using rule 91 + '{' reduce using rule 91 + '}' reduce using rule 91 + '[' reduce using rule 91 + ']' reduce using rule 91 + '\}' reduce using rule 91 + '\;' reduce using rule 91 + '<-' reduce using rule 91 + '->' reduce using rule 91 + '<=' reduce using rule 91 + '=>' reduce using rule 91 + ':' reduce using rule 91 + '::' reduce using rule 91 + '|' reduce using rule 91 + '`' reduce using rule 91 + '.' reduce using rule 91 + ',' reduce using rule 91 + '_' reduce using rule 91 + '\\' reduce using rule 91 + '-' reduce using rule 91 + '@' reduce using rule 91 + 'ado' reduce using rule 91 + 'as' reduce using rule 91 + 'case' reduce using rule 91 + 'do' reduce using rule 91 + 'else' reduce using rule 91 + 'false' reduce using rule 91 + 'hiding' reduce using rule 91 + 'if' reduce using rule 91 + 'let' reduce using rule 91 + 'nominal' reduce using rule 91 + 'phantom' reduce using rule 91 + 'of' reduce using rule 91 + 'representational'reduce using rule 91 + 'role' reduce using rule 91 + 'then' reduce using rule 91 + 'true' reduce using rule 91 + 'where' reduce using rule 91 + '(->)' reduce using rule 91 + '(..)' reduce using rule 91 + LOWER reduce using rule 91 + QUAL_LOWER reduce using rule 91 + UPPER reduce using rule 91 + QUAL_UPPER reduce using rule 91 + SYMBOL reduce using rule 91 + QUAL_SYMBOL reduce using rule 91 + OPERATOR reduce using rule 91 + QUAL_OPERATOR reduce using rule 91 + LIT_HOLE reduce using rule 91 + LIT_CHAR reduce using rule 91 + LIT_STRING reduce using rule 91 + LIT_RAW_STRING reduce using rule 91 + LIT_INT reduce using rule 91 + LIT_NUMBER reduce using rule 91 + %eof reduce using rule 91 + + +State 118 + + %start_parseDoNext -> doNext . (rule 15) + + error accept + + +State 119 + + doNext -> '\}' . (rule 215) + + error reduce using rule 215 + + +State 120 + + doNext -> '\;' . (rule 214) + + error reduce using rule 214 + + +State 121 + + doExpr -> expr . (rule 213) + + error reduce using rule 213 + + +State 122 + + expr -> expr1 . (rule 149) + expr -> expr1 . '::' type (rule 150) + expr1 -> expr1 . qualOp expr2 (rule 152) + + error reduce using rule 149 + '(' reduce using rule 149 + ')' reduce using rule 149 + '{' reduce using rule 149 + '}' reduce using rule 149 + '[' reduce using rule 149 + ']' reduce using rule 149 + '\}' reduce using rule 149 + '\;' reduce using rule 149 + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '::' shift, and enter state 303 + '|' reduce using rule 149 + '`' reduce using rule 149 + ',' reduce using rule 149 + '_' reduce using rule 149 + '\\' reduce using rule 149 + '-' shift, and enter state 296 + '@' reduce using rule 149 + 'ado' reduce using rule 149 + 'as' reduce using rule 149 + 'case' reduce using rule 149 + 'do' reduce using rule 149 + 'else' reduce using rule 149 + 'false' reduce using rule 149 + 'hiding' reduce using rule 149 + 'if' reduce using rule 149 + 'let' reduce using rule 149 + 'nominal' reduce using rule 149 + 'phantom' reduce using rule 149 + 'of' reduce using rule 149 + 'representational'reduce using rule 149 + 'role' reduce using rule 149 + 'then' reduce using rule 149 + 'true' reduce using rule 149 + 'where' reduce using rule 149 + '(..)' reduce using rule 149 + LOWER reduce using rule 149 + QUAL_LOWER reduce using rule 149 + UPPER reduce using rule 149 + QUAL_UPPER reduce using rule 149 + SYMBOL reduce using rule 149 + QUAL_SYMBOL reduce using rule 149 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + LIT_HOLE reduce using rule 149 + LIT_CHAR reduce using rule 149 + LIT_STRING reduce using rule 149 + LIT_RAW_STRING reduce using rule 149 + LIT_INT reduce using rule 149 + LIT_NUMBER reduce using rule 149 + %eof reduce using rule 149 + + qualOp goto state 302 + +State 123 + + %start_parseDoExpr -> doExpr . (rule 14) + + error accept + + +State 124 + + %start_parseDoStatement -> doStatement . (rule 13) + + error accept + + +State 125 + + doStatement -> 'let' . '\{' manySep__letBinding__'\;'__ '\}' (rule 211) + + '\{' shift, and enter state 301 + + +State 126 + + %start_parseModuleHeader -> moduleHeader . (rule 12) + + error accept + + +State 127 + + moduleHeader -> 'module' . moduleName exports 'where' '\{' moduleImports (rule 242) + + UPPER shift, and enter state 24 + QUAL_UPPER shift, and enter state 132 + + moduleName goto state 300 + +State 128 + + qualIdentP -> qualIdent . (rule 333) + + error reduce using rule 333 + + +State 129 + + %start_parseQualIdentP -> qualIdentP . (rule 11) + + error accept + + +State 130 + + moduleNameP -> moduleName . (rule 332) + + error reduce using rule 332 + + +State 131 + + %start_parseModuleNameP -> moduleNameP . (rule 10) + + error accept + + +State 132 + + moduleName -> QUAL_UPPER . (rule 24) + + error reduce using rule 24 + '(' reduce using rule 24 + ')' reduce using rule 24 + '\}' reduce using rule 24 + '\;' reduce using rule 24 + ',' reduce using rule 24 + 'as' reduce using rule 24 + 'hiding' reduce using rule 24 + 'where' reduce using rule 24 + + +State 133 + + typeAtom -> qualProperName . (rule 115) + + error reduce using rule 115 + '(' reduce using rule 115 + ')' reduce using rule 115 + '{' reduce using rule 115 + '}' reduce using rule 115 + '[' reduce using rule 115 + ']' reduce using rule 115 + '\}' reduce using rule 115 + '\;' reduce using rule 115 + '<-' reduce using rule 115 + '->' reduce using rule 115 + '<=' reduce using rule 115 + '=>' reduce using rule 115 + ':' reduce using rule 115 + '::' reduce using rule 115 + '|' reduce using rule 115 + '`' reduce using rule 115 + ',' reduce using rule 115 + '_' reduce using rule 115 + '\\' reduce using rule 115 + '-' reduce using rule 115 + '@' reduce using rule 115 + 'ado' reduce using rule 115 + 'as' reduce using rule 115 + 'case' reduce using rule 115 + 'do' reduce using rule 115 + 'else' reduce using rule 115 + 'false' reduce using rule 115 + 'hiding' reduce using rule 115 + 'if' reduce using rule 115 + 'let' reduce using rule 115 + 'nominal' reduce using rule 115 + 'phantom' reduce using rule 115 + 'of' reduce using rule 115 + 'representational'reduce using rule 115 + 'role' reduce using rule 115 + 'then' reduce using rule 115 + 'true' reduce using rule 115 + 'where' reduce using rule 115 + '(->)' reduce using rule 115 + '(..)' reduce using rule 115 + LOWER reduce using rule 115 + QUAL_LOWER reduce using rule 115 + UPPER reduce using rule 115 + QUAL_UPPER reduce using rule 115 + SYMBOL reduce using rule 115 + QUAL_SYMBOL reduce using rule 115 + OPERATOR reduce using rule 115 + QUAL_OPERATOR reduce using rule 115 + LIT_HOLE reduce using rule 115 + LIT_CHAR reduce using rule 115 + LIT_STRING reduce using rule 115 + LIT_RAW_STRING reduce using rule 115 + LIT_INT reduce using rule 115 + LIT_NUMBER reduce using rule 115 + %eof reduce using rule 115 + + +State 134 + + typeAtom -> ident . (rule 114) + + error reduce using rule 114 + '(' reduce using rule 114 + ')' reduce using rule 114 + '{' reduce using rule 114 + '}' reduce using rule 114 + '[' reduce using rule 114 + ']' reduce using rule 114 + '\}' reduce using rule 114 + '\;' reduce using rule 114 + '<-' reduce using rule 114 + '->' reduce using rule 114 + '<=' reduce using rule 114 + '=>' reduce using rule 114 + ':' reduce using rule 114 + '::' reduce using rule 114 + '|' reduce using rule 114 + '`' reduce using rule 114 + ',' reduce using rule 114 + '_' reduce using rule 114 + '\\' reduce using rule 114 + '-' reduce using rule 114 + '@' reduce using rule 114 + 'ado' reduce using rule 114 + 'as' reduce using rule 114 + 'case' reduce using rule 114 + 'do' reduce using rule 114 + 'else' reduce using rule 114 + 'false' reduce using rule 114 + 'hiding' reduce using rule 114 + 'if' reduce using rule 114 + 'let' reduce using rule 114 + 'nominal' reduce using rule 114 + 'phantom' reduce using rule 114 + 'of' reduce using rule 114 + 'representational'reduce using rule 114 + 'role' reduce using rule 114 + 'then' reduce using rule 114 + 'true' reduce using rule 114 + 'where' reduce using rule 114 + '(->)' reduce using rule 114 + '(..)' reduce using rule 114 + LOWER reduce using rule 114 + QUAL_LOWER reduce using rule 114 + UPPER reduce using rule 114 + QUAL_UPPER reduce using rule 114 + SYMBOL reduce using rule 114 + QUAL_SYMBOL reduce using rule 114 + OPERATOR reduce using rule 114 + QUAL_OPERATOR reduce using rule 114 + LIT_HOLE reduce using rule 114 + LIT_CHAR reduce using rule 114 + LIT_STRING reduce using rule 114 + LIT_RAW_STRING reduce using rule 114 + LIT_INT reduce using rule 114 + LIT_NUMBER reduce using rule 114 + %eof reduce using rule 114 + + +State 135 + + typeAtom -> qualSymbol . (rule 116) + + error reduce using rule 116 + '(' reduce using rule 116 + ')' reduce using rule 116 + '{' reduce using rule 116 + '}' reduce using rule 116 + '[' reduce using rule 116 + ']' reduce using rule 116 + '\}' reduce using rule 116 + '\;' reduce using rule 116 + '<-' reduce using rule 116 + '->' reduce using rule 116 + '<=' reduce using rule 116 + '=>' reduce using rule 116 + ':' reduce using rule 116 + '::' reduce using rule 116 + '|' reduce using rule 116 + '`' reduce using rule 116 + ',' reduce using rule 116 + '_' reduce using rule 116 + '\\' reduce using rule 116 + '-' reduce using rule 116 + '@' reduce using rule 116 + 'ado' reduce using rule 116 + 'as' reduce using rule 116 + 'case' reduce using rule 116 + 'do' reduce using rule 116 + 'else' reduce using rule 116 + 'false' reduce using rule 116 + 'hiding' reduce using rule 116 + 'if' reduce using rule 116 + 'let' reduce using rule 116 + 'nominal' reduce using rule 116 + 'phantom' reduce using rule 116 + 'of' reduce using rule 116 + 'representational'reduce using rule 116 + 'role' reduce using rule 116 + 'then' reduce using rule 116 + 'true' reduce using rule 116 + 'where' reduce using rule 116 + '(->)' reduce using rule 116 + '(..)' reduce using rule 116 + LOWER reduce using rule 116 + QUAL_LOWER reduce using rule 116 + UPPER reduce using rule 116 + QUAL_UPPER reduce using rule 116 + SYMBOL reduce using rule 116 + QUAL_SYMBOL reduce using rule 116 + OPERATOR reduce using rule 116 + QUAL_OPERATOR reduce using rule 116 + LIT_HOLE reduce using rule 116 + LIT_CHAR reduce using rule 116 + LIT_STRING reduce using rule 116 + LIT_RAW_STRING reduce using rule 116 + LIT_INT reduce using rule 116 + LIT_NUMBER reduce using rule 116 + %eof reduce using rule 116 + + +State 136 + + typeAtom -> hole . (rule 119) + + error reduce using rule 119 + '(' reduce using rule 119 + ')' reduce using rule 119 + '{' reduce using rule 119 + '}' reduce using rule 119 + '[' reduce using rule 119 + ']' reduce using rule 119 + '\}' reduce using rule 119 + '\;' reduce using rule 119 + '<-' reduce using rule 119 + '->' reduce using rule 119 + '<=' reduce using rule 119 + '=>' reduce using rule 119 + ':' reduce using rule 119 + '::' reduce using rule 119 + '|' reduce using rule 119 + '`' reduce using rule 119 + ',' reduce using rule 119 + '_' reduce using rule 119 + '\\' reduce using rule 119 + '-' reduce using rule 119 + '@' reduce using rule 119 + 'ado' reduce using rule 119 + 'as' reduce using rule 119 + 'case' reduce using rule 119 + 'do' reduce using rule 119 + 'else' reduce using rule 119 + 'false' reduce using rule 119 + 'hiding' reduce using rule 119 + 'if' reduce using rule 119 + 'let' reduce using rule 119 + 'nominal' reduce using rule 119 + 'phantom' reduce using rule 119 + 'of' reduce using rule 119 + 'representational'reduce using rule 119 + 'role' reduce using rule 119 + 'then' reduce using rule 119 + 'true' reduce using rule 119 + 'where' reduce using rule 119 + '(->)' reduce using rule 119 + '(..)' reduce using rule 119 + LOWER reduce using rule 119 + QUAL_LOWER reduce using rule 119 + UPPER reduce using rule 119 + QUAL_UPPER reduce using rule 119 + SYMBOL reduce using rule 119 + QUAL_SYMBOL reduce using rule 119 + OPERATOR reduce using rule 119 + QUAL_OPERATOR reduce using rule 119 + LIT_HOLE reduce using rule 119 + LIT_CHAR reduce using rule 119 + LIT_STRING reduce using rule 119 + LIT_RAW_STRING reduce using rule 119 + LIT_INT reduce using rule 119 + LIT_NUMBER reduce using rule 119 + %eof reduce using rule 119 + + +State 137 + + typeAtom -> string . (rule 117) + + error reduce using rule 117 + '(' reduce using rule 117 + ')' reduce using rule 117 + '{' reduce using rule 117 + '}' reduce using rule 117 + '[' reduce using rule 117 + ']' reduce using rule 117 + '\}' reduce using rule 117 + '\;' reduce using rule 117 + '<-' reduce using rule 117 + '->' reduce using rule 117 + '<=' reduce using rule 117 + '=>' reduce using rule 117 + ':' reduce using rule 117 + '::' reduce using rule 117 + '|' reduce using rule 117 + '`' reduce using rule 117 + ',' reduce using rule 117 + '_' reduce using rule 117 + '\\' reduce using rule 117 + '-' reduce using rule 117 + '@' reduce using rule 117 + 'ado' reduce using rule 117 + 'as' reduce using rule 117 + 'case' reduce using rule 117 + 'do' reduce using rule 117 + 'else' reduce using rule 117 + 'false' reduce using rule 117 + 'hiding' reduce using rule 117 + 'if' reduce using rule 117 + 'let' reduce using rule 117 + 'nominal' reduce using rule 117 + 'phantom' reduce using rule 117 + 'of' reduce using rule 117 + 'representational'reduce using rule 117 + 'role' reduce using rule 117 + 'then' reduce using rule 117 + 'true' reduce using rule 117 + 'where' reduce using rule 117 + '(->)' reduce using rule 117 + '(..)' reduce using rule 117 + LOWER reduce using rule 117 + QUAL_LOWER reduce using rule 117 + UPPER reduce using rule 117 + QUAL_UPPER reduce using rule 117 + SYMBOL reduce using rule 117 + QUAL_SYMBOL reduce using rule 117 + OPERATOR reduce using rule 117 + QUAL_OPERATOR reduce using rule 117 + LIT_HOLE reduce using rule 117 + LIT_CHAR reduce using rule 117 + LIT_STRING reduce using rule 117 + LIT_RAW_STRING reduce using rule 117 + LIT_INT reduce using rule 117 + LIT_NUMBER reduce using rule 117 + %eof reduce using rule 117 + + +State 138 + + typeAtom -> int . (rule 118) + + error reduce using rule 118 + '(' reduce using rule 118 + ')' reduce using rule 118 + '{' reduce using rule 118 + '}' reduce using rule 118 + '[' reduce using rule 118 + ']' reduce using rule 118 + '\}' reduce using rule 118 + '\;' reduce using rule 118 + '<-' reduce using rule 118 + '->' reduce using rule 118 + '<=' reduce using rule 118 + '=>' reduce using rule 118 + ':' reduce using rule 118 + '::' reduce using rule 118 + '|' reduce using rule 118 + '`' reduce using rule 118 + ',' reduce using rule 118 + '_' reduce using rule 118 + '\\' reduce using rule 118 + '-' reduce using rule 118 + '@' reduce using rule 118 + 'ado' reduce using rule 118 + 'as' reduce using rule 118 + 'case' reduce using rule 118 + 'do' reduce using rule 118 + 'else' reduce using rule 118 + 'false' reduce using rule 118 + 'hiding' reduce using rule 118 + 'if' reduce using rule 118 + 'let' reduce using rule 118 + 'nominal' reduce using rule 118 + 'phantom' reduce using rule 118 + 'of' reduce using rule 118 + 'representational'reduce using rule 118 + 'role' reduce using rule 118 + 'then' reduce using rule 118 + 'true' reduce using rule 118 + 'where' reduce using rule 118 + '(->)' reduce using rule 118 + '(..)' reduce using rule 118 + LOWER reduce using rule 118 + QUAL_LOWER reduce using rule 118 + UPPER reduce using rule 118 + QUAL_UPPER reduce using rule 118 + SYMBOL reduce using rule 118 + QUAL_SYMBOL reduce using rule 118 + OPERATOR reduce using rule 118 + QUAL_OPERATOR reduce using rule 118 + LIT_HOLE reduce using rule 118 + LIT_CHAR reduce using rule 118 + LIT_STRING reduce using rule 118 + LIT_RAW_STRING reduce using rule 118 + LIT_INT reduce using rule 118 + LIT_NUMBER reduce using rule 118 + %eof reduce using rule 118 + + +State 139 + + typeP -> type . (rule 331) + + error reduce using rule 331 + + +State 140 + + type -> type1 . (rule 100) + type -> type1 . '::' type (rule 101) + + error reduce using rule 100 + '(' reduce using rule 100 + ')' reduce using rule 100 + '{' reduce using rule 100 + '}' reduce using rule 100 + '[' reduce using rule 100 + ']' reduce using rule 100 + '\}' reduce using rule 100 + '\;' reduce using rule 100 + '<-' reduce using rule 100 + '<=' reduce using rule 100 + ':' reduce using rule 100 + '::' shift, and enter state 299 + '|' reduce using rule 100 + '`' reduce using rule 100 + ',' reduce using rule 100 + '_' reduce using rule 100 + '\\' reduce using rule 100 + '-' reduce using rule 100 + '@' reduce using rule 100 + 'ado' reduce using rule 100 + 'as' reduce using rule 100 + 'case' reduce using rule 100 + 'do' reduce using rule 100 + 'else' reduce using rule 100 + 'false' reduce using rule 100 + 'hiding' reduce using rule 100 + 'if' reduce using rule 100 + 'let' reduce using rule 100 + 'nominal' reduce using rule 100 + 'phantom' reduce using rule 100 + 'of' reduce using rule 100 + 'representational'reduce using rule 100 + 'role' reduce using rule 100 + 'then' reduce using rule 100 + 'true' reduce using rule 100 + 'where' reduce using rule 100 + '(..)' reduce using rule 100 + LOWER reduce using rule 100 + QUAL_LOWER reduce using rule 100 + UPPER reduce using rule 100 + QUAL_UPPER reduce using rule 100 + SYMBOL reduce using rule 100 + QUAL_SYMBOL reduce using rule 100 + OPERATOR reduce using rule 100 + QUAL_OPERATOR reduce using rule 100 + LIT_HOLE reduce using rule 100 + LIT_CHAR reduce using rule 100 + LIT_STRING reduce using rule 100 + LIT_RAW_STRING reduce using rule 100 + LIT_INT reduce using rule 100 + LIT_NUMBER reduce using rule 100 + %eof reduce using rule 100 + + +State 141 + + type1 -> type2 . (rule 102) + + error reduce using rule 102 + '(' reduce using rule 102 + ')' reduce using rule 102 + '{' reduce using rule 102 + '}' reduce using rule 102 + '[' reduce using rule 102 + ']' reduce using rule 102 + '\}' reduce using rule 102 + '\;' reduce using rule 102 + '<-' reduce using rule 102 + '<=' reduce using rule 102 + ':' reduce using rule 102 + '::' reduce using rule 102 + '|' reduce using rule 102 + '`' reduce using rule 102 + ',' reduce using rule 102 + '_' reduce using rule 102 + '\\' reduce using rule 102 + '-' reduce using rule 102 + '@' reduce using rule 102 + 'ado' reduce using rule 102 + 'as' reduce using rule 102 + 'case' reduce using rule 102 + 'do' reduce using rule 102 + 'else' reduce using rule 102 + 'false' reduce using rule 102 + 'hiding' reduce using rule 102 + 'if' reduce using rule 102 + 'let' reduce using rule 102 + 'nominal' reduce using rule 102 + 'phantom' reduce using rule 102 + 'of' reduce using rule 102 + 'representational'reduce using rule 102 + 'role' reduce using rule 102 + 'then' reduce using rule 102 + 'true' reduce using rule 102 + 'where' reduce using rule 102 + '(..)' reduce using rule 102 + LOWER reduce using rule 102 + QUAL_LOWER reduce using rule 102 + UPPER reduce using rule 102 + QUAL_UPPER reduce using rule 102 + SYMBOL reduce using rule 102 + QUAL_SYMBOL reduce using rule 102 + OPERATOR reduce using rule 102 + QUAL_OPERATOR reduce using rule 102 + LIT_HOLE reduce using rule 102 + LIT_CHAR reduce using rule 102 + LIT_STRING reduce using rule 102 + LIT_RAW_STRING reduce using rule 102 + LIT_INT reduce using rule 102 + LIT_NUMBER reduce using rule 102 + %eof reduce using rule 102 + + +State 142 + + type2 -> type3 . (rule 104) + type2 -> type3 . '->' type1 (rule 105) + type2 -> type3 . '=>' type1 (rule 106) + type3 -> type3 . qualOp type4 (rule 108) + + error reduce using rule 104 + '(' reduce using rule 104 + ')' reduce using rule 104 + '{' reduce using rule 104 + '}' reduce using rule 104 + '[' reduce using rule 104 + ']' reduce using rule 104 + '\}' reduce using rule 104 + '\;' reduce using rule 104 + '<-' reduce using rule 104 + '->' shift, and enter state 292 + '<=' shift, and enter state 293 + '=>' shift, and enter state 294 + ':' shift, and enter state 295 + '::' reduce using rule 104 + '|' reduce using rule 104 + '`' reduce using rule 104 + ',' reduce using rule 104 + '_' reduce using rule 104 + '\\' reduce using rule 104 + '-' shift, and enter state 296 + '@' reduce using rule 104 + 'ado' reduce using rule 104 + 'as' reduce using rule 104 + 'case' reduce using rule 104 + 'do' reduce using rule 104 + 'else' reduce using rule 104 + 'false' reduce using rule 104 + 'hiding' reduce using rule 104 + 'if' reduce using rule 104 + 'let' reduce using rule 104 + 'nominal' reduce using rule 104 + 'phantom' reduce using rule 104 + 'of' reduce using rule 104 + 'representational'reduce using rule 104 + 'role' reduce using rule 104 + 'then' reduce using rule 104 + 'true' reduce using rule 104 + 'where' reduce using rule 104 + '(..)' reduce using rule 104 + LOWER reduce using rule 104 + QUAL_LOWER reduce using rule 104 + UPPER reduce using rule 104 + QUAL_UPPER reduce using rule 104 + SYMBOL reduce using rule 104 + QUAL_SYMBOL reduce using rule 104 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + LIT_HOLE reduce using rule 104 + LIT_CHAR reduce using rule 104 + LIT_STRING reduce using rule 104 + LIT_RAW_STRING reduce using rule 104 + LIT_INT reduce using rule 104 + LIT_NUMBER reduce using rule 104 + %eof reduce using rule 104 + + qualOp goto state 291 + +State 143 + + type3 -> type4 . (rule 107) + + error reduce using rule 107 + '(' reduce using rule 107 + ')' reduce using rule 107 + '{' reduce using rule 107 + '}' reduce using rule 107 + '[' reduce using rule 107 + ']' reduce using rule 107 + '\}' reduce using rule 107 + '\;' reduce using rule 107 + '<-' reduce using rule 107 + '->' reduce using rule 107 + '<=' reduce using rule 107 + '=>' reduce using rule 107 + ':' reduce using rule 107 + '::' reduce using rule 107 + '|' reduce using rule 107 + '`' reduce using rule 107 + ',' reduce using rule 107 + '_' reduce using rule 107 + '\\' reduce using rule 107 + '-' reduce using rule 107 + '@' reduce using rule 107 + 'ado' reduce using rule 107 + 'as' reduce using rule 107 + 'case' reduce using rule 107 + 'do' reduce using rule 107 + 'else' reduce using rule 107 + 'false' reduce using rule 107 + 'hiding' reduce using rule 107 + 'if' reduce using rule 107 + 'let' reduce using rule 107 + 'nominal' reduce using rule 107 + 'phantom' reduce using rule 107 + 'of' reduce using rule 107 + 'representational'reduce using rule 107 + 'role' reduce using rule 107 + 'then' reduce using rule 107 + 'true' reduce using rule 107 + 'where' reduce using rule 107 + '(..)' reduce using rule 107 + LOWER reduce using rule 107 + QUAL_LOWER reduce using rule 107 + UPPER reduce using rule 107 + QUAL_UPPER reduce using rule 107 + SYMBOL reduce using rule 107 + QUAL_SYMBOL reduce using rule 107 + OPERATOR reduce using rule 107 + QUAL_OPERATOR reduce using rule 107 + LIT_HOLE reduce using rule 107 + LIT_CHAR reduce using rule 107 + LIT_STRING reduce using rule 107 + LIT_RAW_STRING reduce using rule 107 + LIT_INT reduce using rule 107 + LIT_NUMBER reduce using rule 107 + %eof reduce using rule 107 + + +State 144 + + type4 -> type5 . (rule 109) + type5 -> type5 . typeAtom (rule 112) + + error reduce using rule 109 + '(' shift, and enter state 148 + ')' reduce using rule 109 + '{' shift, and enter state 149 + '}' reduce using rule 109 + '[' reduce using rule 109 + ']' reduce using rule 109 + '\}' reduce using rule 109 + '\;' reduce using rule 109 + '<-' reduce using rule 109 + '->' reduce using rule 109 + '<=' reduce using rule 109 + '=>' reduce using rule 109 + ':' reduce using rule 109 + '::' reduce using rule 109 + '|' reduce using rule 109 + '`' reduce using rule 109 + ',' reduce using rule 109 + '_' shift, and enter state 150 + '\\' reduce using rule 109 + '-' reduce using rule 109 + '@' reduce using rule 109 + 'ado' reduce using rule 109 + 'as' shift, and enter state 45 + 'case' reduce using rule 109 + 'do' reduce using rule 109 + 'else' reduce using rule 109 + 'false' reduce using rule 109 + 'hiding' shift, and enter state 47 + 'if' reduce using rule 109 + 'let' reduce using rule 109 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'of' reduce using rule 109 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'then' reduce using rule 109 + 'true' reduce using rule 109 + 'where' reduce using rule 109 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + QUAL_LOWER reduce using rule 109 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + OPERATOR reduce using rule 109 + QUAL_OPERATOR reduce using rule 109 + LIT_HOLE shift, and enter state 117 + LIT_CHAR reduce using rule 109 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + LIT_NUMBER reduce using rule 109 + %eof reduce using rule 109 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 290 + +State 145 + + type5 -> typeAtom . (rule 111) + + error reduce using rule 111 + '(' reduce using rule 111 + ')' reduce using rule 111 + '{' reduce using rule 111 + '}' reduce using rule 111 + '[' reduce using rule 111 + ']' reduce using rule 111 + '\}' reduce using rule 111 + '\;' reduce using rule 111 + '<-' reduce using rule 111 + '->' reduce using rule 111 + '<=' reduce using rule 111 + '=>' reduce using rule 111 + ':' reduce using rule 111 + '::' reduce using rule 111 + '|' reduce using rule 111 + '`' reduce using rule 111 + ',' reduce using rule 111 + '_' reduce using rule 111 + '\\' reduce using rule 111 + '-' reduce using rule 111 + '@' reduce using rule 111 + 'ado' reduce using rule 111 + 'as' reduce using rule 111 + 'case' reduce using rule 111 + 'do' reduce using rule 111 + 'else' reduce using rule 111 + 'false' reduce using rule 111 + 'hiding' reduce using rule 111 + 'if' reduce using rule 111 + 'let' reduce using rule 111 + 'nominal' reduce using rule 111 + 'phantom' reduce using rule 111 + 'of' reduce using rule 111 + 'representational'reduce using rule 111 + 'role' reduce using rule 111 + 'then' reduce using rule 111 + 'true' reduce using rule 111 + 'where' reduce using rule 111 + '(->)' reduce using rule 111 + '(..)' reduce using rule 111 + LOWER reduce using rule 111 + QUAL_LOWER reduce using rule 111 + UPPER reduce using rule 111 + QUAL_UPPER reduce using rule 111 + SYMBOL reduce using rule 111 + QUAL_SYMBOL reduce using rule 111 + OPERATOR reduce using rule 111 + QUAL_OPERATOR reduce using rule 111 + LIT_HOLE reduce using rule 111 + LIT_CHAR reduce using rule 111 + LIT_STRING reduce using rule 111 + LIT_RAW_STRING reduce using rule 111 + LIT_INT reduce using rule 111 + LIT_NUMBER reduce using rule 111 + %eof reduce using rule 111 + + +State 146 + + type1 -> forall . many__typeVarBinding__ '.' type1 (rule 103) + + '(' shift, and enter state 288 + '@' shift, and enter state 289 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 284 + typeVarBinding goto state 285 + many__typeVarBinding__goto state 286 + many1__typeVarBinding__goto state 287 + +State 147 + + %start_parseTypeP -> typeP . (rule 9) + + error accept + + +State 148 + + typeAtom -> '(' . row ')' (rule 122) + typeAtom -> '(' . type1 ')' (rule 123) + typeAtom -> '(' . typeKindedAtom '::' type ')' (rule 124) + + '(' shift, and enter state 271 + ')' reduce using rule 134 + '{' shift, and enter state 272 + '|' shift, and enter state 229 + '_' shift, and enter state 273 + '-' shift, and enter state 151 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 274 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 275 + 'forallu' shift, and enter state 153 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 276 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 277 + 'phantom' shift, and enter state 278 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 279 + 'role' shift, and enter state 280 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 281 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 282 + LIT_RAW_STRING shift, and enter state 283 + LIT_INT shift, and enter state 155 + + qualProperName goto state 264 + ident goto state 134 + qualSymbol goto state 265 + label goto state 224 + hole goto state 266 + string goto state 137 + int goto state 267 + type1 goto state 268 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + typeKindedAtom goto state 269 + row goto state 270 + rowLabel goto state 226 + forall goto state 146 + sep__rowLabel__','__goto state 227 + sep1__rowLabel__','__goto state 228 + +State 149 + + typeAtom -> '{' . row '}' (rule 121) + + '}' reduce using rule 134 + '|' shift, and enter state 229 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 224 + row goto state 225 + rowLabel goto state 226 + sep__rowLabel__','__goto state 227 + sep1__rowLabel__','__goto state 228 + +State 150 + + typeAtom -> '_' . (rule 113) + + error reduce using rule 113 + '(' reduce using rule 113 + ')' reduce using rule 113 + '{' reduce using rule 113 + '}' reduce using rule 113 + '[' reduce using rule 113 + ']' reduce using rule 113 + '\}' reduce using rule 113 + '\;' reduce using rule 113 + '<-' reduce using rule 113 + '->' reduce using rule 113 + '<=' reduce using rule 113 + '=>' reduce using rule 113 + ':' reduce using rule 113 + '::' reduce using rule 113 + '|' reduce using rule 113 + '`' reduce using rule 113 + ',' reduce using rule 113 + '_' reduce using rule 113 + '\\' reduce using rule 113 + '-' reduce using rule 113 + '@' reduce using rule 113 + 'ado' reduce using rule 113 + 'as' reduce using rule 113 + 'case' reduce using rule 113 + 'do' reduce using rule 113 + 'else' reduce using rule 113 + 'false' reduce using rule 113 + 'hiding' reduce using rule 113 + 'if' reduce using rule 113 + 'let' reduce using rule 113 + 'nominal' reduce using rule 113 + 'phantom' reduce using rule 113 + 'of' reduce using rule 113 + 'representational'reduce using rule 113 + 'role' reduce using rule 113 + 'then' reduce using rule 113 + 'true' reduce using rule 113 + 'where' reduce using rule 113 + '(->)' reduce using rule 113 + '(..)' reduce using rule 113 + LOWER reduce using rule 113 + QUAL_LOWER reduce using rule 113 + UPPER reduce using rule 113 + QUAL_UPPER reduce using rule 113 + SYMBOL reduce using rule 113 + QUAL_SYMBOL reduce using rule 113 + OPERATOR reduce using rule 113 + QUAL_OPERATOR reduce using rule 113 + LIT_HOLE reduce using rule 113 + LIT_CHAR reduce using rule 113 + LIT_STRING reduce using rule 113 + LIT_RAW_STRING reduce using rule 113 + LIT_INT reduce using rule 113 + LIT_NUMBER reduce using rule 113 + %eof reduce using rule 113 + + +State 151 + + type4 -> '-' . int (rule 110) + + LIT_INT shift, and enter state 155 + + int goto state 223 + +State 152 + + forall -> 'forall' . (rule 145) + + '(' reduce using rule 145 + '@' reduce using rule 145 + 'as' reduce using rule 145 + 'hiding' reduce using rule 145 + 'nominal' reduce using rule 145 + 'phantom' reduce using rule 145 + 'representational'reduce using rule 145 + 'role' reduce using rule 145 + LOWER reduce using rule 145 + + +State 153 + + forall -> 'forallu' . (rule 146) + + '(' reduce using rule 146 + '@' reduce using rule 146 + 'as' reduce using rule 146 + 'hiding' reduce using rule 146 + 'nominal' reduce using rule 146 + 'phantom' reduce using rule 146 + 'representational'reduce using rule 146 + 'role' reduce using rule 146 + LOWER reduce using rule 146 + + +State 154 + + typeAtom -> '(->)' . (rule 120) + + error reduce using rule 120 + '(' reduce using rule 120 + ')' reduce using rule 120 + '{' reduce using rule 120 + '}' reduce using rule 120 + '[' reduce using rule 120 + ']' reduce using rule 120 + '\}' reduce using rule 120 + '\;' reduce using rule 120 + '<-' reduce using rule 120 + '->' reduce using rule 120 + '<=' reduce using rule 120 + '=>' reduce using rule 120 + ':' reduce using rule 120 + '::' reduce using rule 120 + '|' reduce using rule 120 + '`' reduce using rule 120 + ',' reduce using rule 120 + '_' reduce using rule 120 + '\\' reduce using rule 120 + '-' reduce using rule 120 + '@' reduce using rule 120 + 'ado' reduce using rule 120 + 'as' reduce using rule 120 + 'case' reduce using rule 120 + 'do' reduce using rule 120 + 'else' reduce using rule 120 + 'false' reduce using rule 120 + 'hiding' reduce using rule 120 + 'if' reduce using rule 120 + 'let' reduce using rule 120 + 'nominal' reduce using rule 120 + 'phantom' reduce using rule 120 + 'of' reduce using rule 120 + 'representational'reduce using rule 120 + 'role' reduce using rule 120 + 'then' reduce using rule 120 + 'true' reduce using rule 120 + 'where' reduce using rule 120 + '(->)' reduce using rule 120 + '(..)' reduce using rule 120 + LOWER reduce using rule 120 + QUAL_LOWER reduce using rule 120 + UPPER reduce using rule 120 + QUAL_UPPER reduce using rule 120 + SYMBOL reduce using rule 120 + QUAL_SYMBOL reduce using rule 120 + OPERATOR reduce using rule 120 + QUAL_OPERATOR reduce using rule 120 + LIT_HOLE reduce using rule 120 + LIT_CHAR reduce using rule 120 + LIT_STRING reduce using rule 120 + LIT_RAW_STRING reduce using rule 120 + LIT_INT reduce using rule 120 + LIT_NUMBER reduce using rule 120 + %eof reduce using rule 120 + + +State 155 + + int -> LIT_INT . (rule 97) + + error reduce using rule 97 + '(' reduce using rule 97 + ')' reduce using rule 97 + '{' reduce using rule 97 + '}' reduce using rule 97 + '[' reduce using rule 97 + ']' reduce using rule 97 + '\}' reduce using rule 97 + '\;' reduce using rule 97 + '<-' reduce using rule 97 + '->' reduce using rule 97 + '<=' reduce using rule 97 + '=>' reduce using rule 97 + ':' reduce using rule 97 + '::' reduce using rule 97 + '|' reduce using rule 97 + '`' reduce using rule 97 + ',' reduce using rule 97 + '_' reduce using rule 97 + '\\' reduce using rule 97 + '-' reduce using rule 97 + '@' reduce using rule 97 + 'ado' reduce using rule 97 + 'as' reduce using rule 97 + 'case' reduce using rule 97 + 'do' reduce using rule 97 + 'else' reduce using rule 97 + 'false' reduce using rule 97 + 'hiding' reduce using rule 97 + 'if' reduce using rule 97 + 'let' reduce using rule 97 + 'nominal' reduce using rule 97 + 'phantom' reduce using rule 97 + 'of' reduce using rule 97 + 'representational'reduce using rule 97 + 'role' reduce using rule 97 + 'then' reduce using rule 97 + 'true' reduce using rule 97 + 'type' reduce using rule 97 + 'where' reduce using rule 97 + '(->)' reduce using rule 97 + '(..)' reduce using rule 97 + LOWER reduce using rule 97 + QUAL_LOWER reduce using rule 97 + UPPER reduce using rule 97 + QUAL_UPPER reduce using rule 97 + SYMBOL reduce using rule 97 + QUAL_SYMBOL reduce using rule 97 + OPERATOR reduce using rule 97 + QUAL_OPERATOR reduce using rule 97 + LIT_HOLE reduce using rule 97 + LIT_CHAR reduce using rule 97 + LIT_STRING reduce using rule 97 + LIT_RAW_STRING reduce using rule 97 + LIT_INT reduce using rule 97 + LIT_NUMBER reduce using rule 97 + %eof reduce using rule 97 + + +State 156 + + exprP -> expr . (rule 330) + + error reduce using rule 330 + + +State 157 + + %start_parseExprP -> exprP . (rule 8) + + error accept + + +State 158 + + decl -> ident . '::' type (rule 290) + decl -> ident . manyOrEmpty__binderAtom__ guardedDecl (rule 291) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '::' shift, and enter state 222 + '=' reduce using rule 348 + '|' reduce using rule 348 + '_' shift, and enter state 43 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 220 + manyOrEmpty__binderAtom__goto state 221 + many1__binderAtom__goto state 39 + +State 159 + + declP -> decl . (rule 329) + + error reduce using rule 329 + + +State 160 + + decl -> dataHead . (rule 277) + decl -> dataHead . '=' sep__dataCtor__'|'__ (rule 278) + + error reduce using rule 277 + '\}' reduce using rule 277 + '\;' reduce using rule 277 + '=' shift, and enter state 219 + 'else' reduce using rule 277 + %eof reduce using rule 277 + + +State 161 + + decl -> typeHead . '=' type (rule 279) + + '=' shift, and enter state 218 + + +State 162 + + decl -> newtypeHead . '=' properName typeAtom (rule 280) + + '=' shift, and enter state 217 + + +State 163 + + decl -> classHead . (rule 281) + decl -> classHead . 'where' '\{' manySep__classMember__'\;'__ '\}' (rule 282) + + error reduce using rule 281 + '\}' reduce using rule 281 + '\;' reduce using rule 281 + 'else' reduce using rule 281 + 'where' shift, and enter state 216 + %eof reduce using rule 281 + + +State 164 + + decl -> instHead . (rule 283) + decl -> instHead . 'where' '\{' manySep__instBinding__'\;'__ '\}' (rule 284) + + error reduce using rule 283 + '\}' reduce using rule 283 + '\;' reduce using rule 283 + 'else' reduce using rule 283 + 'where' shift, and enter state 215 + %eof reduce using rule 283 + + +State 165 + + decl -> fixity . (rule 292) + + error reduce using rule 292 + '\}' reduce using rule 292 + '\;' reduce using rule 292 + 'else' reduce using rule 292 + %eof reduce using rule 292 + + +State 166 + + fixity -> infix . int qualIdent 'as' op (rule 319) + fixity -> infix . int qualProperName 'as' op (rule 320) + fixity -> infix . int 'type' qualProperName 'as' op (rule 321) + + LIT_INT shift, and enter state 155 + + int goto state 214 + +State 167 + + %start_parseDeclP -> declP . (rule 7) + + error accept + + +State 168 + + classHead -> 'class' . (rule 300) + + error reduce using rule 300 + '\}' reduce using rule 300 + '\;' reduce using rule 300 + 'else' reduce using rule 300 + 'where' reduce using rule 300 + %eof reduce using rule 300 + + +State 169 + + decl -> 'data' . properName '::' type (rule 285) + dataHead -> 'data' . properName manyOrEmpty__typeVarBindingPlain__ (rule 296) + + UPPER shift, and enter state 63 + + properName goto state 213 + +State 170 + + decl -> 'derive' . instHead (rule 288) + decl -> 'derive' . 'newtype' instHead (rule 289) + + 'instance' shift, and enter state 175 + 'newtype' shift, and enter state 212 + + instHead goto state 211 + +State 171 + + decl -> 'foreign' . 'import' ident '::' type (rule 293) + decl -> 'foreign' . 'import' 'data' properName '::' type (rule 294) + + 'import' shift, and enter state 210 + + +State 172 + + infix -> 'infix' . (rule 322) + + LIT_INT reduce using rule 322 + + +State 173 + + infix -> 'infixl' . (rule 323) + + LIT_INT reduce using rule 323 + + +State 174 + + infix -> 'infixr' . (rule 324) + + LIT_INT reduce using rule 324 + + +State 175 + + instHead -> 'instance' . constraints '=>' qualProperName manyOrEmpty__typeAtom__ (rule 309) + instHead -> 'instance' . qualProperName manyOrEmpty__typeAtom__ (rule 310) + instHead -> 'instance' . ident '::' constraints '=>' qualProperName manyOrEmpty__typeAtom__ (rule 311) + instHead -> 'instance' . ident '::' qualProperName manyOrEmpty__typeAtom__ (rule 312) + + '(' shift, and enter state 68 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 207 + ident goto state 208 + constraints goto state 209 + constraint goto state 67 + +State 176 + + decl -> 'newtype' . properName '::' type (rule 286) + newtypeHead -> 'newtype' . properName manyOrEmpty__typeVarBindingPlain__ (rule 298) + + UPPER shift, and enter state 63 + + properName goto state 206 + +State 177 + + decl -> 'type' . properName '::' type (rule 287) + decl -> 'type' . 'role' properName many__role__ (rule 295) + typeHead -> 'type' . properName manyOrEmpty__typeVarBindingPlain__ (rule 297) + + 'role' shift, and enter state 205 + UPPER shift, and enter state 63 + + properName goto state 204 + +State 178 + + importDeclP -> importDecl . (rule 328) + + error reduce using rule 328 + + +State 179 + + %start_parseImportDeclP -> importDeclP . (rule 6) + + error accept + + +State 180 + + importDecl -> 'import' . moduleName imports (rule 266) + importDecl -> 'import' . moduleName imports 'as' moduleName (rule 267) + + UPPER shift, and enter state 24 + QUAL_UPPER shift, and enter state 132 + + moduleName goto state 203 + +State 181 + + %start_parseDecl -> decl . (rule 5) + + %eof accept + + +State 182 + + %start_parseModuleBody -> moduleBody . (rule 4) + + %eof accept + + +State 183 + + moduleBody -> moduleDecls . '\}' (rule 243) + + '\}' shift, and enter state 202 + + +State 184 + + manySep1__moduleDecl__'\;'__ -> moduleDecl . (rule 396) + + '\}' reduce using rule 396 + '\;' reduce using rule 396 + + +State 185 + + moduleDecl -> importDecl . (rule 250) + + '\}' reduce using rule 250 + '\;' reduce using rule 250 + + +State 186 + + sep1__decl__declElse__ -> decl . (rule 407) + + '\}' reduce using rule 407 + '\;' reduce using rule 407 + 'else' reduce using rule 407 + + +State 187 + + moduleDecls -> manySep__moduleDecl__'\;'__ . (rule 248) + + '\}' reduce using rule 248 + + +State 188 + + moduleDecl -> sep__decl__declElse__ . (rule 251) + + '\}' reduce using rule 251 + '\;' reduce using rule 251 + + +State 189 + + manySep__moduleDecl__'\;'__ -> manySep1__moduleDecl__'\;'__ . (rule 360) + manySep1__moduleDecl__'\;'__ -> manySep1__moduleDecl__'\;'__ . '\;' moduleDecl (rule 397) + + '\}' reduce using rule 360 + '\;' shift, and enter state 201 + + +State 190 + + sep__decl__declElse__ -> sep1__decl__declElse__ . (rule 364) + sep1__decl__declElse__ -> sep1__decl__declElse__ . declElse decl (rule 408) + + '\}' reduce using rule 364 + '\;' reduce using rule 364 + 'else' shift, and enter state 200 + + declElse goto state 199 + +State 191 + + %start_parseOperator -> op . (rule 3) + + %eof accept + + +State 192 + + op -> '<=' . (rule 49) + + error reduce using rule 49 + '\}' reduce using rule 49 + '\;' reduce using rule 49 + 'else' reduce using rule 49 + %eof reduce using rule 49 + + +State 193 + + op -> ':' . (rule 51) + + error reduce using rule 51 + '\}' reduce using rule 51 + '\;' reduce using rule 51 + 'else' reduce using rule 51 + %eof reduce using rule 51 + + +State 194 + + op -> '-' . (rule 50) + + error reduce using rule 50 + '\}' reduce using rule 50 + '\;' reduce using rule 50 + 'else' reduce using rule 50 + %eof reduce using rule 50 + + +State 195 + + op -> OPERATOR . (rule 48) + + error reduce using rule 48 + '\}' reduce using rule 48 + '\;' reduce using rule 48 + 'else' reduce using rule 48 + %eof reduce using rule 48 + + +State 196 + + %start_parseIdent -> ident . (rule 2) + + %eof accept + + +State 197 + + %start_parseExpr -> expr . (rule 1) + + %eof accept + + +State 198 + + %start_parseType -> type . (rule 0) + + %eof accept + + +State 199 + + sep1__decl__declElse__ -> sep1__decl__declElse__ declElse . decl (rule 408) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 168 + 'data' shift, and enter state 169 + 'derive' shift, and enter state 170 + 'foreign' shift, and enter state 171 + 'hiding' shift, and enter state 47 + 'infix' shift, and enter state 172 + 'infixl' shift, and enter state 173 + 'infixr' shift, and enter state 174 + 'instance' shift, and enter state 175 + 'newtype' shift, and enter state 176 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 177 + LOWER shift, and enter state 53 + + ident goto state 158 + decl goto state 469 + dataHead goto state 160 + typeHead goto state 161 + newtypeHead goto state 162 + classHead goto state 163 + instHead goto state 164 + fixity goto state 165 + infix goto state 166 + +State 200 + + declElse -> 'else' . (rule 252) + declElse -> 'else' . '\;' (rule 253) + + '\;' shift, and enter state 468 + 'as' reduce using rule 252 + 'class' reduce using rule 252 + 'data' reduce using rule 252 + 'derive' reduce using rule 252 + 'foreign' reduce using rule 252 + 'hiding' reduce using rule 252 + 'infix' reduce using rule 252 + 'infixl' reduce using rule 252 + 'infixr' reduce using rule 252 + 'instance' reduce using rule 252 + 'newtype' reduce using rule 252 + 'nominal' reduce using rule 252 + 'phantom' reduce using rule 252 + 'representational'reduce using rule 252 + 'role' reduce using rule 252 + 'type' reduce using rule 252 + LOWER reduce using rule 252 + + +State 201 + + manySep1__moduleDecl__'\;'__ -> manySep1__moduleDecl__'\;'__ '\;' . moduleDecl (rule 397) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 168 + 'data' shift, and enter state 169 + 'derive' shift, and enter state 170 + 'foreign' shift, and enter state 171 + 'hiding' shift, and enter state 47 + 'import' shift, and enter state 180 + 'infix' shift, and enter state 172 + 'infixl' shift, and enter state 173 + 'infixr' shift, and enter state 174 + 'instance' shift, and enter state 175 + 'newtype' shift, and enter state 176 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 177 + LOWER shift, and enter state 53 + + ident goto state 158 + moduleDecl goto state 467 + importDecl goto state 185 + decl goto state 186 + dataHead goto state 160 + typeHead goto state 161 + newtypeHead goto state 162 + classHead goto state 163 + instHead goto state 164 + fixity goto state 165 + infix goto state 166 + sep__decl__declElse__goto state 188 + sep1__decl__declElse__goto state 190 + +State 202 + + moduleBody -> moduleDecls '\}' . (rule 243) + + %eof reduce using rule 243 + + +State 203 + + importDecl -> 'import' moduleName . imports (rule 266) + importDecl -> 'import' moduleName . imports 'as' moduleName (rule 267) + + error reduce using rule 268 + '(' shift, and enter state 465 + '\}' reduce using rule 268 + '\;' reduce using rule 268 + 'as' reduce using rule 268 + 'hiding' shift, and enter state 466 + + imports goto state 464 + +State 204 + + decl -> 'type' properName . '::' type (rule 287) + typeHead -> 'type' properName . manyOrEmpty__typeVarBindingPlain__ (rule 297) + + '(' shift, and enter state 451 + '::' shift, and enter state 463 + '=' reduce using rule 354 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 446 + typeVarBindingPlaingoto state 447 + manyOrEmpty__typeVarBindingPlain__goto state 462 + many__typeVarBindingPlain__goto state 449 + many1__typeVarBindingPlain__goto state 450 + +State 205 + + decl -> 'type' 'role' . properName many__role__ (rule 295) + + UPPER shift, and enter state 63 + + properName goto state 461 + +State 206 + + decl -> 'newtype' properName . '::' type (rule 286) + newtypeHead -> 'newtype' properName . manyOrEmpty__typeVarBindingPlain__ (rule 298) + + '(' shift, and enter state 451 + '::' shift, and enter state 460 + '=' reduce using rule 354 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 446 + typeVarBindingPlaingoto state 447 + manyOrEmpty__typeVarBindingPlain__goto state 459 + many__typeVarBindingPlain__goto state 449 + many1__typeVarBindingPlain__goto state 450 + +State 207 + + instHead -> 'instance' qualProperName . manyOrEmpty__typeAtom__ (rule 310) + constraint -> qualProperName . manyOrEmpty__typeAtom__ (rule 315) + + error reduce using rule 350 + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '\}' reduce using rule 350 + '\;' reduce using rule 350 + '=>' reduce using rule 350 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'else' reduce using rule 350 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'where' reduce using rule 350 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + %eof reduce using rule 350 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 333 + manyOrEmpty__typeAtom__goto state 458 + many__typeAtom__goto state 335 + many1__typeAtom__goto state 336 + +State 208 + + instHead -> 'instance' ident . '::' constraints '=>' qualProperName manyOrEmpty__typeAtom__ (rule 311) + instHead -> 'instance' ident . '::' qualProperName manyOrEmpty__typeAtom__ (rule 312) + + '::' shift, and enter state 457 + + +State 209 + + instHead -> 'instance' constraints . '=>' qualProperName manyOrEmpty__typeAtom__ (rule 309) + + '=>' shift, and enter state 456 + + +State 210 + + decl -> 'foreign' 'import' . ident '::' type (rule 293) + decl -> 'foreign' 'import' . 'data' properName '::' type (rule 294) + + 'as' shift, and enter state 45 + 'data' shift, and enter state 455 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 454 + +State 211 + + decl -> 'derive' instHead . (rule 288) + + error reduce using rule 288 + '\}' reduce using rule 288 + '\;' reduce using rule 288 + 'else' reduce using rule 288 + %eof reduce using rule 288 + + +State 212 + + decl -> 'derive' 'newtype' . instHead (rule 289) + + 'instance' shift, and enter state 175 + + instHead goto state 453 + +State 213 + + decl -> 'data' properName . '::' type (rule 285) + dataHead -> 'data' properName . manyOrEmpty__typeVarBindingPlain__ (rule 296) + + error reduce using rule 354 + '(' shift, and enter state 451 + '\}' reduce using rule 354 + '\;' reduce using rule 354 + '::' shift, and enter state 452 + '=' reduce using rule 354 + 'as' shift, and enter state 45 + 'else' reduce using rule 354 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + %eof reduce using rule 354 + + ident goto state 446 + typeVarBindingPlaingoto state 447 + manyOrEmpty__typeVarBindingPlain__goto state 448 + many__typeVarBindingPlain__goto state 449 + many1__typeVarBindingPlain__goto state 450 + +State 214 + + fixity -> infix int . qualIdent 'as' op (rule 319) + fixity -> infix int . qualProperName 'as' op (rule 320) + fixity -> infix int . 'type' qualProperName 'as' op (rule 321) + + 'as' shift, and enter state 102 + 'hiding' shift, and enter state 105 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'type' shift, and enter state 445 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 443 + qualIdent goto state 444 + +State 215 + + decl -> instHead 'where' . '\{' manySep__instBinding__'\;'__ '\}' (rule 284) + + '\{' shift, and enter state 442 + + +State 216 + + decl -> classHead 'where' . '\{' manySep__classMember__'\;'__ '\}' (rule 282) + + '\{' shift, and enter state 441 + + +State 217 + + decl -> newtypeHead '=' . properName typeAtom (rule 280) + + UPPER shift, and enter state 63 + + properName goto state 440 + +State 218 + + decl -> typeHead '=' . type (rule 279) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 439 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 219 + + decl -> dataHead '=' . sep__dataCtor__'|'__ (rule 278) + + UPPER shift, and enter state 63 + + properName goto state 435 + dataCtor goto state 436 + sep__dataCtor__'|'__goto state 437 + sep1__dataCtor__'|'__goto state 438 + +State 220 + + manyOrEmpty__binderAtom__ -> many__binderAtom__ . (rule 349) + + '=' reduce using rule 349 + '|' reduce using rule 349 + + +State 221 + + decl -> ident manyOrEmpty__binderAtom__ . guardedDecl (rule 291) + + '=' shift, and enter state 433 + '|' shift, and enter state 434 + + guardedDecl goto state 428 + guardedDeclExprgoto state 429 + guard goto state 430 + many__guardedDeclExpr__goto state 431 + many1__guardedDeclExpr__goto state 432 + +State 222 + + decl -> ident '::' . type (rule 290) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 427 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 223 + + type4 -> '-' int . (rule 110) + + error reduce using rule 110 + '(' reduce using rule 110 + ')' reduce using rule 110 + '{' reduce using rule 110 + '}' reduce using rule 110 + '[' reduce using rule 110 + ']' reduce using rule 110 + '\}' reduce using rule 110 + '\;' reduce using rule 110 + '<-' reduce using rule 110 + '->' reduce using rule 110 + '<=' reduce using rule 110 + '=>' reduce using rule 110 + ':' reduce using rule 110 + '::' reduce using rule 110 + '|' reduce using rule 110 + '`' reduce using rule 110 + ',' reduce using rule 110 + '_' reduce using rule 110 + '\\' reduce using rule 110 + '-' reduce using rule 110 + '@' reduce using rule 110 + 'ado' reduce using rule 110 + 'as' reduce using rule 110 + 'case' reduce using rule 110 + 'do' reduce using rule 110 + 'else' reduce using rule 110 + 'false' reduce using rule 110 + 'hiding' reduce using rule 110 + 'if' reduce using rule 110 + 'let' reduce using rule 110 + 'nominal' reduce using rule 110 + 'phantom' reduce using rule 110 + 'of' reduce using rule 110 + 'representational'reduce using rule 110 + 'role' reduce using rule 110 + 'then' reduce using rule 110 + 'true' reduce using rule 110 + 'where' reduce using rule 110 + '(..)' reduce using rule 110 + LOWER reduce using rule 110 + QUAL_LOWER reduce using rule 110 + UPPER reduce using rule 110 + QUAL_UPPER reduce using rule 110 + SYMBOL reduce using rule 110 + QUAL_SYMBOL reduce using rule 110 + OPERATOR reduce using rule 110 + QUAL_OPERATOR reduce using rule 110 + LIT_HOLE reduce using rule 110 + LIT_CHAR reduce using rule 110 + LIT_STRING reduce using rule 110 + LIT_RAW_STRING reduce using rule 110 + LIT_INT reduce using rule 110 + LIT_NUMBER reduce using rule 110 + %eof reduce using rule 110 + + +State 224 + + rowLabel -> label . '::' type (rule 138) + + '::' shift, and enter state 426 + + +State 225 + + typeAtom -> '{' row . '}' (rule 121) + + '}' shift, and enter state 425 + + +State 226 + + sep1__rowLabel__','__ -> rowLabel . (rule 425) + + ')' reduce using rule 425 + '}' reduce using rule 425 + '|' reduce using rule 425 + ',' reduce using rule 425 + + +State 227 + + row -> sep__rowLabel__','__ . (rule 136) + row -> sep__rowLabel__','__ . '|' type (rule 137) + + ')' reduce using rule 136 + '}' reduce using rule 136 + '|' shift, and enter state 424 + + +State 228 + + sep__rowLabel__','__ -> sep1__rowLabel__','__ . (rule 373) + sep1__rowLabel__','__ -> sep1__rowLabel__','__ . ',' rowLabel (rule 426) + + ')' reduce using rule 373 + '}' reduce using rule 373 + '|' reduce using rule 373 + ',' shift, and enter state 423 + + +State 229 + + row -> '|' . type (rule 135) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 422 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 230 + + label -> 'ado' . (rule 60) + + error reduce using rule 60 + '(' reduce using rule 60 + ')' reduce using rule 60 + '{' reduce using rule 60 + '}' reduce using rule 60 + '[' reduce using rule 60 + ']' reduce using rule 60 + '\}' reduce using rule 60 + '\;' reduce using rule 60 + '<=' reduce using rule 60 + ':' reduce using rule 60 + '::' reduce using rule 60 + '=' reduce using rule 60 + '|' reduce using rule 60 + '`' reduce using rule 60 + '.' reduce using rule 60 + ',' reduce using rule 60 + '_' reduce using rule 60 + '\\' reduce using rule 60 + '-' reduce using rule 60 + '@' reduce using rule 60 + 'ado' reduce using rule 60 + 'as' reduce using rule 60 + 'case' reduce using rule 60 + 'do' reduce using rule 60 + 'else' reduce using rule 60 + 'false' reduce using rule 60 + 'hiding' reduce using rule 60 + 'if' reduce using rule 60 + 'let' reduce using rule 60 + 'nominal' reduce using rule 60 + 'phantom' reduce using rule 60 + 'of' reduce using rule 60 + 'representational'reduce using rule 60 + 'role' reduce using rule 60 + 'then' reduce using rule 60 + 'true' reduce using rule 60 + 'where' reduce using rule 60 + '(..)' reduce using rule 60 + LOWER reduce using rule 60 + QUAL_LOWER reduce using rule 60 + UPPER reduce using rule 60 + QUAL_UPPER reduce using rule 60 + SYMBOL reduce using rule 60 + QUAL_SYMBOL reduce using rule 60 + OPERATOR reduce using rule 60 + QUAL_OPERATOR reduce using rule 60 + LIT_HOLE reduce using rule 60 + LIT_CHAR reduce using rule 60 + LIT_STRING reduce using rule 60 + LIT_RAW_STRING reduce using rule 60 + LIT_INT reduce using rule 60 + LIT_NUMBER reduce using rule 60 + %eof reduce using rule 60 + + +State 231 + + label -> 'as' . (rule 61) + + error reduce using rule 61 + '(' reduce using rule 61 + ')' reduce using rule 61 + '{' reduce using rule 61 + '}' reduce using rule 61 + '[' reduce using rule 61 + ']' reduce using rule 61 + '\}' reduce using rule 61 + '\;' reduce using rule 61 + '<=' reduce using rule 61 + ':' reduce using rule 61 + '::' reduce using rule 61 + '=' reduce using rule 61 + '|' reduce using rule 61 + '`' reduce using rule 61 + '.' reduce using rule 61 + ',' reduce using rule 61 + '_' reduce using rule 61 + '\\' reduce using rule 61 + '-' reduce using rule 61 + '@' reduce using rule 61 + 'ado' reduce using rule 61 + 'as' reduce using rule 61 + 'case' reduce using rule 61 + 'do' reduce using rule 61 + 'else' reduce using rule 61 + 'false' reduce using rule 61 + 'hiding' reduce using rule 61 + 'if' reduce using rule 61 + 'let' reduce using rule 61 + 'nominal' reduce using rule 61 + 'phantom' reduce using rule 61 + 'of' reduce using rule 61 + 'representational'reduce using rule 61 + 'role' reduce using rule 61 + 'then' reduce using rule 61 + 'true' reduce using rule 61 + 'where' reduce using rule 61 + '(..)' reduce using rule 61 + LOWER reduce using rule 61 + QUAL_LOWER reduce using rule 61 + UPPER reduce using rule 61 + QUAL_UPPER reduce using rule 61 + SYMBOL reduce using rule 61 + QUAL_SYMBOL reduce using rule 61 + OPERATOR reduce using rule 61 + QUAL_OPERATOR reduce using rule 61 + LIT_HOLE reduce using rule 61 + LIT_CHAR reduce using rule 61 + LIT_STRING reduce using rule 61 + LIT_RAW_STRING reduce using rule 61 + LIT_INT reduce using rule 61 + LIT_NUMBER reduce using rule 61 + %eof reduce using rule 61 + + +State 232 + + label -> 'case' . (rule 62) + + error reduce using rule 62 + '(' reduce using rule 62 + ')' reduce using rule 62 + '{' reduce using rule 62 + '}' reduce using rule 62 + '[' reduce using rule 62 + ']' reduce using rule 62 + '\}' reduce using rule 62 + '\;' reduce using rule 62 + '<=' reduce using rule 62 + ':' reduce using rule 62 + '::' reduce using rule 62 + '=' reduce using rule 62 + '|' reduce using rule 62 + '`' reduce using rule 62 + '.' reduce using rule 62 + ',' reduce using rule 62 + '_' reduce using rule 62 + '\\' reduce using rule 62 + '-' reduce using rule 62 + '@' reduce using rule 62 + 'ado' reduce using rule 62 + 'as' reduce using rule 62 + 'case' reduce using rule 62 + 'do' reduce using rule 62 + 'else' reduce using rule 62 + 'false' reduce using rule 62 + 'hiding' reduce using rule 62 + 'if' reduce using rule 62 + 'let' reduce using rule 62 + 'nominal' reduce using rule 62 + 'phantom' reduce using rule 62 + 'of' reduce using rule 62 + 'representational'reduce using rule 62 + 'role' reduce using rule 62 + 'then' reduce using rule 62 + 'true' reduce using rule 62 + 'where' reduce using rule 62 + '(..)' reduce using rule 62 + LOWER reduce using rule 62 + QUAL_LOWER reduce using rule 62 + UPPER reduce using rule 62 + QUAL_UPPER reduce using rule 62 + SYMBOL reduce using rule 62 + QUAL_SYMBOL reduce using rule 62 + OPERATOR reduce using rule 62 + QUAL_OPERATOR reduce using rule 62 + LIT_HOLE reduce using rule 62 + LIT_CHAR reduce using rule 62 + LIT_STRING reduce using rule 62 + LIT_RAW_STRING reduce using rule 62 + LIT_INT reduce using rule 62 + LIT_NUMBER reduce using rule 62 + %eof reduce using rule 62 + + +State 233 + + label -> 'class' . (rule 63) + + error reduce using rule 63 + '(' reduce using rule 63 + ')' reduce using rule 63 + '{' reduce using rule 63 + '}' reduce using rule 63 + '[' reduce using rule 63 + ']' reduce using rule 63 + '\}' reduce using rule 63 + '\;' reduce using rule 63 + '<=' reduce using rule 63 + ':' reduce using rule 63 + '::' reduce using rule 63 + '=' reduce using rule 63 + '|' reduce using rule 63 + '`' reduce using rule 63 + '.' reduce using rule 63 + ',' reduce using rule 63 + '_' reduce using rule 63 + '\\' reduce using rule 63 + '-' reduce using rule 63 + '@' reduce using rule 63 + 'ado' reduce using rule 63 + 'as' reduce using rule 63 + 'case' reduce using rule 63 + 'do' reduce using rule 63 + 'else' reduce using rule 63 + 'false' reduce using rule 63 + 'hiding' reduce using rule 63 + 'if' reduce using rule 63 + 'let' reduce using rule 63 + 'nominal' reduce using rule 63 + 'phantom' reduce using rule 63 + 'of' reduce using rule 63 + 'representational'reduce using rule 63 + 'role' reduce using rule 63 + 'then' reduce using rule 63 + 'true' reduce using rule 63 + 'where' reduce using rule 63 + '(..)' reduce using rule 63 + LOWER reduce using rule 63 + QUAL_LOWER reduce using rule 63 + UPPER reduce using rule 63 + QUAL_UPPER reduce using rule 63 + SYMBOL reduce using rule 63 + QUAL_SYMBOL reduce using rule 63 + OPERATOR reduce using rule 63 + QUAL_OPERATOR reduce using rule 63 + LIT_HOLE reduce using rule 63 + LIT_CHAR reduce using rule 63 + LIT_STRING reduce using rule 63 + LIT_RAW_STRING reduce using rule 63 + LIT_INT reduce using rule 63 + LIT_NUMBER reduce using rule 63 + %eof reduce using rule 63 + + +State 234 + + label -> 'data' . (rule 64) + + error reduce using rule 64 + '(' reduce using rule 64 + ')' reduce using rule 64 + '{' reduce using rule 64 + '}' reduce using rule 64 + '[' reduce using rule 64 + ']' reduce using rule 64 + '\}' reduce using rule 64 + '\;' reduce using rule 64 + '<=' reduce using rule 64 + ':' reduce using rule 64 + '::' reduce using rule 64 + '=' reduce using rule 64 + '|' reduce using rule 64 + '`' reduce using rule 64 + '.' reduce using rule 64 + ',' reduce using rule 64 + '_' reduce using rule 64 + '\\' reduce using rule 64 + '-' reduce using rule 64 + '@' reduce using rule 64 + 'ado' reduce using rule 64 + 'as' reduce using rule 64 + 'case' reduce using rule 64 + 'do' reduce using rule 64 + 'else' reduce using rule 64 + 'false' reduce using rule 64 + 'hiding' reduce using rule 64 + 'if' reduce using rule 64 + 'let' reduce using rule 64 + 'nominal' reduce using rule 64 + 'phantom' reduce using rule 64 + 'of' reduce using rule 64 + 'representational'reduce using rule 64 + 'role' reduce using rule 64 + 'then' reduce using rule 64 + 'true' reduce using rule 64 + 'where' reduce using rule 64 + '(..)' reduce using rule 64 + LOWER reduce using rule 64 + QUAL_LOWER reduce using rule 64 + UPPER reduce using rule 64 + QUAL_UPPER reduce using rule 64 + SYMBOL reduce using rule 64 + QUAL_SYMBOL reduce using rule 64 + OPERATOR reduce using rule 64 + QUAL_OPERATOR reduce using rule 64 + LIT_HOLE reduce using rule 64 + LIT_CHAR reduce using rule 64 + LIT_STRING reduce using rule 64 + LIT_RAW_STRING reduce using rule 64 + LIT_INT reduce using rule 64 + LIT_NUMBER reduce using rule 64 + %eof reduce using rule 64 + + +State 235 + + label -> 'derive' . (rule 65) + + error reduce using rule 65 + '(' reduce using rule 65 + ')' reduce using rule 65 + '{' reduce using rule 65 + '}' reduce using rule 65 + '[' reduce using rule 65 + ']' reduce using rule 65 + '\}' reduce using rule 65 + '\;' reduce using rule 65 + '<=' reduce using rule 65 + ':' reduce using rule 65 + '::' reduce using rule 65 + '=' reduce using rule 65 + '|' reduce using rule 65 + '`' reduce using rule 65 + '.' reduce using rule 65 + ',' reduce using rule 65 + '_' reduce using rule 65 + '\\' reduce using rule 65 + '-' reduce using rule 65 + '@' reduce using rule 65 + 'ado' reduce using rule 65 + 'as' reduce using rule 65 + 'case' reduce using rule 65 + 'do' reduce using rule 65 + 'else' reduce using rule 65 + 'false' reduce using rule 65 + 'hiding' reduce using rule 65 + 'if' reduce using rule 65 + 'let' reduce using rule 65 + 'nominal' reduce using rule 65 + 'phantom' reduce using rule 65 + 'of' reduce using rule 65 + 'representational'reduce using rule 65 + 'role' reduce using rule 65 + 'then' reduce using rule 65 + 'true' reduce using rule 65 + 'where' reduce using rule 65 + '(..)' reduce using rule 65 + LOWER reduce using rule 65 + QUAL_LOWER reduce using rule 65 + UPPER reduce using rule 65 + QUAL_UPPER reduce using rule 65 + SYMBOL reduce using rule 65 + QUAL_SYMBOL reduce using rule 65 + OPERATOR reduce using rule 65 + QUAL_OPERATOR reduce using rule 65 + LIT_HOLE reduce using rule 65 + LIT_CHAR reduce using rule 65 + LIT_STRING reduce using rule 65 + LIT_RAW_STRING reduce using rule 65 + LIT_INT reduce using rule 65 + LIT_NUMBER reduce using rule 65 + %eof reduce using rule 65 + + +State 236 + + label -> 'do' . (rule 66) + + error reduce using rule 66 + '(' reduce using rule 66 + ')' reduce using rule 66 + '{' reduce using rule 66 + '}' reduce using rule 66 + '[' reduce using rule 66 + ']' reduce using rule 66 + '\}' reduce using rule 66 + '\;' reduce using rule 66 + '<=' reduce using rule 66 + ':' reduce using rule 66 + '::' reduce using rule 66 + '=' reduce using rule 66 + '|' reduce using rule 66 + '`' reduce using rule 66 + '.' reduce using rule 66 + ',' reduce using rule 66 + '_' reduce using rule 66 + '\\' reduce using rule 66 + '-' reduce using rule 66 + '@' reduce using rule 66 + 'ado' reduce using rule 66 + 'as' reduce using rule 66 + 'case' reduce using rule 66 + 'do' reduce using rule 66 + 'else' reduce using rule 66 + 'false' reduce using rule 66 + 'hiding' reduce using rule 66 + 'if' reduce using rule 66 + 'let' reduce using rule 66 + 'nominal' reduce using rule 66 + 'phantom' reduce using rule 66 + 'of' reduce using rule 66 + 'representational'reduce using rule 66 + 'role' reduce using rule 66 + 'then' reduce using rule 66 + 'true' reduce using rule 66 + 'where' reduce using rule 66 + '(..)' reduce using rule 66 + LOWER reduce using rule 66 + QUAL_LOWER reduce using rule 66 + UPPER reduce using rule 66 + QUAL_UPPER reduce using rule 66 + SYMBOL reduce using rule 66 + QUAL_SYMBOL reduce using rule 66 + OPERATOR reduce using rule 66 + QUAL_OPERATOR reduce using rule 66 + LIT_HOLE reduce using rule 66 + LIT_CHAR reduce using rule 66 + LIT_STRING reduce using rule 66 + LIT_RAW_STRING reduce using rule 66 + LIT_INT reduce using rule 66 + LIT_NUMBER reduce using rule 66 + %eof reduce using rule 66 + + +State 237 + + label -> 'else' . (rule 67) + + error reduce using rule 67 + '(' reduce using rule 67 + ')' reduce using rule 67 + '{' reduce using rule 67 + '}' reduce using rule 67 + '[' reduce using rule 67 + ']' reduce using rule 67 + '\}' reduce using rule 67 + '\;' reduce using rule 67 + '<=' reduce using rule 67 + ':' reduce using rule 67 + '::' reduce using rule 67 + '=' reduce using rule 67 + '|' reduce using rule 67 + '`' reduce using rule 67 + '.' reduce using rule 67 + ',' reduce using rule 67 + '_' reduce using rule 67 + '\\' reduce using rule 67 + '-' reduce using rule 67 + '@' reduce using rule 67 + 'ado' reduce using rule 67 + 'as' reduce using rule 67 + 'case' reduce using rule 67 + 'do' reduce using rule 67 + 'else' reduce using rule 67 + 'false' reduce using rule 67 + 'hiding' reduce using rule 67 + 'if' reduce using rule 67 + 'let' reduce using rule 67 + 'nominal' reduce using rule 67 + 'phantom' reduce using rule 67 + 'of' reduce using rule 67 + 'representational'reduce using rule 67 + 'role' reduce using rule 67 + 'then' reduce using rule 67 + 'true' reduce using rule 67 + 'where' reduce using rule 67 + '(..)' reduce using rule 67 + LOWER reduce using rule 67 + QUAL_LOWER reduce using rule 67 + UPPER reduce using rule 67 + QUAL_UPPER reduce using rule 67 + SYMBOL reduce using rule 67 + QUAL_SYMBOL reduce using rule 67 + OPERATOR reduce using rule 67 + QUAL_OPERATOR reduce using rule 67 + LIT_HOLE reduce using rule 67 + LIT_CHAR reduce using rule 67 + LIT_STRING reduce using rule 67 + LIT_RAW_STRING reduce using rule 67 + LIT_INT reduce using rule 67 + LIT_NUMBER reduce using rule 67 + %eof reduce using rule 67 + + +State 238 + + label -> 'false' . (rule 68) + + error reduce using rule 68 + '(' reduce using rule 68 + ')' reduce using rule 68 + '{' reduce using rule 68 + '}' reduce using rule 68 + '[' reduce using rule 68 + ']' reduce using rule 68 + '\}' reduce using rule 68 + '\;' reduce using rule 68 + '<=' reduce using rule 68 + ':' reduce using rule 68 + '::' reduce using rule 68 + '=' reduce using rule 68 + '|' reduce using rule 68 + '`' reduce using rule 68 + '.' reduce using rule 68 + ',' reduce using rule 68 + '_' reduce using rule 68 + '\\' reduce using rule 68 + '-' reduce using rule 68 + '@' reduce using rule 68 + 'ado' reduce using rule 68 + 'as' reduce using rule 68 + 'case' reduce using rule 68 + 'do' reduce using rule 68 + 'else' reduce using rule 68 + 'false' reduce using rule 68 + 'hiding' reduce using rule 68 + 'if' reduce using rule 68 + 'let' reduce using rule 68 + 'nominal' reduce using rule 68 + 'phantom' reduce using rule 68 + 'of' reduce using rule 68 + 'representational'reduce using rule 68 + 'role' reduce using rule 68 + 'then' reduce using rule 68 + 'true' reduce using rule 68 + 'where' reduce using rule 68 + '(..)' reduce using rule 68 + LOWER reduce using rule 68 + QUAL_LOWER reduce using rule 68 + UPPER reduce using rule 68 + QUAL_UPPER reduce using rule 68 + SYMBOL reduce using rule 68 + QUAL_SYMBOL reduce using rule 68 + OPERATOR reduce using rule 68 + QUAL_OPERATOR reduce using rule 68 + LIT_HOLE reduce using rule 68 + LIT_CHAR reduce using rule 68 + LIT_STRING reduce using rule 68 + LIT_RAW_STRING reduce using rule 68 + LIT_INT reduce using rule 68 + LIT_NUMBER reduce using rule 68 + %eof reduce using rule 68 + + +State 239 + + label -> 'forall' . (rule 69) + + error reduce using rule 69 + '(' reduce using rule 69 + ')' reduce using rule 69 + '{' reduce using rule 69 + '}' reduce using rule 69 + '[' reduce using rule 69 + ']' reduce using rule 69 + '\}' reduce using rule 69 + '\;' reduce using rule 69 + '<=' reduce using rule 69 + ':' reduce using rule 69 + '::' reduce using rule 69 + '=' reduce using rule 69 + '|' reduce using rule 69 + '`' reduce using rule 69 + '.' reduce using rule 69 + ',' reduce using rule 69 + '_' reduce using rule 69 + '\\' reduce using rule 69 + '-' reduce using rule 69 + '@' reduce using rule 69 + 'ado' reduce using rule 69 + 'as' reduce using rule 69 + 'case' reduce using rule 69 + 'do' reduce using rule 69 + 'else' reduce using rule 69 + 'false' reduce using rule 69 + 'hiding' reduce using rule 69 + 'if' reduce using rule 69 + 'let' reduce using rule 69 + 'nominal' reduce using rule 69 + 'phantom' reduce using rule 69 + 'of' reduce using rule 69 + 'representational'reduce using rule 69 + 'role' reduce using rule 69 + 'then' reduce using rule 69 + 'true' reduce using rule 69 + 'where' reduce using rule 69 + '(..)' reduce using rule 69 + LOWER reduce using rule 69 + QUAL_LOWER reduce using rule 69 + UPPER reduce using rule 69 + QUAL_UPPER reduce using rule 69 + SYMBOL reduce using rule 69 + QUAL_SYMBOL reduce using rule 69 + OPERATOR reduce using rule 69 + QUAL_OPERATOR reduce using rule 69 + LIT_HOLE reduce using rule 69 + LIT_CHAR reduce using rule 69 + LIT_STRING reduce using rule 69 + LIT_RAW_STRING reduce using rule 69 + LIT_INT reduce using rule 69 + LIT_NUMBER reduce using rule 69 + %eof reduce using rule 69 + + +State 240 + + label -> 'foreign' . (rule 70) + + error reduce using rule 70 + '(' reduce using rule 70 + ')' reduce using rule 70 + '{' reduce using rule 70 + '}' reduce using rule 70 + '[' reduce using rule 70 + ']' reduce using rule 70 + '\}' reduce using rule 70 + '\;' reduce using rule 70 + '<=' reduce using rule 70 + ':' reduce using rule 70 + '::' reduce using rule 70 + '=' reduce using rule 70 + '|' reduce using rule 70 + '`' reduce using rule 70 + '.' reduce using rule 70 + ',' reduce using rule 70 + '_' reduce using rule 70 + '\\' reduce using rule 70 + '-' reduce using rule 70 + '@' reduce using rule 70 + 'ado' reduce using rule 70 + 'as' reduce using rule 70 + 'case' reduce using rule 70 + 'do' reduce using rule 70 + 'else' reduce using rule 70 + 'false' reduce using rule 70 + 'hiding' reduce using rule 70 + 'if' reduce using rule 70 + 'let' reduce using rule 70 + 'nominal' reduce using rule 70 + 'phantom' reduce using rule 70 + 'of' reduce using rule 70 + 'representational'reduce using rule 70 + 'role' reduce using rule 70 + 'then' reduce using rule 70 + 'true' reduce using rule 70 + 'where' reduce using rule 70 + '(..)' reduce using rule 70 + LOWER reduce using rule 70 + QUAL_LOWER reduce using rule 70 + UPPER reduce using rule 70 + QUAL_UPPER reduce using rule 70 + SYMBOL reduce using rule 70 + QUAL_SYMBOL reduce using rule 70 + OPERATOR reduce using rule 70 + QUAL_OPERATOR reduce using rule 70 + LIT_HOLE reduce using rule 70 + LIT_CHAR reduce using rule 70 + LIT_STRING reduce using rule 70 + LIT_RAW_STRING reduce using rule 70 + LIT_INT reduce using rule 70 + LIT_NUMBER reduce using rule 70 + %eof reduce using rule 70 + + +State 241 + + label -> 'hiding' . (rule 71) + + error reduce using rule 71 + '(' reduce using rule 71 + ')' reduce using rule 71 + '{' reduce using rule 71 + '}' reduce using rule 71 + '[' reduce using rule 71 + ']' reduce using rule 71 + '\}' reduce using rule 71 + '\;' reduce using rule 71 + '<=' reduce using rule 71 + ':' reduce using rule 71 + '::' reduce using rule 71 + '=' reduce using rule 71 + '|' reduce using rule 71 + '`' reduce using rule 71 + '.' reduce using rule 71 + ',' reduce using rule 71 + '_' reduce using rule 71 + '\\' reduce using rule 71 + '-' reduce using rule 71 + '@' reduce using rule 71 + 'ado' reduce using rule 71 + 'as' reduce using rule 71 + 'case' reduce using rule 71 + 'do' reduce using rule 71 + 'else' reduce using rule 71 + 'false' reduce using rule 71 + 'hiding' reduce using rule 71 + 'if' reduce using rule 71 + 'let' reduce using rule 71 + 'nominal' reduce using rule 71 + 'phantom' reduce using rule 71 + 'of' reduce using rule 71 + 'representational'reduce using rule 71 + 'role' reduce using rule 71 + 'then' reduce using rule 71 + 'true' reduce using rule 71 + 'where' reduce using rule 71 + '(..)' reduce using rule 71 + LOWER reduce using rule 71 + QUAL_LOWER reduce using rule 71 + UPPER reduce using rule 71 + QUAL_UPPER reduce using rule 71 + SYMBOL reduce using rule 71 + QUAL_SYMBOL reduce using rule 71 + OPERATOR reduce using rule 71 + QUAL_OPERATOR reduce using rule 71 + LIT_HOLE reduce using rule 71 + LIT_CHAR reduce using rule 71 + LIT_STRING reduce using rule 71 + LIT_RAW_STRING reduce using rule 71 + LIT_INT reduce using rule 71 + LIT_NUMBER reduce using rule 71 + %eof reduce using rule 71 + + +State 242 + + label -> 'import' . (rule 72) + + error reduce using rule 72 + '(' reduce using rule 72 + ')' reduce using rule 72 + '{' reduce using rule 72 + '}' reduce using rule 72 + '[' reduce using rule 72 + ']' reduce using rule 72 + '\}' reduce using rule 72 + '\;' reduce using rule 72 + '<=' reduce using rule 72 + ':' reduce using rule 72 + '::' reduce using rule 72 + '=' reduce using rule 72 + '|' reduce using rule 72 + '`' reduce using rule 72 + '.' reduce using rule 72 + ',' reduce using rule 72 + '_' reduce using rule 72 + '\\' reduce using rule 72 + '-' reduce using rule 72 + '@' reduce using rule 72 + 'ado' reduce using rule 72 + 'as' reduce using rule 72 + 'case' reduce using rule 72 + 'do' reduce using rule 72 + 'else' reduce using rule 72 + 'false' reduce using rule 72 + 'hiding' reduce using rule 72 + 'if' reduce using rule 72 + 'let' reduce using rule 72 + 'nominal' reduce using rule 72 + 'phantom' reduce using rule 72 + 'of' reduce using rule 72 + 'representational'reduce using rule 72 + 'role' reduce using rule 72 + 'then' reduce using rule 72 + 'true' reduce using rule 72 + 'where' reduce using rule 72 + '(..)' reduce using rule 72 + LOWER reduce using rule 72 + QUAL_LOWER reduce using rule 72 + UPPER reduce using rule 72 + QUAL_UPPER reduce using rule 72 + SYMBOL reduce using rule 72 + QUAL_SYMBOL reduce using rule 72 + OPERATOR reduce using rule 72 + QUAL_OPERATOR reduce using rule 72 + LIT_HOLE reduce using rule 72 + LIT_CHAR reduce using rule 72 + LIT_STRING reduce using rule 72 + LIT_RAW_STRING reduce using rule 72 + LIT_INT reduce using rule 72 + LIT_NUMBER reduce using rule 72 + %eof reduce using rule 72 + + +State 243 + + label -> 'if' . (rule 73) + + error reduce using rule 73 + '(' reduce using rule 73 + ')' reduce using rule 73 + '{' reduce using rule 73 + '}' reduce using rule 73 + '[' reduce using rule 73 + ']' reduce using rule 73 + '\}' reduce using rule 73 + '\;' reduce using rule 73 + '<=' reduce using rule 73 + ':' reduce using rule 73 + '::' reduce using rule 73 + '=' reduce using rule 73 + '|' reduce using rule 73 + '`' reduce using rule 73 + '.' reduce using rule 73 + ',' reduce using rule 73 + '_' reduce using rule 73 + '\\' reduce using rule 73 + '-' reduce using rule 73 + '@' reduce using rule 73 + 'ado' reduce using rule 73 + 'as' reduce using rule 73 + 'case' reduce using rule 73 + 'do' reduce using rule 73 + 'else' reduce using rule 73 + 'false' reduce using rule 73 + 'hiding' reduce using rule 73 + 'if' reduce using rule 73 + 'let' reduce using rule 73 + 'nominal' reduce using rule 73 + 'phantom' reduce using rule 73 + 'of' reduce using rule 73 + 'representational'reduce using rule 73 + 'role' reduce using rule 73 + 'then' reduce using rule 73 + 'true' reduce using rule 73 + 'where' reduce using rule 73 + '(..)' reduce using rule 73 + LOWER reduce using rule 73 + QUAL_LOWER reduce using rule 73 + UPPER reduce using rule 73 + QUAL_UPPER reduce using rule 73 + SYMBOL reduce using rule 73 + QUAL_SYMBOL reduce using rule 73 + OPERATOR reduce using rule 73 + QUAL_OPERATOR reduce using rule 73 + LIT_HOLE reduce using rule 73 + LIT_CHAR reduce using rule 73 + LIT_STRING reduce using rule 73 + LIT_RAW_STRING reduce using rule 73 + LIT_INT reduce using rule 73 + LIT_NUMBER reduce using rule 73 + %eof reduce using rule 73 + + +State 244 + + label -> 'in' . (rule 74) + + error reduce using rule 74 + '(' reduce using rule 74 + ')' reduce using rule 74 + '{' reduce using rule 74 + '}' reduce using rule 74 + '[' reduce using rule 74 + ']' reduce using rule 74 + '\}' reduce using rule 74 + '\;' reduce using rule 74 + '<=' reduce using rule 74 + ':' reduce using rule 74 + '::' reduce using rule 74 + '=' reduce using rule 74 + '|' reduce using rule 74 + '`' reduce using rule 74 + '.' reduce using rule 74 + ',' reduce using rule 74 + '_' reduce using rule 74 + '\\' reduce using rule 74 + '-' reduce using rule 74 + '@' reduce using rule 74 + 'ado' reduce using rule 74 + 'as' reduce using rule 74 + 'case' reduce using rule 74 + 'do' reduce using rule 74 + 'else' reduce using rule 74 + 'false' reduce using rule 74 + 'hiding' reduce using rule 74 + 'if' reduce using rule 74 + 'let' reduce using rule 74 + 'nominal' reduce using rule 74 + 'phantom' reduce using rule 74 + 'of' reduce using rule 74 + 'representational'reduce using rule 74 + 'role' reduce using rule 74 + 'then' reduce using rule 74 + 'true' reduce using rule 74 + 'where' reduce using rule 74 + '(..)' reduce using rule 74 + LOWER reduce using rule 74 + QUAL_LOWER reduce using rule 74 + UPPER reduce using rule 74 + QUAL_UPPER reduce using rule 74 + SYMBOL reduce using rule 74 + QUAL_SYMBOL reduce using rule 74 + OPERATOR reduce using rule 74 + QUAL_OPERATOR reduce using rule 74 + LIT_HOLE reduce using rule 74 + LIT_CHAR reduce using rule 74 + LIT_STRING reduce using rule 74 + LIT_RAW_STRING reduce using rule 74 + LIT_INT reduce using rule 74 + LIT_NUMBER reduce using rule 74 + %eof reduce using rule 74 + + +State 245 + + label -> 'infix' . (rule 75) + + error reduce using rule 75 + '(' reduce using rule 75 + ')' reduce using rule 75 + '{' reduce using rule 75 + '}' reduce using rule 75 + '[' reduce using rule 75 + ']' reduce using rule 75 + '\}' reduce using rule 75 + '\;' reduce using rule 75 + '<=' reduce using rule 75 + ':' reduce using rule 75 + '::' reduce using rule 75 + '=' reduce using rule 75 + '|' reduce using rule 75 + '`' reduce using rule 75 + '.' reduce using rule 75 + ',' reduce using rule 75 + '_' reduce using rule 75 + '\\' reduce using rule 75 + '-' reduce using rule 75 + '@' reduce using rule 75 + 'ado' reduce using rule 75 + 'as' reduce using rule 75 + 'case' reduce using rule 75 + 'do' reduce using rule 75 + 'else' reduce using rule 75 + 'false' reduce using rule 75 + 'hiding' reduce using rule 75 + 'if' reduce using rule 75 + 'let' reduce using rule 75 + 'nominal' reduce using rule 75 + 'phantom' reduce using rule 75 + 'of' reduce using rule 75 + 'representational'reduce using rule 75 + 'role' reduce using rule 75 + 'then' reduce using rule 75 + 'true' reduce using rule 75 + 'where' reduce using rule 75 + '(..)' reduce using rule 75 + LOWER reduce using rule 75 + QUAL_LOWER reduce using rule 75 + UPPER reduce using rule 75 + QUAL_UPPER reduce using rule 75 + SYMBOL reduce using rule 75 + QUAL_SYMBOL reduce using rule 75 + OPERATOR reduce using rule 75 + QUAL_OPERATOR reduce using rule 75 + LIT_HOLE reduce using rule 75 + LIT_CHAR reduce using rule 75 + LIT_STRING reduce using rule 75 + LIT_RAW_STRING reduce using rule 75 + LIT_INT reduce using rule 75 + LIT_NUMBER reduce using rule 75 + %eof reduce using rule 75 + + +State 246 + + label -> 'infixl' . (rule 76) + + error reduce using rule 76 + '(' reduce using rule 76 + ')' reduce using rule 76 + '{' reduce using rule 76 + '}' reduce using rule 76 + '[' reduce using rule 76 + ']' reduce using rule 76 + '\}' reduce using rule 76 + '\;' reduce using rule 76 + '<=' reduce using rule 76 + ':' reduce using rule 76 + '::' reduce using rule 76 + '=' reduce using rule 76 + '|' reduce using rule 76 + '`' reduce using rule 76 + '.' reduce using rule 76 + ',' reduce using rule 76 + '_' reduce using rule 76 + '\\' reduce using rule 76 + '-' reduce using rule 76 + '@' reduce using rule 76 + 'ado' reduce using rule 76 + 'as' reduce using rule 76 + 'case' reduce using rule 76 + 'do' reduce using rule 76 + 'else' reduce using rule 76 + 'false' reduce using rule 76 + 'hiding' reduce using rule 76 + 'if' reduce using rule 76 + 'let' reduce using rule 76 + 'nominal' reduce using rule 76 + 'phantom' reduce using rule 76 + 'of' reduce using rule 76 + 'representational'reduce using rule 76 + 'role' reduce using rule 76 + 'then' reduce using rule 76 + 'true' reduce using rule 76 + 'where' reduce using rule 76 + '(..)' reduce using rule 76 + LOWER reduce using rule 76 + QUAL_LOWER reduce using rule 76 + UPPER reduce using rule 76 + QUAL_UPPER reduce using rule 76 + SYMBOL reduce using rule 76 + QUAL_SYMBOL reduce using rule 76 + OPERATOR reduce using rule 76 + QUAL_OPERATOR reduce using rule 76 + LIT_HOLE reduce using rule 76 + LIT_CHAR reduce using rule 76 + LIT_STRING reduce using rule 76 + LIT_RAW_STRING reduce using rule 76 + LIT_INT reduce using rule 76 + LIT_NUMBER reduce using rule 76 + %eof reduce using rule 76 + + +State 247 + + label -> 'infixr' . (rule 77) + + error reduce using rule 77 + '(' reduce using rule 77 + ')' reduce using rule 77 + '{' reduce using rule 77 + '}' reduce using rule 77 + '[' reduce using rule 77 + ']' reduce using rule 77 + '\}' reduce using rule 77 + '\;' reduce using rule 77 + '<=' reduce using rule 77 + ':' reduce using rule 77 + '::' reduce using rule 77 + '=' reduce using rule 77 + '|' reduce using rule 77 + '`' reduce using rule 77 + '.' reduce using rule 77 + ',' reduce using rule 77 + '_' reduce using rule 77 + '\\' reduce using rule 77 + '-' reduce using rule 77 + '@' reduce using rule 77 + 'ado' reduce using rule 77 + 'as' reduce using rule 77 + 'case' reduce using rule 77 + 'do' reduce using rule 77 + 'else' reduce using rule 77 + 'false' reduce using rule 77 + 'hiding' reduce using rule 77 + 'if' reduce using rule 77 + 'let' reduce using rule 77 + 'nominal' reduce using rule 77 + 'phantom' reduce using rule 77 + 'of' reduce using rule 77 + 'representational'reduce using rule 77 + 'role' reduce using rule 77 + 'then' reduce using rule 77 + 'true' reduce using rule 77 + 'where' reduce using rule 77 + '(..)' reduce using rule 77 + LOWER reduce using rule 77 + QUAL_LOWER reduce using rule 77 + UPPER reduce using rule 77 + QUAL_UPPER reduce using rule 77 + SYMBOL reduce using rule 77 + QUAL_SYMBOL reduce using rule 77 + OPERATOR reduce using rule 77 + QUAL_OPERATOR reduce using rule 77 + LIT_HOLE reduce using rule 77 + LIT_CHAR reduce using rule 77 + LIT_STRING reduce using rule 77 + LIT_RAW_STRING reduce using rule 77 + LIT_INT reduce using rule 77 + LIT_NUMBER reduce using rule 77 + %eof reduce using rule 77 + + +State 248 + + label -> 'instance' . (rule 78) + + error reduce using rule 78 + '(' reduce using rule 78 + ')' reduce using rule 78 + '{' reduce using rule 78 + '}' reduce using rule 78 + '[' reduce using rule 78 + ']' reduce using rule 78 + '\}' reduce using rule 78 + '\;' reduce using rule 78 + '<=' reduce using rule 78 + ':' reduce using rule 78 + '::' reduce using rule 78 + '=' reduce using rule 78 + '|' reduce using rule 78 + '`' reduce using rule 78 + '.' reduce using rule 78 + ',' reduce using rule 78 + '_' reduce using rule 78 + '\\' reduce using rule 78 + '-' reduce using rule 78 + '@' reduce using rule 78 + 'ado' reduce using rule 78 + 'as' reduce using rule 78 + 'case' reduce using rule 78 + 'do' reduce using rule 78 + 'else' reduce using rule 78 + 'false' reduce using rule 78 + 'hiding' reduce using rule 78 + 'if' reduce using rule 78 + 'let' reduce using rule 78 + 'nominal' reduce using rule 78 + 'phantom' reduce using rule 78 + 'of' reduce using rule 78 + 'representational'reduce using rule 78 + 'role' reduce using rule 78 + 'then' reduce using rule 78 + 'true' reduce using rule 78 + 'where' reduce using rule 78 + '(..)' reduce using rule 78 + LOWER reduce using rule 78 + QUAL_LOWER reduce using rule 78 + UPPER reduce using rule 78 + QUAL_UPPER reduce using rule 78 + SYMBOL reduce using rule 78 + QUAL_SYMBOL reduce using rule 78 + OPERATOR reduce using rule 78 + QUAL_OPERATOR reduce using rule 78 + LIT_HOLE reduce using rule 78 + LIT_CHAR reduce using rule 78 + LIT_STRING reduce using rule 78 + LIT_RAW_STRING reduce using rule 78 + LIT_INT reduce using rule 78 + LIT_NUMBER reduce using rule 78 + %eof reduce using rule 78 + + +State 249 + + label -> 'let' . (rule 79) + + error reduce using rule 79 + '(' reduce using rule 79 + ')' reduce using rule 79 + '{' reduce using rule 79 + '}' reduce using rule 79 + '[' reduce using rule 79 + ']' reduce using rule 79 + '\}' reduce using rule 79 + '\;' reduce using rule 79 + '<=' reduce using rule 79 + ':' reduce using rule 79 + '::' reduce using rule 79 + '=' reduce using rule 79 + '|' reduce using rule 79 + '`' reduce using rule 79 + '.' reduce using rule 79 + ',' reduce using rule 79 + '_' reduce using rule 79 + '\\' reduce using rule 79 + '-' reduce using rule 79 + '@' reduce using rule 79 + 'ado' reduce using rule 79 + 'as' reduce using rule 79 + 'case' reduce using rule 79 + 'do' reduce using rule 79 + 'else' reduce using rule 79 + 'false' reduce using rule 79 + 'hiding' reduce using rule 79 + 'if' reduce using rule 79 + 'let' reduce using rule 79 + 'nominal' reduce using rule 79 + 'phantom' reduce using rule 79 + 'of' reduce using rule 79 + 'representational'reduce using rule 79 + 'role' reduce using rule 79 + 'then' reduce using rule 79 + 'true' reduce using rule 79 + 'where' reduce using rule 79 + '(..)' reduce using rule 79 + LOWER reduce using rule 79 + QUAL_LOWER reduce using rule 79 + UPPER reduce using rule 79 + QUAL_UPPER reduce using rule 79 + SYMBOL reduce using rule 79 + QUAL_SYMBOL reduce using rule 79 + OPERATOR reduce using rule 79 + QUAL_OPERATOR reduce using rule 79 + LIT_HOLE reduce using rule 79 + LIT_CHAR reduce using rule 79 + LIT_STRING reduce using rule 79 + LIT_RAW_STRING reduce using rule 79 + LIT_INT reduce using rule 79 + LIT_NUMBER reduce using rule 79 + %eof reduce using rule 79 + + +State 250 + + label -> 'module' . (rule 80) + + error reduce using rule 80 + '(' reduce using rule 80 + ')' reduce using rule 80 + '{' reduce using rule 80 + '}' reduce using rule 80 + '[' reduce using rule 80 + ']' reduce using rule 80 + '\}' reduce using rule 80 + '\;' reduce using rule 80 + '<=' reduce using rule 80 + ':' reduce using rule 80 + '::' reduce using rule 80 + '=' reduce using rule 80 + '|' reduce using rule 80 + '`' reduce using rule 80 + '.' reduce using rule 80 + ',' reduce using rule 80 + '_' reduce using rule 80 + '\\' reduce using rule 80 + '-' reduce using rule 80 + '@' reduce using rule 80 + 'ado' reduce using rule 80 + 'as' reduce using rule 80 + 'case' reduce using rule 80 + 'do' reduce using rule 80 + 'else' reduce using rule 80 + 'false' reduce using rule 80 + 'hiding' reduce using rule 80 + 'if' reduce using rule 80 + 'let' reduce using rule 80 + 'nominal' reduce using rule 80 + 'phantom' reduce using rule 80 + 'of' reduce using rule 80 + 'representational'reduce using rule 80 + 'role' reduce using rule 80 + 'then' reduce using rule 80 + 'true' reduce using rule 80 + 'where' reduce using rule 80 + '(..)' reduce using rule 80 + LOWER reduce using rule 80 + QUAL_LOWER reduce using rule 80 + UPPER reduce using rule 80 + QUAL_UPPER reduce using rule 80 + SYMBOL reduce using rule 80 + QUAL_SYMBOL reduce using rule 80 + OPERATOR reduce using rule 80 + QUAL_OPERATOR reduce using rule 80 + LIT_HOLE reduce using rule 80 + LIT_CHAR reduce using rule 80 + LIT_STRING reduce using rule 80 + LIT_RAW_STRING reduce using rule 80 + LIT_INT reduce using rule 80 + LIT_NUMBER reduce using rule 80 + %eof reduce using rule 80 + + +State 251 + + label -> 'newtype' . (rule 81) + + error reduce using rule 81 + '(' reduce using rule 81 + ')' reduce using rule 81 + '{' reduce using rule 81 + '}' reduce using rule 81 + '[' reduce using rule 81 + ']' reduce using rule 81 + '\}' reduce using rule 81 + '\;' reduce using rule 81 + '<=' reduce using rule 81 + ':' reduce using rule 81 + '::' reduce using rule 81 + '=' reduce using rule 81 + '|' reduce using rule 81 + '`' reduce using rule 81 + '.' reduce using rule 81 + ',' reduce using rule 81 + '_' reduce using rule 81 + '\\' reduce using rule 81 + '-' reduce using rule 81 + '@' reduce using rule 81 + 'ado' reduce using rule 81 + 'as' reduce using rule 81 + 'case' reduce using rule 81 + 'do' reduce using rule 81 + 'else' reduce using rule 81 + 'false' reduce using rule 81 + 'hiding' reduce using rule 81 + 'if' reduce using rule 81 + 'let' reduce using rule 81 + 'nominal' reduce using rule 81 + 'phantom' reduce using rule 81 + 'of' reduce using rule 81 + 'representational'reduce using rule 81 + 'role' reduce using rule 81 + 'then' reduce using rule 81 + 'true' reduce using rule 81 + 'where' reduce using rule 81 + '(..)' reduce using rule 81 + LOWER reduce using rule 81 + QUAL_LOWER reduce using rule 81 + UPPER reduce using rule 81 + QUAL_UPPER reduce using rule 81 + SYMBOL reduce using rule 81 + QUAL_SYMBOL reduce using rule 81 + OPERATOR reduce using rule 81 + QUAL_OPERATOR reduce using rule 81 + LIT_HOLE reduce using rule 81 + LIT_CHAR reduce using rule 81 + LIT_STRING reduce using rule 81 + LIT_RAW_STRING reduce using rule 81 + LIT_INT reduce using rule 81 + LIT_NUMBER reduce using rule 81 + %eof reduce using rule 81 + + +State 252 + + label -> 'nominal' . (rule 82) + + error reduce using rule 82 + '(' reduce using rule 82 + ')' reduce using rule 82 + '{' reduce using rule 82 + '}' reduce using rule 82 + '[' reduce using rule 82 + ']' reduce using rule 82 + '\}' reduce using rule 82 + '\;' reduce using rule 82 + '<=' reduce using rule 82 + ':' reduce using rule 82 + '::' reduce using rule 82 + '=' reduce using rule 82 + '|' reduce using rule 82 + '`' reduce using rule 82 + '.' reduce using rule 82 + ',' reduce using rule 82 + '_' reduce using rule 82 + '\\' reduce using rule 82 + '-' reduce using rule 82 + '@' reduce using rule 82 + 'ado' reduce using rule 82 + 'as' reduce using rule 82 + 'case' reduce using rule 82 + 'do' reduce using rule 82 + 'else' reduce using rule 82 + 'false' reduce using rule 82 + 'hiding' reduce using rule 82 + 'if' reduce using rule 82 + 'let' reduce using rule 82 + 'nominal' reduce using rule 82 + 'phantom' reduce using rule 82 + 'of' reduce using rule 82 + 'representational'reduce using rule 82 + 'role' reduce using rule 82 + 'then' reduce using rule 82 + 'true' reduce using rule 82 + 'where' reduce using rule 82 + '(..)' reduce using rule 82 + LOWER reduce using rule 82 + QUAL_LOWER reduce using rule 82 + UPPER reduce using rule 82 + QUAL_UPPER reduce using rule 82 + SYMBOL reduce using rule 82 + QUAL_SYMBOL reduce using rule 82 + OPERATOR reduce using rule 82 + QUAL_OPERATOR reduce using rule 82 + LIT_HOLE reduce using rule 82 + LIT_CHAR reduce using rule 82 + LIT_STRING reduce using rule 82 + LIT_RAW_STRING reduce using rule 82 + LIT_INT reduce using rule 82 + LIT_NUMBER reduce using rule 82 + %eof reduce using rule 82 + + +State 253 + + label -> 'phantom' . (rule 84) + + error reduce using rule 84 + '(' reduce using rule 84 + ')' reduce using rule 84 + '{' reduce using rule 84 + '}' reduce using rule 84 + '[' reduce using rule 84 + ']' reduce using rule 84 + '\}' reduce using rule 84 + '\;' reduce using rule 84 + '<=' reduce using rule 84 + ':' reduce using rule 84 + '::' reduce using rule 84 + '=' reduce using rule 84 + '|' reduce using rule 84 + '`' reduce using rule 84 + '.' reduce using rule 84 + ',' reduce using rule 84 + '_' reduce using rule 84 + '\\' reduce using rule 84 + '-' reduce using rule 84 + '@' reduce using rule 84 + 'ado' reduce using rule 84 + 'as' reduce using rule 84 + 'case' reduce using rule 84 + 'do' reduce using rule 84 + 'else' reduce using rule 84 + 'false' reduce using rule 84 + 'hiding' reduce using rule 84 + 'if' reduce using rule 84 + 'let' reduce using rule 84 + 'nominal' reduce using rule 84 + 'phantom' reduce using rule 84 + 'of' reduce using rule 84 + 'representational'reduce using rule 84 + 'role' reduce using rule 84 + 'then' reduce using rule 84 + 'true' reduce using rule 84 + 'where' reduce using rule 84 + '(..)' reduce using rule 84 + LOWER reduce using rule 84 + QUAL_LOWER reduce using rule 84 + UPPER reduce using rule 84 + QUAL_UPPER reduce using rule 84 + SYMBOL reduce using rule 84 + QUAL_SYMBOL reduce using rule 84 + OPERATOR reduce using rule 84 + QUAL_OPERATOR reduce using rule 84 + LIT_HOLE reduce using rule 84 + LIT_CHAR reduce using rule 84 + LIT_STRING reduce using rule 84 + LIT_RAW_STRING reduce using rule 84 + LIT_INT reduce using rule 84 + LIT_NUMBER reduce using rule 84 + %eof reduce using rule 84 + + +State 254 + + label -> 'of' . (rule 83) + + error reduce using rule 83 + '(' reduce using rule 83 + ')' reduce using rule 83 + '{' reduce using rule 83 + '}' reduce using rule 83 + '[' reduce using rule 83 + ']' reduce using rule 83 + '\}' reduce using rule 83 + '\;' reduce using rule 83 + '<=' reduce using rule 83 + ':' reduce using rule 83 + '::' reduce using rule 83 + '=' reduce using rule 83 + '|' reduce using rule 83 + '`' reduce using rule 83 + '.' reduce using rule 83 + ',' reduce using rule 83 + '_' reduce using rule 83 + '\\' reduce using rule 83 + '-' reduce using rule 83 + '@' reduce using rule 83 + 'ado' reduce using rule 83 + 'as' reduce using rule 83 + 'case' reduce using rule 83 + 'do' reduce using rule 83 + 'else' reduce using rule 83 + 'false' reduce using rule 83 + 'hiding' reduce using rule 83 + 'if' reduce using rule 83 + 'let' reduce using rule 83 + 'nominal' reduce using rule 83 + 'phantom' reduce using rule 83 + 'of' reduce using rule 83 + 'representational'reduce using rule 83 + 'role' reduce using rule 83 + 'then' reduce using rule 83 + 'true' reduce using rule 83 + 'where' reduce using rule 83 + '(..)' reduce using rule 83 + LOWER reduce using rule 83 + QUAL_LOWER reduce using rule 83 + UPPER reduce using rule 83 + QUAL_UPPER reduce using rule 83 + SYMBOL reduce using rule 83 + QUAL_SYMBOL reduce using rule 83 + OPERATOR reduce using rule 83 + QUAL_OPERATOR reduce using rule 83 + LIT_HOLE reduce using rule 83 + LIT_CHAR reduce using rule 83 + LIT_STRING reduce using rule 83 + LIT_RAW_STRING reduce using rule 83 + LIT_INT reduce using rule 83 + LIT_NUMBER reduce using rule 83 + %eof reduce using rule 83 + + +State 255 + + label -> 'representational' . (rule 85) + + error reduce using rule 85 + '(' reduce using rule 85 + ')' reduce using rule 85 + '{' reduce using rule 85 + '}' reduce using rule 85 + '[' reduce using rule 85 + ']' reduce using rule 85 + '\}' reduce using rule 85 + '\;' reduce using rule 85 + '<=' reduce using rule 85 + ':' reduce using rule 85 + '::' reduce using rule 85 + '=' reduce using rule 85 + '|' reduce using rule 85 + '`' reduce using rule 85 + '.' reduce using rule 85 + ',' reduce using rule 85 + '_' reduce using rule 85 + '\\' reduce using rule 85 + '-' reduce using rule 85 + '@' reduce using rule 85 + 'ado' reduce using rule 85 + 'as' reduce using rule 85 + 'case' reduce using rule 85 + 'do' reduce using rule 85 + 'else' reduce using rule 85 + 'false' reduce using rule 85 + 'hiding' reduce using rule 85 + 'if' reduce using rule 85 + 'let' reduce using rule 85 + 'nominal' reduce using rule 85 + 'phantom' reduce using rule 85 + 'of' reduce using rule 85 + 'representational'reduce using rule 85 + 'role' reduce using rule 85 + 'then' reduce using rule 85 + 'true' reduce using rule 85 + 'where' reduce using rule 85 + '(..)' reduce using rule 85 + LOWER reduce using rule 85 + QUAL_LOWER reduce using rule 85 + UPPER reduce using rule 85 + QUAL_UPPER reduce using rule 85 + SYMBOL reduce using rule 85 + QUAL_SYMBOL reduce using rule 85 + OPERATOR reduce using rule 85 + QUAL_OPERATOR reduce using rule 85 + LIT_HOLE reduce using rule 85 + LIT_CHAR reduce using rule 85 + LIT_STRING reduce using rule 85 + LIT_RAW_STRING reduce using rule 85 + LIT_INT reduce using rule 85 + LIT_NUMBER reduce using rule 85 + %eof reduce using rule 85 + + +State 256 + + label -> 'role' . (rule 86) + + error reduce using rule 86 + '(' reduce using rule 86 + ')' reduce using rule 86 + '{' reduce using rule 86 + '}' reduce using rule 86 + '[' reduce using rule 86 + ']' reduce using rule 86 + '\}' reduce using rule 86 + '\;' reduce using rule 86 + '<=' reduce using rule 86 + ':' reduce using rule 86 + '::' reduce using rule 86 + '=' reduce using rule 86 + '|' reduce using rule 86 + '`' reduce using rule 86 + '.' reduce using rule 86 + ',' reduce using rule 86 + '_' reduce using rule 86 + '\\' reduce using rule 86 + '-' reduce using rule 86 + '@' reduce using rule 86 + 'ado' reduce using rule 86 + 'as' reduce using rule 86 + 'case' reduce using rule 86 + 'do' reduce using rule 86 + 'else' reduce using rule 86 + 'false' reduce using rule 86 + 'hiding' reduce using rule 86 + 'if' reduce using rule 86 + 'let' reduce using rule 86 + 'nominal' reduce using rule 86 + 'phantom' reduce using rule 86 + 'of' reduce using rule 86 + 'representational'reduce using rule 86 + 'role' reduce using rule 86 + 'then' reduce using rule 86 + 'true' reduce using rule 86 + 'where' reduce using rule 86 + '(..)' reduce using rule 86 + LOWER reduce using rule 86 + QUAL_LOWER reduce using rule 86 + UPPER reduce using rule 86 + QUAL_UPPER reduce using rule 86 + SYMBOL reduce using rule 86 + QUAL_SYMBOL reduce using rule 86 + OPERATOR reduce using rule 86 + QUAL_OPERATOR reduce using rule 86 + LIT_HOLE reduce using rule 86 + LIT_CHAR reduce using rule 86 + LIT_STRING reduce using rule 86 + LIT_RAW_STRING reduce using rule 86 + LIT_INT reduce using rule 86 + LIT_NUMBER reduce using rule 86 + %eof reduce using rule 86 + + +State 257 + + label -> 'then' . (rule 87) + + error reduce using rule 87 + '(' reduce using rule 87 + ')' reduce using rule 87 + '{' reduce using rule 87 + '}' reduce using rule 87 + '[' reduce using rule 87 + ']' reduce using rule 87 + '\}' reduce using rule 87 + '\;' reduce using rule 87 + '<=' reduce using rule 87 + ':' reduce using rule 87 + '::' reduce using rule 87 + '=' reduce using rule 87 + '|' reduce using rule 87 + '`' reduce using rule 87 + '.' reduce using rule 87 + ',' reduce using rule 87 + '_' reduce using rule 87 + '\\' reduce using rule 87 + '-' reduce using rule 87 + '@' reduce using rule 87 + 'ado' reduce using rule 87 + 'as' reduce using rule 87 + 'case' reduce using rule 87 + 'do' reduce using rule 87 + 'else' reduce using rule 87 + 'false' reduce using rule 87 + 'hiding' reduce using rule 87 + 'if' reduce using rule 87 + 'let' reduce using rule 87 + 'nominal' reduce using rule 87 + 'phantom' reduce using rule 87 + 'of' reduce using rule 87 + 'representational'reduce using rule 87 + 'role' reduce using rule 87 + 'then' reduce using rule 87 + 'true' reduce using rule 87 + 'where' reduce using rule 87 + '(..)' reduce using rule 87 + LOWER reduce using rule 87 + QUAL_LOWER reduce using rule 87 + UPPER reduce using rule 87 + QUAL_UPPER reduce using rule 87 + SYMBOL reduce using rule 87 + QUAL_SYMBOL reduce using rule 87 + OPERATOR reduce using rule 87 + QUAL_OPERATOR reduce using rule 87 + LIT_HOLE reduce using rule 87 + LIT_CHAR reduce using rule 87 + LIT_STRING reduce using rule 87 + LIT_RAW_STRING reduce using rule 87 + LIT_INT reduce using rule 87 + LIT_NUMBER reduce using rule 87 + %eof reduce using rule 87 + + +State 258 + + label -> 'true' . (rule 88) + + error reduce using rule 88 + '(' reduce using rule 88 + ')' reduce using rule 88 + '{' reduce using rule 88 + '}' reduce using rule 88 + '[' reduce using rule 88 + ']' reduce using rule 88 + '\}' reduce using rule 88 + '\;' reduce using rule 88 + '<=' reduce using rule 88 + ':' reduce using rule 88 + '::' reduce using rule 88 + '=' reduce using rule 88 + '|' reduce using rule 88 + '`' reduce using rule 88 + '.' reduce using rule 88 + ',' reduce using rule 88 + '_' reduce using rule 88 + '\\' reduce using rule 88 + '-' reduce using rule 88 + '@' reduce using rule 88 + 'ado' reduce using rule 88 + 'as' reduce using rule 88 + 'case' reduce using rule 88 + 'do' reduce using rule 88 + 'else' reduce using rule 88 + 'false' reduce using rule 88 + 'hiding' reduce using rule 88 + 'if' reduce using rule 88 + 'let' reduce using rule 88 + 'nominal' reduce using rule 88 + 'phantom' reduce using rule 88 + 'of' reduce using rule 88 + 'representational'reduce using rule 88 + 'role' reduce using rule 88 + 'then' reduce using rule 88 + 'true' reduce using rule 88 + 'where' reduce using rule 88 + '(..)' reduce using rule 88 + LOWER reduce using rule 88 + QUAL_LOWER reduce using rule 88 + UPPER reduce using rule 88 + QUAL_UPPER reduce using rule 88 + SYMBOL reduce using rule 88 + QUAL_SYMBOL reduce using rule 88 + OPERATOR reduce using rule 88 + QUAL_OPERATOR reduce using rule 88 + LIT_HOLE reduce using rule 88 + LIT_CHAR reduce using rule 88 + LIT_STRING reduce using rule 88 + LIT_RAW_STRING reduce using rule 88 + LIT_INT reduce using rule 88 + LIT_NUMBER reduce using rule 88 + %eof reduce using rule 88 + + +State 259 + + label -> 'type' . (rule 89) + + error reduce using rule 89 + '(' reduce using rule 89 + ')' reduce using rule 89 + '{' reduce using rule 89 + '}' reduce using rule 89 + '[' reduce using rule 89 + ']' reduce using rule 89 + '\}' reduce using rule 89 + '\;' reduce using rule 89 + '<=' reduce using rule 89 + ':' reduce using rule 89 + '::' reduce using rule 89 + '=' reduce using rule 89 + '|' reduce using rule 89 + '`' reduce using rule 89 + '.' reduce using rule 89 + ',' reduce using rule 89 + '_' reduce using rule 89 + '\\' reduce using rule 89 + '-' reduce using rule 89 + '@' reduce using rule 89 + 'ado' reduce using rule 89 + 'as' reduce using rule 89 + 'case' reduce using rule 89 + 'do' reduce using rule 89 + 'else' reduce using rule 89 + 'false' reduce using rule 89 + 'hiding' reduce using rule 89 + 'if' reduce using rule 89 + 'let' reduce using rule 89 + 'nominal' reduce using rule 89 + 'phantom' reduce using rule 89 + 'of' reduce using rule 89 + 'representational'reduce using rule 89 + 'role' reduce using rule 89 + 'then' reduce using rule 89 + 'true' reduce using rule 89 + 'where' reduce using rule 89 + '(..)' reduce using rule 89 + LOWER reduce using rule 89 + QUAL_LOWER reduce using rule 89 + UPPER reduce using rule 89 + QUAL_UPPER reduce using rule 89 + SYMBOL reduce using rule 89 + QUAL_SYMBOL reduce using rule 89 + OPERATOR reduce using rule 89 + QUAL_OPERATOR reduce using rule 89 + LIT_HOLE reduce using rule 89 + LIT_CHAR reduce using rule 89 + LIT_STRING reduce using rule 89 + LIT_RAW_STRING reduce using rule 89 + LIT_INT reduce using rule 89 + LIT_NUMBER reduce using rule 89 + %eof reduce using rule 89 + + +State 260 + + label -> 'where' . (rule 90) + + error reduce using rule 90 + '(' reduce using rule 90 + ')' reduce using rule 90 + '{' reduce using rule 90 + '}' reduce using rule 90 + '[' reduce using rule 90 + ']' reduce using rule 90 + '\}' reduce using rule 90 + '\;' reduce using rule 90 + '<=' reduce using rule 90 + ':' reduce using rule 90 + '::' reduce using rule 90 + '=' reduce using rule 90 + '|' reduce using rule 90 + '`' reduce using rule 90 + '.' reduce using rule 90 + ',' reduce using rule 90 + '_' reduce using rule 90 + '\\' reduce using rule 90 + '-' reduce using rule 90 + '@' reduce using rule 90 + 'ado' reduce using rule 90 + 'as' reduce using rule 90 + 'case' reduce using rule 90 + 'do' reduce using rule 90 + 'else' reduce using rule 90 + 'false' reduce using rule 90 + 'hiding' reduce using rule 90 + 'if' reduce using rule 90 + 'let' reduce using rule 90 + 'nominal' reduce using rule 90 + 'phantom' reduce using rule 90 + 'of' reduce using rule 90 + 'representational'reduce using rule 90 + 'role' reduce using rule 90 + 'then' reduce using rule 90 + 'true' reduce using rule 90 + 'where' reduce using rule 90 + '(..)' reduce using rule 90 + LOWER reduce using rule 90 + QUAL_LOWER reduce using rule 90 + UPPER reduce using rule 90 + QUAL_UPPER reduce using rule 90 + SYMBOL reduce using rule 90 + QUAL_SYMBOL reduce using rule 90 + OPERATOR reduce using rule 90 + QUAL_OPERATOR reduce using rule 90 + LIT_HOLE reduce using rule 90 + LIT_CHAR reduce using rule 90 + LIT_STRING reduce using rule 90 + LIT_RAW_STRING reduce using rule 90 + LIT_INT reduce using rule 90 + LIT_NUMBER reduce using rule 90 + %eof reduce using rule 90 + + +State 261 + + label -> LOWER . (rule 57) + + error reduce using rule 57 + '(' reduce using rule 57 + ')' reduce using rule 57 + '{' reduce using rule 57 + '}' reduce using rule 57 + '[' reduce using rule 57 + ']' reduce using rule 57 + '\}' reduce using rule 57 + '\;' reduce using rule 57 + '<=' reduce using rule 57 + ':' reduce using rule 57 + '::' reduce using rule 57 + '=' reduce using rule 57 + '|' reduce using rule 57 + '`' reduce using rule 57 + '.' reduce using rule 57 + ',' reduce using rule 57 + '_' reduce using rule 57 + '\\' reduce using rule 57 + '-' reduce using rule 57 + '@' reduce using rule 57 + 'ado' reduce using rule 57 + 'as' reduce using rule 57 + 'case' reduce using rule 57 + 'do' reduce using rule 57 + 'else' reduce using rule 57 + 'false' reduce using rule 57 + 'hiding' reduce using rule 57 + 'if' reduce using rule 57 + 'let' reduce using rule 57 + 'nominal' reduce using rule 57 + 'phantom' reduce using rule 57 + 'of' reduce using rule 57 + 'representational'reduce using rule 57 + 'role' reduce using rule 57 + 'then' reduce using rule 57 + 'true' reduce using rule 57 + 'where' reduce using rule 57 + '(..)' reduce using rule 57 + LOWER reduce using rule 57 + QUAL_LOWER reduce using rule 57 + UPPER reduce using rule 57 + QUAL_UPPER reduce using rule 57 + SYMBOL reduce using rule 57 + QUAL_SYMBOL reduce using rule 57 + OPERATOR reduce using rule 57 + QUAL_OPERATOR reduce using rule 57 + LIT_HOLE reduce using rule 57 + LIT_CHAR reduce using rule 57 + LIT_STRING reduce using rule 57 + LIT_RAW_STRING reduce using rule 57 + LIT_INT reduce using rule 57 + LIT_NUMBER reduce using rule 57 + %eof reduce using rule 57 + + +State 262 + + label -> LIT_STRING . (rule 58) + + error reduce using rule 58 + '(' reduce using rule 58 + ')' reduce using rule 58 + '{' reduce using rule 58 + '}' reduce using rule 58 + '[' reduce using rule 58 + ']' reduce using rule 58 + '\}' reduce using rule 58 + '\;' reduce using rule 58 + '<=' reduce using rule 58 + ':' reduce using rule 58 + '::' reduce using rule 58 + '=' reduce using rule 58 + '|' reduce using rule 58 + '`' reduce using rule 58 + '.' reduce using rule 58 + ',' reduce using rule 58 + '_' reduce using rule 58 + '\\' reduce using rule 58 + '-' reduce using rule 58 + '@' reduce using rule 58 + 'ado' reduce using rule 58 + 'as' reduce using rule 58 + 'case' reduce using rule 58 + 'do' reduce using rule 58 + 'else' reduce using rule 58 + 'false' reduce using rule 58 + 'hiding' reduce using rule 58 + 'if' reduce using rule 58 + 'let' reduce using rule 58 + 'nominal' reduce using rule 58 + 'phantom' reduce using rule 58 + 'of' reduce using rule 58 + 'representational'reduce using rule 58 + 'role' reduce using rule 58 + 'then' reduce using rule 58 + 'true' reduce using rule 58 + 'where' reduce using rule 58 + '(..)' reduce using rule 58 + LOWER reduce using rule 58 + QUAL_LOWER reduce using rule 58 + UPPER reduce using rule 58 + QUAL_UPPER reduce using rule 58 + SYMBOL reduce using rule 58 + QUAL_SYMBOL reduce using rule 58 + OPERATOR reduce using rule 58 + QUAL_OPERATOR reduce using rule 58 + LIT_HOLE reduce using rule 58 + LIT_CHAR reduce using rule 58 + LIT_STRING reduce using rule 58 + LIT_RAW_STRING reduce using rule 58 + LIT_INT reduce using rule 58 + LIT_NUMBER reduce using rule 58 + %eof reduce using rule 58 + + +State 263 + + label -> LIT_RAW_STRING . (rule 59) + + error reduce using rule 59 + '(' reduce using rule 59 + ')' reduce using rule 59 + '{' reduce using rule 59 + '}' reduce using rule 59 + '[' reduce using rule 59 + ']' reduce using rule 59 + '\}' reduce using rule 59 + '\;' reduce using rule 59 + '<=' reduce using rule 59 + ':' reduce using rule 59 + '::' reduce using rule 59 + '=' reduce using rule 59 + '|' reduce using rule 59 + '`' reduce using rule 59 + '.' reduce using rule 59 + ',' reduce using rule 59 + '_' reduce using rule 59 + '\\' reduce using rule 59 + '-' reduce using rule 59 + '@' reduce using rule 59 + 'ado' reduce using rule 59 + 'as' reduce using rule 59 + 'case' reduce using rule 59 + 'do' reduce using rule 59 + 'else' reduce using rule 59 + 'false' reduce using rule 59 + 'hiding' reduce using rule 59 + 'if' reduce using rule 59 + 'let' reduce using rule 59 + 'nominal' reduce using rule 59 + 'phantom' reduce using rule 59 + 'of' reduce using rule 59 + 'representational'reduce using rule 59 + 'role' reduce using rule 59 + 'then' reduce using rule 59 + 'true' reduce using rule 59 + 'where' reduce using rule 59 + '(..)' reduce using rule 59 + LOWER reduce using rule 59 + QUAL_LOWER reduce using rule 59 + UPPER reduce using rule 59 + QUAL_UPPER reduce using rule 59 + SYMBOL reduce using rule 59 + QUAL_SYMBOL reduce using rule 59 + OPERATOR reduce using rule 59 + QUAL_OPERATOR reduce using rule 59 + LIT_HOLE reduce using rule 59 + LIT_CHAR reduce using rule 59 + LIT_STRING reduce using rule 59 + LIT_RAW_STRING reduce using rule 59 + LIT_INT reduce using rule 59 + LIT_NUMBER reduce using rule 59 + %eof reduce using rule 59 + + +State 264 + + typeAtom -> qualProperName . (rule 115) + typeKindedAtom -> qualProperName . (rule 126) + + '(' reduce using rule 115 + ')' reduce using rule 115 + '{' reduce using rule 115 + '->' reduce using rule 115 + '<=' reduce using rule 115 + '=>' reduce using rule 115 + ':' reduce using rule 115 + '::' reduce using rule 126 + '_' reduce using rule 115 + '-' reduce using rule 115 + 'as' reduce using rule 115 + 'hiding' reduce using rule 115 + 'nominal' reduce using rule 115 + 'phantom' reduce using rule 115 + 'representational'reduce using rule 115 + 'role' reduce using rule 115 + '(->)' reduce using rule 115 + '(..)' reduce using rule 115 + LOWER reduce using rule 115 + UPPER reduce using rule 115 + QUAL_UPPER reduce using rule 115 + SYMBOL reduce using rule 115 + QUAL_SYMBOL reduce using rule 115 + OPERATOR reduce using rule 115 + QUAL_OPERATOR reduce using rule 115 + LIT_HOLE reduce using rule 115 + LIT_STRING reduce using rule 115 + LIT_RAW_STRING reduce using rule 115 + LIT_INT reduce using rule 115 + + +State 265 + + typeAtom -> qualSymbol . (rule 116) + typeKindedAtom -> qualSymbol . (rule 127) + + '(' reduce using rule 116 + ')' reduce using rule 116 + '{' reduce using rule 116 + '->' reduce using rule 116 + '<=' reduce using rule 116 + '=>' reduce using rule 116 + ':' reduce using rule 116 + '::' reduce using rule 127 + '_' reduce using rule 116 + '-' reduce using rule 116 + 'as' reduce using rule 116 + 'hiding' reduce using rule 116 + 'nominal' reduce using rule 116 + 'phantom' reduce using rule 116 + 'representational'reduce using rule 116 + 'role' reduce using rule 116 + '(->)' reduce using rule 116 + '(..)' reduce using rule 116 + LOWER reduce using rule 116 + UPPER reduce using rule 116 + QUAL_UPPER reduce using rule 116 + SYMBOL reduce using rule 116 + QUAL_SYMBOL reduce using rule 116 + OPERATOR reduce using rule 116 + QUAL_OPERATOR reduce using rule 116 + LIT_HOLE reduce using rule 116 + LIT_STRING reduce using rule 116 + LIT_RAW_STRING reduce using rule 116 + LIT_INT reduce using rule 116 + + +State 266 + + typeAtom -> hole . (rule 119) + typeKindedAtom -> hole . (rule 129) + + '(' reduce using rule 119 + ')' reduce using rule 119 + '{' reduce using rule 119 + '->' reduce using rule 119 + '<=' reduce using rule 119 + '=>' reduce using rule 119 + ':' reduce using rule 119 + '::' reduce using rule 129 + '_' reduce using rule 119 + '-' reduce using rule 119 + 'as' reduce using rule 119 + 'hiding' reduce using rule 119 + 'nominal' reduce using rule 119 + 'phantom' reduce using rule 119 + 'representational'reduce using rule 119 + 'role' reduce using rule 119 + '(->)' reduce using rule 119 + '(..)' reduce using rule 119 + LOWER reduce using rule 119 + UPPER reduce using rule 119 + QUAL_UPPER reduce using rule 119 + SYMBOL reduce using rule 119 + QUAL_SYMBOL reduce using rule 119 + OPERATOR reduce using rule 119 + QUAL_OPERATOR reduce using rule 119 + LIT_HOLE reduce using rule 119 + LIT_STRING reduce using rule 119 + LIT_RAW_STRING reduce using rule 119 + LIT_INT reduce using rule 119 + + +State 267 + + typeAtom -> int . (rule 118) + typeKindedAtom -> int . (rule 128) + + '(' reduce using rule 118 + ')' reduce using rule 118 + '{' reduce using rule 118 + '->' reduce using rule 118 + '<=' reduce using rule 118 + '=>' reduce using rule 118 + ':' reduce using rule 118 + '::' reduce using rule 128 + '_' reduce using rule 118 + '-' reduce using rule 118 + 'as' reduce using rule 118 + 'hiding' reduce using rule 118 + 'nominal' reduce using rule 118 + 'phantom' reduce using rule 118 + 'representational'reduce using rule 118 + 'role' reduce using rule 118 + '(->)' reduce using rule 118 + '(..)' reduce using rule 118 + LOWER reduce using rule 118 + UPPER reduce using rule 118 + QUAL_UPPER reduce using rule 118 + SYMBOL reduce using rule 118 + QUAL_SYMBOL reduce using rule 118 + OPERATOR reduce using rule 118 + QUAL_OPERATOR reduce using rule 118 + LIT_HOLE reduce using rule 118 + LIT_STRING reduce using rule 118 + LIT_RAW_STRING reduce using rule 118 + LIT_INT reduce using rule 118 + + +State 268 + + typeAtom -> '(' type1 . ')' (rule 123) + + ')' shift, and enter state 421 + + +State 269 + + typeAtom -> '(' typeKindedAtom . '::' type ')' (rule 124) + + '::' shift, and enter state 420 + + +State 270 + + typeAtom -> '(' row . ')' (rule 122) + + ')' shift, and enter state 419 + + +State 271 + + typeAtom -> '(' . row ')' (rule 122) + typeAtom -> '(' . type1 ')' (rule 123) + typeAtom -> '(' . typeKindedAtom '::' type ')' (rule 124) + typeKindedAtom -> '(' . row ')' (rule 131) + typeKindedAtom -> '(' . type1 ')' (rule 132) + typeKindedAtom -> '(' . typeKindedAtom '::' type ')' (rule 133) + + '(' shift, and enter state 271 + ')' reduce using rule 134 + '{' shift, and enter state 272 + '|' shift, and enter state 229 + '_' shift, and enter state 273 + '-' shift, and enter state 151 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 274 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 275 + 'forallu' shift, and enter state 153 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 276 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 277 + 'phantom' shift, and enter state 278 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 279 + 'role' shift, and enter state 280 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 281 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 282 + LIT_RAW_STRING shift, and enter state 283 + LIT_INT shift, and enter state 155 + + qualProperName goto state 264 + ident goto state 134 + qualSymbol goto state 265 + label goto state 224 + hole goto state 266 + string goto state 137 + int goto state 267 + type1 goto state 416 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + typeKindedAtom goto state 417 + row goto state 418 + rowLabel goto state 226 + forall goto state 146 + sep__rowLabel__','__goto state 227 + sep1__rowLabel__','__goto state 228 + +State 272 + + typeAtom -> '{' . row '}' (rule 121) + typeKindedAtom -> '{' . row '}' (rule 130) + + '}' reduce using rule 134 + '|' shift, and enter state 229 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 224 + row goto state 415 + rowLabel goto state 226 + sep__rowLabel__','__goto state 227 + sep1__rowLabel__','__goto state 228 + +State 273 + + typeAtom -> '_' . (rule 113) + typeKindedAtom -> '_' . (rule 125) + + '(' reduce using rule 113 + ')' reduce using rule 113 + '{' reduce using rule 113 + '->' reduce using rule 113 + '<=' reduce using rule 113 + '=>' reduce using rule 113 + ':' reduce using rule 113 + '::' reduce using rule 125 + '_' reduce using rule 113 + '-' reduce using rule 113 + 'as' reduce using rule 113 + 'hiding' reduce using rule 113 + 'nominal' reduce using rule 113 + 'phantom' reduce using rule 113 + 'representational'reduce using rule 113 + 'role' reduce using rule 113 + '(->)' reduce using rule 113 + '(..)' reduce using rule 113 + LOWER reduce using rule 113 + UPPER reduce using rule 113 + QUAL_UPPER reduce using rule 113 + SYMBOL reduce using rule 113 + QUAL_SYMBOL reduce using rule 113 + OPERATOR reduce using rule 113 + QUAL_OPERATOR reduce using rule 113 + LIT_HOLE reduce using rule 113 + LIT_STRING reduce using rule 113 + LIT_RAW_STRING reduce using rule 113 + LIT_INT reduce using rule 113 + + +State 274 + + ident -> 'as' . (rule 37) + label -> 'as' . (rule 61) + + '(' reduce using rule 37 + ')' reduce using rule 37 + '{' reduce using rule 37 + '->' reduce using rule 37 + '<=' reduce using rule 37 + '=>' reduce using rule 37 + ':' reduce using rule 37 + '::' reduce using rule 61 + '_' reduce using rule 37 + '-' reduce using rule 37 + 'as' reduce using rule 37 + 'hiding' reduce using rule 37 + 'nominal' reduce using rule 37 + 'phantom' reduce using rule 37 + 'representational'reduce using rule 37 + 'role' reduce using rule 37 + '(->)' reduce using rule 37 + '(..)' reduce using rule 37 + LOWER reduce using rule 37 + UPPER reduce using rule 37 + QUAL_UPPER reduce using rule 37 + SYMBOL reduce using rule 37 + QUAL_SYMBOL reduce using rule 37 + OPERATOR reduce using rule 37 + QUAL_OPERATOR reduce using rule 37 + LIT_HOLE reduce using rule 37 + LIT_STRING reduce using rule 37 + LIT_RAW_STRING reduce using rule 37 + LIT_INT reduce using rule 37 + + +State 275 + + label -> 'forall' . (rule 69) + forall -> 'forall' . (rule 145) + + '(' reduce using rule 145 + '::' reduce using rule 69 + '@' reduce using rule 145 + 'as' reduce using rule 145 + 'hiding' reduce using rule 145 + 'nominal' reduce using rule 145 + 'phantom' reduce using rule 145 + 'representational'reduce using rule 145 + 'role' reduce using rule 145 + LOWER reduce using rule 145 + + +State 276 + + ident -> 'hiding' . (rule 38) + label -> 'hiding' . (rule 71) + + '(' reduce using rule 38 + ')' reduce using rule 38 + '{' reduce using rule 38 + '->' reduce using rule 38 + '<=' reduce using rule 38 + '=>' reduce using rule 38 + ':' reduce using rule 38 + '::' reduce using rule 71 + '_' reduce using rule 38 + '-' reduce using rule 38 + 'as' reduce using rule 38 + 'hiding' reduce using rule 38 + 'nominal' reduce using rule 38 + 'phantom' reduce using rule 38 + 'representational'reduce using rule 38 + 'role' reduce using rule 38 + '(->)' reduce using rule 38 + '(..)' reduce using rule 38 + LOWER reduce using rule 38 + UPPER reduce using rule 38 + QUAL_UPPER reduce using rule 38 + SYMBOL reduce using rule 38 + QUAL_SYMBOL reduce using rule 38 + OPERATOR reduce using rule 38 + QUAL_OPERATOR reduce using rule 38 + LIT_HOLE reduce using rule 38 + LIT_STRING reduce using rule 38 + LIT_RAW_STRING reduce using rule 38 + LIT_INT reduce using rule 38 + + +State 277 + + ident -> 'nominal' . (rule 40) + label -> 'nominal' . (rule 82) + + '(' reduce using rule 40 + ')' reduce using rule 40 + '{' reduce using rule 40 + '->' reduce using rule 40 + '<=' reduce using rule 40 + '=>' reduce using rule 40 + ':' reduce using rule 40 + '::' reduce using rule 82 + '_' reduce using rule 40 + '-' reduce using rule 40 + 'as' reduce using rule 40 + 'hiding' reduce using rule 40 + 'nominal' reduce using rule 40 + 'phantom' reduce using rule 40 + 'representational'reduce using rule 40 + 'role' reduce using rule 40 + '(->)' reduce using rule 40 + '(..)' reduce using rule 40 + LOWER reduce using rule 40 + UPPER reduce using rule 40 + QUAL_UPPER reduce using rule 40 + SYMBOL reduce using rule 40 + QUAL_SYMBOL reduce using rule 40 + OPERATOR reduce using rule 40 + QUAL_OPERATOR reduce using rule 40 + LIT_HOLE reduce using rule 40 + LIT_STRING reduce using rule 40 + LIT_RAW_STRING reduce using rule 40 + LIT_INT reduce using rule 40 + + +State 278 + + ident -> 'phantom' . (rule 42) + label -> 'phantom' . (rule 84) + + '(' reduce using rule 42 + ')' reduce using rule 42 + '{' reduce using rule 42 + '->' reduce using rule 42 + '<=' reduce using rule 42 + '=>' reduce using rule 42 + ':' reduce using rule 42 + '::' reduce using rule 84 + '_' reduce using rule 42 + '-' reduce using rule 42 + 'as' reduce using rule 42 + 'hiding' reduce using rule 42 + 'nominal' reduce using rule 42 + 'phantom' reduce using rule 42 + 'representational'reduce using rule 42 + 'role' reduce using rule 42 + '(->)' reduce using rule 42 + '(..)' reduce using rule 42 + LOWER reduce using rule 42 + UPPER reduce using rule 42 + QUAL_UPPER reduce using rule 42 + SYMBOL reduce using rule 42 + QUAL_SYMBOL reduce using rule 42 + OPERATOR reduce using rule 42 + QUAL_OPERATOR reduce using rule 42 + LIT_HOLE reduce using rule 42 + LIT_STRING reduce using rule 42 + LIT_RAW_STRING reduce using rule 42 + LIT_INT reduce using rule 42 + + +State 279 + + ident -> 'representational' . (rule 41) + label -> 'representational' . (rule 85) + + '(' reduce using rule 41 + ')' reduce using rule 41 + '{' reduce using rule 41 + '->' reduce using rule 41 + '<=' reduce using rule 41 + '=>' reduce using rule 41 + ':' reduce using rule 41 + '::' reduce using rule 85 + '_' reduce using rule 41 + '-' reduce using rule 41 + 'as' reduce using rule 41 + 'hiding' reduce using rule 41 + 'nominal' reduce using rule 41 + 'phantom' reduce using rule 41 + 'representational'reduce using rule 41 + 'role' reduce using rule 41 + '(->)' reduce using rule 41 + '(..)' reduce using rule 41 + LOWER reduce using rule 41 + UPPER reduce using rule 41 + QUAL_UPPER reduce using rule 41 + SYMBOL reduce using rule 41 + QUAL_SYMBOL reduce using rule 41 + OPERATOR reduce using rule 41 + QUAL_OPERATOR reduce using rule 41 + LIT_HOLE reduce using rule 41 + LIT_STRING reduce using rule 41 + LIT_RAW_STRING reduce using rule 41 + LIT_INT reduce using rule 41 + + +State 280 + + ident -> 'role' . (rule 39) + label -> 'role' . (rule 86) + + '(' reduce using rule 39 + ')' reduce using rule 39 + '{' reduce using rule 39 + '->' reduce using rule 39 + '<=' reduce using rule 39 + '=>' reduce using rule 39 + ':' reduce using rule 39 + '::' reduce using rule 86 + '_' reduce using rule 39 + '-' reduce using rule 39 + 'as' reduce using rule 39 + 'hiding' reduce using rule 39 + 'nominal' reduce using rule 39 + 'phantom' reduce using rule 39 + 'representational'reduce using rule 39 + 'role' reduce using rule 39 + '(->)' reduce using rule 39 + '(..)' reduce using rule 39 + LOWER reduce using rule 39 + UPPER reduce using rule 39 + QUAL_UPPER reduce using rule 39 + SYMBOL reduce using rule 39 + QUAL_SYMBOL reduce using rule 39 + OPERATOR reduce using rule 39 + QUAL_OPERATOR reduce using rule 39 + LIT_HOLE reduce using rule 39 + LIT_STRING reduce using rule 39 + LIT_RAW_STRING reduce using rule 39 + LIT_INT reduce using rule 39 + + +State 281 + + ident -> LOWER . (rule 36) + label -> LOWER . (rule 57) + + '(' reduce using rule 36 + ')' reduce using rule 36 + '{' reduce using rule 36 + '->' reduce using rule 36 + '<=' reduce using rule 36 + '=>' reduce using rule 36 + ':' reduce using rule 36 + '::' reduce using rule 57 + '_' reduce using rule 36 + '-' reduce using rule 36 + 'as' reduce using rule 36 + 'hiding' reduce using rule 36 + 'nominal' reduce using rule 36 + 'phantom' reduce using rule 36 + 'representational'reduce using rule 36 + 'role' reduce using rule 36 + '(->)' reduce using rule 36 + '(..)' reduce using rule 36 + LOWER reduce using rule 36 + UPPER reduce using rule 36 + QUAL_UPPER reduce using rule 36 + SYMBOL reduce using rule 36 + QUAL_SYMBOL reduce using rule 36 + OPERATOR reduce using rule 36 + QUAL_OPERATOR reduce using rule 36 + LIT_HOLE reduce using rule 36 + LIT_STRING reduce using rule 36 + LIT_RAW_STRING reduce using rule 36 + LIT_INT reduce using rule 36 + + +State 282 + + label -> LIT_STRING . (rule 58) + string -> LIT_STRING . (rule 92) + + '(' reduce using rule 92 + ')' reduce using rule 92 + '{' reduce using rule 92 + '->' reduce using rule 92 + '<=' reduce using rule 92 + '=>' reduce using rule 92 + ':' reduce using rule 92 + '::' reduce using rule 58 + '_' reduce using rule 92 + '-' reduce using rule 92 + 'as' reduce using rule 92 + 'hiding' reduce using rule 92 + 'nominal' reduce using rule 92 + 'phantom' reduce using rule 92 + 'representational'reduce using rule 92 + 'role' reduce using rule 92 + '(->)' reduce using rule 92 + '(..)' reduce using rule 92 + LOWER reduce using rule 92 + UPPER reduce using rule 92 + QUAL_UPPER reduce using rule 92 + SYMBOL reduce using rule 92 + QUAL_SYMBOL reduce using rule 92 + OPERATOR reduce using rule 92 + QUAL_OPERATOR reduce using rule 92 + LIT_HOLE reduce using rule 92 + LIT_STRING reduce using rule 92 + LIT_RAW_STRING reduce using rule 92 + LIT_INT reduce using rule 92 + + +State 283 + + label -> LIT_RAW_STRING . (rule 59) + string -> LIT_RAW_STRING . (rule 93) + + '(' reduce using rule 93 + ')' reduce using rule 93 + '{' reduce using rule 93 + '->' reduce using rule 93 + '<=' reduce using rule 93 + '=>' reduce using rule 93 + ':' reduce using rule 93 + '::' reduce using rule 59 + '_' reduce using rule 93 + '-' reduce using rule 93 + 'as' reduce using rule 93 + 'hiding' reduce using rule 93 + 'nominal' reduce using rule 93 + 'phantom' reduce using rule 93 + 'representational'reduce using rule 93 + 'role' reduce using rule 93 + '(->)' reduce using rule 93 + '(..)' reduce using rule 93 + LOWER reduce using rule 93 + UPPER reduce using rule 93 + QUAL_UPPER reduce using rule 93 + SYMBOL reduce using rule 93 + QUAL_SYMBOL reduce using rule 93 + OPERATOR reduce using rule 93 + QUAL_OPERATOR reduce using rule 93 + LIT_HOLE reduce using rule 93 + LIT_STRING reduce using rule 93 + LIT_RAW_STRING reduce using rule 93 + LIT_INT reduce using rule 93 + + +State 284 + + typeVarBinding -> ident . (rule 139) + + error reduce using rule 139 + '(' reduce using rule 139 + '|' reduce using rule 139 + '.' reduce using rule 139 + '@' reduce using rule 139 + 'as' reduce using rule 139 + 'hiding' reduce using rule 139 + 'nominal' reduce using rule 139 + 'phantom' reduce using rule 139 + 'representational'reduce using rule 139 + 'role' reduce using rule 139 + LOWER reduce using rule 139 + + +State 285 + + many1__typeVarBinding__ -> typeVarBinding . (rule 386) + + error reduce using rule 386 + '(' reduce using rule 386 + '|' reduce using rule 386 + '.' reduce using rule 386 + '@' reduce using rule 386 + 'as' reduce using rule 386 + 'hiding' reduce using rule 386 + 'nominal' reduce using rule 386 + 'phantom' reduce using rule 386 + 'representational'reduce using rule 386 + 'role' reduce using rule 386 + LOWER reduce using rule 386 + + +State 286 + + type1 -> forall many__typeVarBinding__ . '.' type1 (rule 103) + + '.' shift, and enter state 414 + + +State 287 + + many__typeVarBinding__ -> many1__typeVarBinding__ . (rule 347) + many1__typeVarBinding__ -> many1__typeVarBinding__ . typeVarBinding (rule 387) + + error reduce using rule 347 + '(' shift, and enter state 288 + '|' reduce using rule 347 + '.' reduce using rule 347 + '@' shift, and enter state 289 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 284 + typeVarBinding goto state 413 + +State 288 + + typeVarBinding -> '(' . ident '::' type ')' (rule 141) + typeVarBinding -> '(' . '@' ident '::' type ')' (rule 142) + + '@' shift, and enter state 412 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 411 + +State 289 + + typeVarBinding -> '@' . ident (rule 140) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 410 + +State 290 + + type5 -> type5 typeAtom . (rule 112) + + error reduce using rule 112 + '(' reduce using rule 112 + ')' reduce using rule 112 + '{' reduce using rule 112 + '}' reduce using rule 112 + '[' reduce using rule 112 + ']' reduce using rule 112 + '\}' reduce using rule 112 + '\;' reduce using rule 112 + '<-' reduce using rule 112 + '->' reduce using rule 112 + '<=' reduce using rule 112 + '=>' reduce using rule 112 + ':' reduce using rule 112 + '::' reduce using rule 112 + '|' reduce using rule 112 + '`' reduce using rule 112 + ',' reduce using rule 112 + '_' reduce using rule 112 + '\\' reduce using rule 112 + '-' reduce using rule 112 + '@' reduce using rule 112 + 'ado' reduce using rule 112 + 'as' reduce using rule 112 + 'case' reduce using rule 112 + 'do' reduce using rule 112 + 'else' reduce using rule 112 + 'false' reduce using rule 112 + 'hiding' reduce using rule 112 + 'if' reduce using rule 112 + 'let' reduce using rule 112 + 'nominal' reduce using rule 112 + 'phantom' reduce using rule 112 + 'of' reduce using rule 112 + 'representational'reduce using rule 112 + 'role' reduce using rule 112 + 'then' reduce using rule 112 + 'true' reduce using rule 112 + 'where' reduce using rule 112 + '(->)' reduce using rule 112 + '(..)' reduce using rule 112 + LOWER reduce using rule 112 + QUAL_LOWER reduce using rule 112 + UPPER reduce using rule 112 + QUAL_UPPER reduce using rule 112 + SYMBOL reduce using rule 112 + QUAL_SYMBOL reduce using rule 112 + OPERATOR reduce using rule 112 + QUAL_OPERATOR reduce using rule 112 + LIT_HOLE reduce using rule 112 + LIT_CHAR reduce using rule 112 + LIT_STRING reduce using rule 112 + LIT_RAW_STRING reduce using rule 112 + LIT_INT reduce using rule 112 + LIT_NUMBER reduce using rule 112 + %eof reduce using rule 112 + + +State 291 + + type3 -> type3 qualOp . type4 (rule 108) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type4 goto state 409 + type5 goto state 144 + typeAtom goto state 145 + +State 292 + + type2 -> type3 '->' . type1 (rule 105) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type1 goto state 408 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 293 + + qualOp -> '<=' . (rule 45) + + '(' reduce using rule 45 + '{' reduce using rule 45 + '[' reduce using rule 45 + '_' reduce using rule 45 + '\\' reduce using rule 45 + '-' reduce using rule 45 + 'ado' reduce using rule 45 + 'as' reduce using rule 45 + 'case' reduce using rule 45 + 'do' reduce using rule 45 + 'false' reduce using rule 45 + 'hiding' reduce using rule 45 + 'if' reduce using rule 45 + 'let' reduce using rule 45 + 'nominal' reduce using rule 45 + 'phantom' reduce using rule 45 + 'representational'reduce using rule 45 + 'role' reduce using rule 45 + 'true' reduce using rule 45 + '(->)' reduce using rule 45 + '(..)' reduce using rule 45 + LOWER reduce using rule 45 + QUAL_LOWER reduce using rule 45 + UPPER reduce using rule 45 + QUAL_UPPER reduce using rule 45 + SYMBOL reduce using rule 45 + QUAL_SYMBOL reduce using rule 45 + LIT_HOLE reduce using rule 45 + LIT_CHAR reduce using rule 45 + LIT_STRING reduce using rule 45 + LIT_RAW_STRING reduce using rule 45 + LIT_INT reduce using rule 45 + LIT_NUMBER reduce using rule 45 + + +State 294 + + type2 -> type3 '=>' . type1 (rule 106) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type1 goto state 407 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 295 + + qualOp -> ':' . (rule 47) + + '(' reduce using rule 47 + '{' reduce using rule 47 + '[' reduce using rule 47 + '_' reduce using rule 47 + '\\' reduce using rule 47 + '-' reduce using rule 47 + 'ado' reduce using rule 47 + 'as' reduce using rule 47 + 'case' reduce using rule 47 + 'do' reduce using rule 47 + 'false' reduce using rule 47 + 'hiding' reduce using rule 47 + 'if' reduce using rule 47 + 'let' reduce using rule 47 + 'nominal' reduce using rule 47 + 'phantom' reduce using rule 47 + 'representational'reduce using rule 47 + 'role' reduce using rule 47 + 'true' reduce using rule 47 + '(->)' reduce using rule 47 + '(..)' reduce using rule 47 + LOWER reduce using rule 47 + QUAL_LOWER reduce using rule 47 + UPPER reduce using rule 47 + QUAL_UPPER reduce using rule 47 + SYMBOL reduce using rule 47 + QUAL_SYMBOL reduce using rule 47 + LIT_HOLE reduce using rule 47 + LIT_CHAR reduce using rule 47 + LIT_STRING reduce using rule 47 + LIT_RAW_STRING reduce using rule 47 + LIT_INT reduce using rule 47 + LIT_NUMBER reduce using rule 47 + + +State 296 + + qualOp -> '-' . (rule 46) + + '(' reduce using rule 46 + '{' reduce using rule 46 + '[' reduce using rule 46 + '_' reduce using rule 46 + '\\' reduce using rule 46 + '-' reduce using rule 46 + 'ado' reduce using rule 46 + 'as' reduce using rule 46 + 'case' reduce using rule 46 + 'do' reduce using rule 46 + 'false' reduce using rule 46 + 'hiding' reduce using rule 46 + 'if' reduce using rule 46 + 'let' reduce using rule 46 + 'nominal' reduce using rule 46 + 'phantom' reduce using rule 46 + 'representational'reduce using rule 46 + 'role' reduce using rule 46 + 'true' reduce using rule 46 + '(->)' reduce using rule 46 + '(..)' reduce using rule 46 + LOWER reduce using rule 46 + QUAL_LOWER reduce using rule 46 + UPPER reduce using rule 46 + QUAL_UPPER reduce using rule 46 + SYMBOL reduce using rule 46 + QUAL_SYMBOL reduce using rule 46 + LIT_HOLE reduce using rule 46 + LIT_CHAR reduce using rule 46 + LIT_STRING reduce using rule 46 + LIT_RAW_STRING reduce using rule 46 + LIT_INT reduce using rule 46 + LIT_NUMBER reduce using rule 46 + + +State 297 + + qualOp -> OPERATOR . (rule 43) + + '(' reduce using rule 43 + '{' reduce using rule 43 + '[' reduce using rule 43 + '_' reduce using rule 43 + '\\' reduce using rule 43 + '-' reduce using rule 43 + 'ado' reduce using rule 43 + 'as' reduce using rule 43 + 'case' reduce using rule 43 + 'do' reduce using rule 43 + 'false' reduce using rule 43 + 'hiding' reduce using rule 43 + 'if' reduce using rule 43 + 'let' reduce using rule 43 + 'nominal' reduce using rule 43 + 'phantom' reduce using rule 43 + 'representational'reduce using rule 43 + 'role' reduce using rule 43 + 'true' reduce using rule 43 + '(->)' reduce using rule 43 + '(..)' reduce using rule 43 + LOWER reduce using rule 43 + QUAL_LOWER reduce using rule 43 + UPPER reduce using rule 43 + QUAL_UPPER reduce using rule 43 + SYMBOL reduce using rule 43 + QUAL_SYMBOL reduce using rule 43 + LIT_HOLE reduce using rule 43 + LIT_CHAR reduce using rule 43 + LIT_STRING reduce using rule 43 + LIT_RAW_STRING reduce using rule 43 + LIT_INT reduce using rule 43 + LIT_NUMBER reduce using rule 43 + + +State 298 + + qualOp -> QUAL_OPERATOR . (rule 44) + + '(' reduce using rule 44 + '{' reduce using rule 44 + '[' reduce using rule 44 + '_' reduce using rule 44 + '\\' reduce using rule 44 + '-' reduce using rule 44 + 'ado' reduce using rule 44 + 'as' reduce using rule 44 + 'case' reduce using rule 44 + 'do' reduce using rule 44 + 'false' reduce using rule 44 + 'hiding' reduce using rule 44 + 'if' reduce using rule 44 + 'let' reduce using rule 44 + 'nominal' reduce using rule 44 + 'phantom' reduce using rule 44 + 'representational'reduce using rule 44 + 'role' reduce using rule 44 + 'true' reduce using rule 44 + '(->)' reduce using rule 44 + '(..)' reduce using rule 44 + LOWER reduce using rule 44 + QUAL_LOWER reduce using rule 44 + UPPER reduce using rule 44 + QUAL_UPPER reduce using rule 44 + SYMBOL reduce using rule 44 + QUAL_SYMBOL reduce using rule 44 + LIT_HOLE reduce using rule 44 + LIT_CHAR reduce using rule 44 + LIT_STRING reduce using rule 44 + LIT_RAW_STRING reduce using rule 44 + LIT_INT reduce using rule 44 + LIT_NUMBER reduce using rule 44 + + +State 299 + + type -> type1 '::' . type (rule 101) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 406 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 300 + + moduleHeader -> 'module' moduleName . exports 'where' '\{' moduleImports (rule 242) + + '(' shift, and enter state 405 + 'where' reduce using rule 254 + + exports goto state 404 + +State 301 + + doStatement -> 'let' '\{' . manySep__letBinding__'\;'__ '\}' (rule 211) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 396 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + letBinding goto state 397 + binder1 goto state 398 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + manySep__letBinding__'\;'__goto state 403 + many1__binderAtom__goto state 39 + manySep1__letBinding__'\;'__goto state 400 + +State 302 + + expr1 -> expr1 qualOp . expr2 (rule 152) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr2 goto state 402 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 303 + + expr -> expr1 '::' . type (rule 150) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 401 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 304 + + expr5 -> 'let' '\{' . manySep__letBinding__'\;'__ '\}' 'in' expr (rule 167) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 396 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + letBinding goto state 397 + binder1 goto state 398 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + manySep__letBinding__'\;'__goto state 399 + many1__binderAtom__goto state 39 + manySep1__letBinding__'\;'__goto state 400 + +State 305 + + expr5 -> 'if' expr . 'then' expr 'else' expr (rule 163) + + 'then' shift, and enter state 395 + + +State 306 + + doBlock -> 'do' '\{' . (rule 208) + + error reduce using rule 208 + '(' reduce using rule 208 + ')' reduce using rule 208 + '{' reduce using rule 208 + '}' reduce using rule 208 + '[' reduce using rule 208 + ']' reduce using rule 208 + '\}' reduce using rule 208 + '\;' reduce using rule 208 + '<=' reduce using rule 208 + ':' reduce using rule 208 + '::' reduce using rule 208 + '|' reduce using rule 208 + '`' reduce using rule 208 + ',' reduce using rule 208 + '_' reduce using rule 208 + '\\' reduce using rule 208 + '-' reduce using rule 208 + '@' reduce using rule 208 + 'ado' reduce using rule 208 + 'as' reduce using rule 208 + 'case' reduce using rule 208 + 'do' reduce using rule 208 + 'else' reduce using rule 208 + 'false' reduce using rule 208 + 'hiding' reduce using rule 208 + 'if' reduce using rule 208 + 'let' reduce using rule 208 + 'nominal' reduce using rule 208 + 'phantom' reduce using rule 208 + 'of' reduce using rule 208 + 'representational'reduce using rule 208 + 'role' reduce using rule 208 + 'then' reduce using rule 208 + 'true' reduce using rule 208 + 'where' reduce using rule 208 + '(..)' reduce using rule 208 + LOWER reduce using rule 208 + QUAL_LOWER reduce using rule 208 + UPPER reduce using rule 208 + QUAL_UPPER reduce using rule 208 + SYMBOL reduce using rule 208 + QUAL_SYMBOL reduce using rule 208 + OPERATOR reduce using rule 208 + QUAL_OPERATOR reduce using rule 208 + LIT_HOLE reduce using rule 208 + LIT_CHAR reduce using rule 208 + LIT_STRING reduce using rule 208 + LIT_RAW_STRING reduce using rule 208 + LIT_INT reduce using rule 208 + LIT_NUMBER reduce using rule 208 + %eof reduce using rule 208 + + +State 307 + + sep1__expr__','__ -> expr . (rule 411) + + ']' reduce using rule 411 + ',' reduce using rule 411 + 'of' reduce using rule 411 + + +State 308 + + expr5 -> 'case' sep__expr__','__ . 'of' '\{' manySep__caseBranch__'\;'__ '\}' (rule 168) + expr5 -> 'case' sep__expr__','__ . 'of' '\{' sep__binder1__','__ '->' '\}' exprWhere (rule 169) + expr5 -> 'case' sep__expr__','__ . 'of' '\{' sep__binder1__','__ '\}' guardedCase (rule 170) + + 'of' shift, and enter state 394 + + +State 309 + + sep__expr__','__ -> sep1__expr__','__ . (rule 366) + sep1__expr__','__ -> sep1__expr__','__ . ',' expr (rule 412) + + ']' reduce using rule 366 + ',' shift, and enter state 393 + 'of' reduce using rule 366 + + +State 310 + + adoBlock -> 'ado' '\{' . '\}' (rule 209) + adoBlock -> 'ado' '\{' . (rule 210) + + '\}' shift, and enter state 392 + 'in' reduce using rule 210 + + +State 311 + + expr3 -> '-' expr3 . (rule 158) + + error reduce using rule 158 + '(' reduce using rule 158 + ')' reduce using rule 158 + '{' reduce using rule 158 + '}' reduce using rule 158 + '[' reduce using rule 158 + ']' reduce using rule 158 + '\}' reduce using rule 158 + '\;' reduce using rule 158 + '<=' reduce using rule 158 + ':' reduce using rule 158 + '::' reduce using rule 158 + '|' reduce using rule 158 + '`' reduce using rule 158 + ',' reduce using rule 158 + '_' reduce using rule 158 + '\\' reduce using rule 158 + '-' reduce using rule 158 + '@' reduce using rule 158 + 'ado' reduce using rule 158 + 'as' reduce using rule 158 + 'case' reduce using rule 158 + 'do' reduce using rule 158 + 'else' reduce using rule 158 + 'false' reduce using rule 158 + 'hiding' reduce using rule 158 + 'if' reduce using rule 158 + 'let' reduce using rule 158 + 'nominal' reduce using rule 158 + 'phantom' reduce using rule 158 + 'of' reduce using rule 158 + 'representational'reduce using rule 158 + 'role' reduce using rule 158 + 'then' reduce using rule 158 + 'true' reduce using rule 158 + 'where' reduce using rule 158 + '(..)' reduce using rule 158 + LOWER reduce using rule 158 + QUAL_LOWER reduce using rule 158 + UPPER reduce using rule 158 + QUAL_UPPER reduce using rule 158 + SYMBOL reduce using rule 158 + QUAL_SYMBOL reduce using rule 158 + OPERATOR reduce using rule 158 + QUAL_OPERATOR reduce using rule 158 + LIT_HOLE reduce using rule 158 + LIT_CHAR reduce using rule 158 + LIT_STRING reduce using rule 158 + LIT_RAW_STRING reduce using rule 158 + LIT_INT reduce using rule 158 + LIT_NUMBER reduce using rule 158 + %eof reduce using rule 158 + + +State 312 + + expr5 -> '\\' many__binderAtom__ . '->' expr (rule 166) + + '->' shift, and enter state 391 + + +State 313 + + delim__'['__expr__','__']'__ -> '[' sep__expr__','__ . ']' (rule 337) + + ']' shift, and enter state 390 + + +State 314 + + delim__'['__expr__','__']'__ -> '[' ']' . (rule 336) + + error reduce using rule 336 + '(' reduce using rule 336 + ')' reduce using rule 336 + '{' reduce using rule 336 + '}' reduce using rule 336 + '[' reduce using rule 336 + ']' reduce using rule 336 + '\}' reduce using rule 336 + '\;' reduce using rule 336 + '<=' reduce using rule 336 + ':' reduce using rule 336 + '::' reduce using rule 336 + '|' reduce using rule 336 + '`' reduce using rule 336 + '.' reduce using rule 336 + ',' reduce using rule 336 + '_' reduce using rule 336 + '\\' reduce using rule 336 + '-' reduce using rule 336 + '@' reduce using rule 336 + 'ado' reduce using rule 336 + 'as' reduce using rule 336 + 'case' reduce using rule 336 + 'do' reduce using rule 336 + 'else' reduce using rule 336 + 'false' reduce using rule 336 + 'hiding' reduce using rule 336 + 'if' reduce using rule 336 + 'let' reduce using rule 336 + 'nominal' reduce using rule 336 + 'phantom' reduce using rule 336 + 'of' reduce using rule 336 + 'representational'reduce using rule 336 + 'role' reduce using rule 336 + 'then' reduce using rule 336 + 'true' reduce using rule 336 + 'where' reduce using rule 336 + '(..)' reduce using rule 336 + LOWER reduce using rule 336 + QUAL_LOWER reduce using rule 336 + UPPER reduce using rule 336 + QUAL_UPPER reduce using rule 336 + SYMBOL reduce using rule 336 + QUAL_SYMBOL reduce using rule 336 + OPERATOR reduce using rule 336 + QUAL_OPERATOR reduce using rule 336 + LIT_HOLE reduce using rule 336 + LIT_CHAR reduce using rule 336 + LIT_STRING reduce using rule 336 + LIT_RAW_STRING reduce using rule 336 + LIT_INT reduce using rule 336 + LIT_NUMBER reduce using rule 336 + %eof reduce using rule 336 + + +State 315 + + recordLabel -> label . (rule 188) + recordLabel -> label . '=' expr (rule 189) + recordLabel -> label . ':' expr (rule 190) + + '}' reduce using rule 188 + ':' shift, and enter state 388 + '=' shift, and enter state 389 + ',' reduce using rule 188 + + +State 316 + + sep1__recordLabel__','__ -> recordLabel . (rule 435) + + '}' reduce using rule 435 + ',' reduce using rule 435 + + +State 317 + + delim__'{'__recordLabel__','__'}'__ -> '{' sep__recordLabel__','__ . '}' (rule 341) + + '}' shift, and enter state 387 + + +State 318 + + sep__recordLabel__','__ -> sep1__recordLabel__','__ . (rule 400) + sep1__recordLabel__','__ -> sep1__recordLabel__','__ . ',' recordLabel (rule 436) + + '}' reduce using rule 400 + ',' shift, and enter state 386 + + +State 319 + + delim__'{'__recordLabel__','__'}'__ -> '{' '}' . (rule 340) + + error reduce using rule 340 + '(' reduce using rule 340 + ')' reduce using rule 340 + '{' reduce using rule 340 + '}' reduce using rule 340 + '[' reduce using rule 340 + ']' reduce using rule 340 + '\}' reduce using rule 340 + '\;' reduce using rule 340 + '<=' reduce using rule 340 + ':' reduce using rule 340 + '::' reduce using rule 340 + '|' reduce using rule 340 + '`' reduce using rule 340 + '.' reduce using rule 340 + ',' reduce using rule 340 + '_' reduce using rule 340 + '\\' reduce using rule 340 + '-' reduce using rule 340 + '@' reduce using rule 340 + 'ado' reduce using rule 340 + 'as' reduce using rule 340 + 'case' reduce using rule 340 + 'do' reduce using rule 340 + 'else' reduce using rule 340 + 'false' reduce using rule 340 + 'hiding' reduce using rule 340 + 'if' reduce using rule 340 + 'let' reduce using rule 340 + 'nominal' reduce using rule 340 + 'phantom' reduce using rule 340 + 'of' reduce using rule 340 + 'representational'reduce using rule 340 + 'role' reduce using rule 340 + 'then' reduce using rule 340 + 'true' reduce using rule 340 + 'where' reduce using rule 340 + '(..)' reduce using rule 340 + LOWER reduce using rule 340 + QUAL_LOWER reduce using rule 340 + UPPER reduce using rule 340 + QUAL_UPPER reduce using rule 340 + SYMBOL reduce using rule 340 + QUAL_SYMBOL reduce using rule 340 + OPERATOR reduce using rule 340 + QUAL_OPERATOR reduce using rule 340 + LIT_HOLE reduce using rule 340 + LIT_CHAR reduce using rule 340 + LIT_STRING reduce using rule 340 + LIT_RAW_STRING reduce using rule 340 + LIT_INT reduce using rule 340 + LIT_NUMBER reduce using rule 340 + %eof reduce using rule 340 + + +State 320 + + exprAtom -> '(' expr . ')' (rule 187) + + ')' shift, and enter state 385 + + +State 321 + + expr5 -> adoBlock 'in' . expr (rule 165) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 384 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 322 + + expr7 -> exprAtom '.' . sep__label__'.'__ (rule 175) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 381 + sep__label__'.'__goto state 382 + sep1__label__'.'__goto state 383 + +State 323 + + expr6 -> expr7 '{' . '}' (rule 172) + expr6 -> expr7 '{' . sep__recordUpdateOrLabel__','__ '}' (rule 173) + + '}' shift, and enter state 380 + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 376 + recordUpdateOrLabelgoto state 377 + sep__recordUpdateOrLabel__','__goto state 378 + sep1__recordUpdateOrLabel__','__goto state 379 + +State 324 + + expr4 -> expr4 expr5 . (rule 160) + + error reduce using rule 160 + '(' reduce using rule 160 + ')' reduce using rule 160 + '{' reduce using rule 160 + '}' reduce using rule 160 + '[' reduce using rule 160 + ']' reduce using rule 160 + '\}' reduce using rule 160 + '\;' reduce using rule 160 + '<=' reduce using rule 160 + ':' reduce using rule 160 + '::' reduce using rule 160 + '|' reduce using rule 160 + '`' reduce using rule 160 + ',' reduce using rule 160 + '_' reduce using rule 160 + '\\' reduce using rule 160 + '-' reduce using rule 160 + '@' reduce using rule 160 + 'ado' reduce using rule 160 + 'as' reduce using rule 160 + 'case' reduce using rule 160 + 'do' reduce using rule 160 + 'else' reduce using rule 160 + 'false' reduce using rule 160 + 'hiding' reduce using rule 160 + 'if' reduce using rule 160 + 'let' reduce using rule 160 + 'nominal' reduce using rule 160 + 'phantom' reduce using rule 160 + 'of' reduce using rule 160 + 'representational'reduce using rule 160 + 'role' reduce using rule 160 + 'then' reduce using rule 160 + 'true' reduce using rule 160 + 'where' reduce using rule 160 + '(..)' reduce using rule 160 + LOWER reduce using rule 160 + QUAL_LOWER reduce using rule 160 + UPPER reduce using rule 160 + QUAL_UPPER reduce using rule 160 + SYMBOL reduce using rule 160 + QUAL_SYMBOL reduce using rule 160 + OPERATOR reduce using rule 160 + QUAL_OPERATOR reduce using rule 160 + LIT_HOLE reduce using rule 160 + LIT_CHAR reduce using rule 160 + LIT_STRING reduce using rule 160 + LIT_RAW_STRING reduce using rule 160 + LIT_INT reduce using rule 160 + LIT_NUMBER reduce using rule 160 + %eof reduce using rule 160 + + +State 325 + + expr4 -> expr4 '@' . typeAtom (rule 161) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 375 + +State 326 + + expr2 -> expr2 '`' . exprBacktick '`' expr3 (rule 154) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprBacktick goto state 373 + expr3 goto state 374 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 327 + + classSignature -> properName '::' . type (rule 301) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 372 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 328 + + constraint -> '(' constraint . ')' (rule 316) + sep1__constraint__','__ -> constraint . (rule 403) + + ')' shift, and enter state 371 + ',' reduce using rule 403 + + +State 329 + + constraints -> '(' sep__constraint__','__ . ')' (rule 314) + + ')' shift, and enter state 370 + + +State 330 + + sep__constraint__','__ -> sep1__constraint__','__ . (rule 362) + sep1__constraint__','__ -> sep1__constraint__','__ . ',' constraint (rule 404) + + ')' reduce using rule 362 + ',' shift, and enter state 369 + + +State 331 + + constraint -> '(' . constraint ')' (rule 316) + + '(' shift, and enter state 331 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 64 + constraint goto state 368 + +State 332 + + classSuper -> constraints '<=' . (rule 302) + + error reduce using rule 302 + + +State 333 + + many1__typeAtom__ -> typeAtom . (rule 427) + + error reduce using rule 427 + '(' reduce using rule 427 + ')' reduce using rule 427 + '{' reduce using rule 427 + '\}' reduce using rule 427 + '\;' reduce using rule 427 + '<=' reduce using rule 427 + '=>' reduce using rule 427 + '|' reduce using rule 427 + ',' reduce using rule 427 + '_' reduce using rule 427 + 'as' reduce using rule 427 + 'else' reduce using rule 427 + 'hiding' reduce using rule 427 + 'nominal' reduce using rule 427 + 'phantom' reduce using rule 427 + 'representational'reduce using rule 427 + 'role' reduce using rule 427 + 'where' reduce using rule 427 + '(->)' reduce using rule 427 + '(..)' reduce using rule 427 + LOWER reduce using rule 427 + UPPER reduce using rule 427 + QUAL_UPPER reduce using rule 427 + SYMBOL reduce using rule 427 + QUAL_SYMBOL reduce using rule 427 + LIT_HOLE reduce using rule 427 + LIT_STRING reduce using rule 427 + LIT_RAW_STRING reduce using rule 427 + LIT_INT reduce using rule 427 + %eof reduce using rule 427 + + +State 334 + + constraint -> qualProperName manyOrEmpty__typeAtom__ . (rule 315) + + ')' reduce using rule 315 + '<=' reduce using rule 315 + ',' reduce using rule 315 + + +State 335 + + manyOrEmpty__typeAtom__ -> many__typeAtom__ . (rule 351) + + error reduce using rule 351 + ')' reduce using rule 351 + '\}' reduce using rule 351 + '\;' reduce using rule 351 + '<=' reduce using rule 351 + '=>' reduce using rule 351 + '|' reduce using rule 351 + ',' reduce using rule 351 + 'else' reduce using rule 351 + 'where' reduce using rule 351 + %eof reduce using rule 351 + + +State 336 + + many__typeAtom__ -> many1__typeAtom__ . (rule 374) + many1__typeAtom__ -> many1__typeAtom__ . typeAtom (rule 428) + + error reduce using rule 374 + '(' shift, and enter state 148 + ')' reduce using rule 374 + '{' shift, and enter state 149 + '\}' reduce using rule 374 + '\;' reduce using rule 374 + '<=' reduce using rule 374 + '=>' reduce using rule 374 + '|' reduce using rule 374 + ',' reduce using rule 374 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'else' reduce using rule 374 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'where' reduce using rule 374 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + %eof reduce using rule 374 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 367 + +State 337 + + manyOrEmpty__typeVarBinding__ -> many__typeVarBinding__ . (rule 353) + + error reduce using rule 353 + '|' reduce using rule 353 + + +State 338 + + classNameAndFundeps -> properName manyOrEmpty__typeVarBinding__ . fundeps (rule 303) + + error reduce using rule 304 + '|' shift, and enter state 366 + + fundeps goto state 365 + +State 339 + + binder2 -> '-' number . (rule 227) + + ')' reduce using rule 227 + '}' reduce using rule 227 + ']' reduce using rule 227 + '\}' reduce using rule 227 + '<-' reduce using rule 227 + '->' reduce using rule 227 + '<=' reduce using rule 227 + ':' reduce using rule 227 + '::' reduce using rule 227 + '=' reduce using rule 227 + '|' reduce using rule 227 + ',' reduce using rule 227 + '-' reduce using rule 227 + OPERATOR reduce using rule 227 + QUAL_OPERATOR reduce using rule 227 + + +State 340 + + sep1__binder__','__ -> binder . (rule 431) + + ']' reduce using rule 431 + ',' reduce using rule 431 + + +State 341 + + delim__'['__binder__','__']'__ -> '[' sep__binder__','__ . ']' (rule 335) + + ']' shift, and enter state 364 + + +State 342 + + sep__binder__','__ -> sep1__binder__','__ . (rule 398) + sep1__binder__','__ -> sep1__binder__','__ . ',' binder (rule 432) + + ']' reduce using rule 398 + ',' shift, and enter state 363 + + +State 343 + + delim__'['__binder__','__']'__ -> '[' ']' . (rule 334) + + '(' reduce using rule 334 + ')' reduce using rule 334 + '{' reduce using rule 334 + '}' reduce using rule 334 + '[' reduce using rule 334 + ']' reduce using rule 334 + '\}' reduce using rule 334 + '<-' reduce using rule 334 + '->' reduce using rule 334 + '<=' reduce using rule 334 + ':' reduce using rule 334 + '::' reduce using rule 334 + '=' reduce using rule 334 + '|' reduce using rule 334 + ',' reduce using rule 334 + '_' reduce using rule 334 + '-' reduce using rule 334 + 'as' reduce using rule 334 + 'false' reduce using rule 334 + 'hiding' reduce using rule 334 + 'nominal' reduce using rule 334 + 'phantom' reduce using rule 334 + 'representational'reduce using rule 334 + 'role' reduce using rule 334 + 'true' reduce using rule 334 + LOWER reduce using rule 334 + UPPER reduce using rule 334 + QUAL_UPPER reduce using rule 334 + OPERATOR reduce using rule 334 + QUAL_OPERATOR reduce using rule 334 + LIT_CHAR reduce using rule 334 + LIT_STRING reduce using rule 334 + LIT_RAW_STRING reduce using rule 334 + LIT_INT reduce using rule 334 + LIT_NUMBER reduce using rule 334 + + +State 344 + + recordBinder -> label . (rule 239) + recordBinder -> label . '=' binder (rule 240) + recordBinder -> label . ':' binder (rule 241) + + '}' reduce using rule 239 + ':' shift, and enter state 361 + '=' shift, and enter state 362 + ',' reduce using rule 239 + + +State 345 + + sep1__recordBinder__','__ -> recordBinder . (rule 433) + + '}' reduce using rule 433 + ',' reduce using rule 433 + + +State 346 + + delim__'{'__recordBinder__','__'}'__ -> '{' sep__recordBinder__','__ . '}' (rule 339) + + '}' shift, and enter state 360 + + +State 347 + + sep__recordBinder__','__ -> sep1__recordBinder__','__ . (rule 399) + sep1__recordBinder__','__ -> sep1__recordBinder__','__ . ',' recordBinder (rule 434) + + '}' reduce using rule 399 + ',' shift, and enter state 359 + + +State 348 + + delim__'{'__recordBinder__','__'}'__ -> '{' '}' . (rule 338) + + '(' reduce using rule 338 + ')' reduce using rule 338 + '{' reduce using rule 338 + '}' reduce using rule 338 + '[' reduce using rule 338 + ']' reduce using rule 338 + '\}' reduce using rule 338 + '<-' reduce using rule 338 + '->' reduce using rule 338 + '<=' reduce using rule 338 + ':' reduce using rule 338 + '::' reduce using rule 338 + '=' reduce using rule 338 + '|' reduce using rule 338 + ',' reduce using rule 338 + '_' reduce using rule 338 + '-' reduce using rule 338 + 'as' reduce using rule 338 + 'false' reduce using rule 338 + 'hiding' reduce using rule 338 + 'nominal' reduce using rule 338 + 'phantom' reduce using rule 338 + 'representational'reduce using rule 338 + 'role' reduce using rule 338 + 'true' reduce using rule 338 + LOWER reduce using rule 338 + UPPER reduce using rule 338 + QUAL_UPPER reduce using rule 338 + OPERATOR reduce using rule 338 + QUAL_OPERATOR reduce using rule 338 + LIT_CHAR reduce using rule 338 + LIT_STRING reduce using rule 338 + LIT_RAW_STRING reduce using rule 338 + LIT_INT reduce using rule 338 + LIT_NUMBER reduce using rule 338 + + +State 349 + + binderAtom -> '(' binder . ')' (rule 238) + + ')' shift, and enter state 358 + + +State 350 + + many1__binderAtom__ -> many1__binderAtom__ binderAtom . (rule 377) + + '(' reduce using rule 377 + ')' reduce using rule 377 + '{' reduce using rule 377 + '}' reduce using rule 377 + '[' reduce using rule 377 + ']' reduce using rule 377 + '\}' reduce using rule 377 + '<-' reduce using rule 377 + '->' reduce using rule 377 + '<=' reduce using rule 377 + ':' reduce using rule 377 + '::' reduce using rule 377 + '=' reduce using rule 377 + '|' reduce using rule 377 + ',' reduce using rule 377 + '_' reduce using rule 377 + '-' reduce using rule 377 + 'as' reduce using rule 377 + 'false' reduce using rule 377 + 'hiding' reduce using rule 377 + 'nominal' reduce using rule 377 + 'phantom' reduce using rule 377 + 'representational'reduce using rule 377 + 'role' reduce using rule 377 + 'true' reduce using rule 377 + LOWER reduce using rule 377 + UPPER reduce using rule 377 + QUAL_UPPER reduce using rule 377 + OPERATOR reduce using rule 377 + QUAL_OPERATOR reduce using rule 377 + LIT_CHAR reduce using rule 377 + LIT_STRING reduce using rule 377 + LIT_RAW_STRING reduce using rule 377 + LIT_INT reduce using rule 377 + LIT_NUMBER reduce using rule 377 + + +State 351 + + binder1 -> binder1 qualOp . binder2 (rule 225) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder2 goto state 357 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 352 + + binder -> binder1 '::' . type (rule 223) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 356 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 353 + + binderAndArrow -> binder '<-' . (rule 221) + + error reduce using rule 221 + + +State 354 + + binderAtom -> ident '@' . binderAtom (rule 230) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binderAtom goto state 355 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + +State 355 + + binderAtom -> ident '@' binderAtom . (rule 230) + + '(' reduce using rule 230 + ')' reduce using rule 230 + '{' reduce using rule 230 + '}' reduce using rule 230 + '[' reduce using rule 230 + ']' reduce using rule 230 + '\}' reduce using rule 230 + '<-' reduce using rule 230 + '->' reduce using rule 230 + '<=' reduce using rule 230 + ':' reduce using rule 230 + '::' reduce using rule 230 + '=' reduce using rule 230 + '|' reduce using rule 230 + ',' reduce using rule 230 + '_' reduce using rule 230 + '-' reduce using rule 230 + 'as' reduce using rule 230 + 'false' reduce using rule 230 + 'hiding' reduce using rule 230 + 'nominal' reduce using rule 230 + 'phantom' reduce using rule 230 + 'representational'reduce using rule 230 + 'role' reduce using rule 230 + 'true' reduce using rule 230 + LOWER reduce using rule 230 + UPPER reduce using rule 230 + QUAL_UPPER reduce using rule 230 + OPERATOR reduce using rule 230 + QUAL_OPERATOR reduce using rule 230 + LIT_CHAR reduce using rule 230 + LIT_STRING reduce using rule 230 + LIT_RAW_STRING reduce using rule 230 + LIT_INT reduce using rule 230 + LIT_NUMBER reduce using rule 230 + + +State 356 + + binder -> binder1 '::' type . (rule 223) + + ')' reduce using rule 223 + '}' reduce using rule 223 + ']' reduce using rule 223 + '<-' reduce using rule 223 + ',' reduce using rule 223 + + +State 357 + + binder1 -> binder1 qualOp binder2 . (rule 225) + + ')' reduce using rule 225 + '}' reduce using rule 225 + ']' reduce using rule 225 + '\}' reduce using rule 225 + '<-' reduce using rule 225 + '->' reduce using rule 225 + '<=' reduce using rule 225 + ':' reduce using rule 225 + '::' reduce using rule 225 + '=' reduce using rule 225 + '|' reduce using rule 225 + ',' reduce using rule 225 + '-' reduce using rule 225 + OPERATOR reduce using rule 225 + QUAL_OPERATOR reduce using rule 225 + + +State 358 + + binderAtom -> '(' binder ')' . (rule 238) + + '(' reduce using rule 238 + ')' reduce using rule 238 + '{' reduce using rule 238 + '}' reduce using rule 238 + '[' reduce using rule 238 + ']' reduce using rule 238 + '\}' reduce using rule 238 + '<-' reduce using rule 238 + '->' reduce using rule 238 + '<=' reduce using rule 238 + ':' reduce using rule 238 + '::' reduce using rule 238 + '=' reduce using rule 238 + '|' reduce using rule 238 + ',' reduce using rule 238 + '_' reduce using rule 238 + '-' reduce using rule 238 + 'as' reduce using rule 238 + 'false' reduce using rule 238 + 'hiding' reduce using rule 238 + 'nominal' reduce using rule 238 + 'phantom' reduce using rule 238 + 'representational'reduce using rule 238 + 'role' reduce using rule 238 + 'true' reduce using rule 238 + LOWER reduce using rule 238 + UPPER reduce using rule 238 + QUAL_UPPER reduce using rule 238 + OPERATOR reduce using rule 238 + QUAL_OPERATOR reduce using rule 238 + LIT_CHAR reduce using rule 238 + LIT_STRING reduce using rule 238 + LIT_RAW_STRING reduce using rule 238 + LIT_INT reduce using rule 238 + LIT_NUMBER reduce using rule 238 + + +State 359 + + sep1__recordBinder__','__ -> sep1__recordBinder__','__ ',' . recordBinder (rule 434) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 344 + recordBinder goto state 570 + +State 360 + + delim__'{'__recordBinder__','__'}'__ -> '{' sep__recordBinder__','__ '}' . (rule 339) + + '(' reduce using rule 339 + ')' reduce using rule 339 + '{' reduce using rule 339 + '}' reduce using rule 339 + '[' reduce using rule 339 + ']' reduce using rule 339 + '\}' reduce using rule 339 + '<-' reduce using rule 339 + '->' reduce using rule 339 + '<=' reduce using rule 339 + ':' reduce using rule 339 + '::' reduce using rule 339 + '=' reduce using rule 339 + '|' reduce using rule 339 + ',' reduce using rule 339 + '_' reduce using rule 339 + '-' reduce using rule 339 + 'as' reduce using rule 339 + 'false' reduce using rule 339 + 'hiding' reduce using rule 339 + 'nominal' reduce using rule 339 + 'phantom' reduce using rule 339 + 'representational'reduce using rule 339 + 'role' reduce using rule 339 + 'true' reduce using rule 339 + LOWER reduce using rule 339 + UPPER reduce using rule 339 + QUAL_UPPER reduce using rule 339 + OPERATOR reduce using rule 339 + QUAL_OPERATOR reduce using rule 339 + LIT_CHAR reduce using rule 339 + LIT_STRING reduce using rule 339 + LIT_RAW_STRING reduce using rule 339 + LIT_INT reduce using rule 339 + LIT_NUMBER reduce using rule 339 + + +State 361 + + recordBinder -> label ':' . binder (rule 241) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder goto state 569 + binder1 goto state 33 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 362 + + recordBinder -> label '=' . binder (rule 240) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder goto state 568 + binder1 goto state 33 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 363 + + sep1__binder__','__ -> sep1__binder__','__ ',' . binder (rule 432) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder goto state 567 + binder1 goto state 33 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 364 + + delim__'['__binder__','__']'__ -> '[' sep__binder__','__ ']' . (rule 335) + + '(' reduce using rule 335 + ')' reduce using rule 335 + '{' reduce using rule 335 + '}' reduce using rule 335 + '[' reduce using rule 335 + ']' reduce using rule 335 + '\}' reduce using rule 335 + '<-' reduce using rule 335 + '->' reduce using rule 335 + '<=' reduce using rule 335 + ':' reduce using rule 335 + '::' reduce using rule 335 + '=' reduce using rule 335 + '|' reduce using rule 335 + ',' reduce using rule 335 + '_' reduce using rule 335 + '-' reduce using rule 335 + 'as' reduce using rule 335 + 'false' reduce using rule 335 + 'hiding' reduce using rule 335 + 'nominal' reduce using rule 335 + 'phantom' reduce using rule 335 + 'representational'reduce using rule 335 + 'role' reduce using rule 335 + 'true' reduce using rule 335 + LOWER reduce using rule 335 + UPPER reduce using rule 335 + QUAL_UPPER reduce using rule 335 + OPERATOR reduce using rule 335 + QUAL_OPERATOR reduce using rule 335 + LIT_CHAR reduce using rule 335 + LIT_STRING reduce using rule 335 + LIT_RAW_STRING reduce using rule 335 + LIT_INT reduce using rule 335 + LIT_NUMBER reduce using rule 335 + + +State 365 + + classNameAndFundeps -> properName manyOrEmpty__typeVarBinding__ fundeps . (rule 303) + + error reduce using rule 303 + + +State 366 + + fundeps -> '|' . sep__fundep__','__ (rule 305) + + '->' shift, and enter state 566 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 560 + fundep goto state 561 + many__ident__ goto state 562 + sep__fundep__','__goto state 563 + many1__ident__ goto state 564 + sep1__fundep__','__goto state 565 + +State 367 + + many1__typeAtom__ -> many1__typeAtom__ typeAtom . (rule 428) + + error reduce using rule 428 + '(' reduce using rule 428 + ')' reduce using rule 428 + '{' reduce using rule 428 + '\}' reduce using rule 428 + '\;' reduce using rule 428 + '<=' reduce using rule 428 + '=>' reduce using rule 428 + '|' reduce using rule 428 + ',' reduce using rule 428 + '_' reduce using rule 428 + 'as' reduce using rule 428 + 'else' reduce using rule 428 + 'hiding' reduce using rule 428 + 'nominal' reduce using rule 428 + 'phantom' reduce using rule 428 + 'representational'reduce using rule 428 + 'role' reduce using rule 428 + 'where' reduce using rule 428 + '(->)' reduce using rule 428 + '(..)' reduce using rule 428 + LOWER reduce using rule 428 + UPPER reduce using rule 428 + QUAL_UPPER reduce using rule 428 + SYMBOL reduce using rule 428 + QUAL_SYMBOL reduce using rule 428 + LIT_HOLE reduce using rule 428 + LIT_STRING reduce using rule 428 + LIT_RAW_STRING reduce using rule 428 + LIT_INT reduce using rule 428 + %eof reduce using rule 428 + + +State 368 + + constraint -> '(' constraint . ')' (rule 316) + + ')' shift, and enter state 371 + + +State 369 + + sep1__constraint__','__ -> sep1__constraint__','__ ',' . constraint (rule 404) + + '(' shift, and enter state 331 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 64 + constraint goto state 559 + +State 370 + + constraints -> '(' sep__constraint__','__ ')' . (rule 314) + + '<=' reduce using rule 314 + '=>' reduce using rule 314 + + +State 371 + + constraint -> '(' constraint ')' . (rule 316) + + ')' reduce using rule 316 + '<=' reduce using rule 316 + '=>' reduce using rule 316 + ',' reduce using rule 316 + + +State 372 + + classSignature -> properName '::' type . (rule 301) + + error reduce using rule 301 + + +State 373 + + expr2 -> expr2 '`' exprBacktick . '`' expr3 (rule 154) + exprBacktick -> exprBacktick . qualOp expr3 (rule 156) + + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '`' shift, and enter state 558 + '-' shift, and enter state 296 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + + qualOp goto state 557 + +State 374 + + exprBacktick -> expr3 . (rule 155) + + '<=' reduce using rule 155 + ':' reduce using rule 155 + '`' reduce using rule 155 + '-' reduce using rule 155 + OPERATOR reduce using rule 155 + QUAL_OPERATOR reduce using rule 155 + + +State 375 + + expr4 -> expr4 '@' typeAtom . (rule 161) + + error reduce using rule 161 + '(' reduce using rule 161 + ')' reduce using rule 161 + '{' reduce using rule 161 + '}' reduce using rule 161 + '[' reduce using rule 161 + ']' reduce using rule 161 + '\}' reduce using rule 161 + '\;' reduce using rule 161 + '<=' reduce using rule 161 + ':' reduce using rule 161 + '::' reduce using rule 161 + '|' reduce using rule 161 + '`' reduce using rule 161 + ',' reduce using rule 161 + '_' reduce using rule 161 + '\\' reduce using rule 161 + '-' reduce using rule 161 + '@' reduce using rule 161 + 'ado' reduce using rule 161 + 'as' reduce using rule 161 + 'case' reduce using rule 161 + 'do' reduce using rule 161 + 'else' reduce using rule 161 + 'false' reduce using rule 161 + 'hiding' reduce using rule 161 + 'if' reduce using rule 161 + 'let' reduce using rule 161 + 'nominal' reduce using rule 161 + 'phantom' reduce using rule 161 + 'of' reduce using rule 161 + 'representational'reduce using rule 161 + 'role' reduce using rule 161 + 'then' reduce using rule 161 + 'true' reduce using rule 161 + 'where' reduce using rule 161 + '(..)' reduce using rule 161 + LOWER reduce using rule 161 + QUAL_LOWER reduce using rule 161 + UPPER reduce using rule 161 + QUAL_UPPER reduce using rule 161 + SYMBOL reduce using rule 161 + QUAL_SYMBOL reduce using rule 161 + OPERATOR reduce using rule 161 + QUAL_OPERATOR reduce using rule 161 + LIT_HOLE reduce using rule 161 + LIT_CHAR reduce using rule 161 + LIT_STRING reduce using rule 161 + LIT_RAW_STRING reduce using rule 161 + LIT_INT reduce using rule 161 + LIT_NUMBER reduce using rule 161 + %eof reduce using rule 161 + + +State 376 + + recordUpdateOrLabel -> label . ':' expr (rule 191) + recordUpdateOrLabel -> label . (rule 192) + recordUpdateOrLabel -> label . '=' expr (rule 193) + recordUpdateOrLabel -> label . '{' sep__recordUpdate__','__ '}' (rule 194) + + '{' shift, and enter state 554 + '}' reduce using rule 192 + ':' shift, and enter state 555 + '=' shift, and enter state 556 + ',' reduce using rule 192 + + +State 377 + + sep1__recordUpdateOrLabel__','__ -> recordUpdateOrLabel . (rule 423) + + '}' reduce using rule 423 + ',' reduce using rule 423 + + +State 378 + + expr6 -> expr7 '{' sep__recordUpdateOrLabel__','__ . '}' (rule 173) + + '}' shift, and enter state 553 + + +State 379 + + sep__recordUpdateOrLabel__','__ -> sep1__recordUpdateOrLabel__','__ . (rule 372) + sep1__recordUpdateOrLabel__','__ -> sep1__recordUpdateOrLabel__','__ . ',' recordUpdateOrLabel (rule 424) + + '}' reduce using rule 372 + ',' shift, and enter state 552 + + +State 380 + + expr6 -> expr7 '{' '}' . (rule 172) + + error reduce using rule 172 + '(' reduce using rule 172 + ')' reduce using rule 172 + '{' reduce using rule 172 + '}' reduce using rule 172 + '[' reduce using rule 172 + ']' reduce using rule 172 + '\}' reduce using rule 172 + '\;' reduce using rule 172 + '<=' reduce using rule 172 + ':' reduce using rule 172 + '::' reduce using rule 172 + '|' reduce using rule 172 + '`' reduce using rule 172 + ',' reduce using rule 172 + '_' reduce using rule 172 + '\\' reduce using rule 172 + '-' reduce using rule 172 + '@' reduce using rule 172 + 'ado' reduce using rule 172 + 'as' reduce using rule 172 + 'case' reduce using rule 172 + 'do' reduce using rule 172 + 'else' reduce using rule 172 + 'false' reduce using rule 172 + 'hiding' reduce using rule 172 + 'if' reduce using rule 172 + 'let' reduce using rule 172 + 'nominal' reduce using rule 172 + 'phantom' reduce using rule 172 + 'of' reduce using rule 172 + 'representational'reduce using rule 172 + 'role' reduce using rule 172 + 'then' reduce using rule 172 + 'true' reduce using rule 172 + 'where' reduce using rule 172 + '(..)' reduce using rule 172 + LOWER reduce using rule 172 + QUAL_LOWER reduce using rule 172 + UPPER reduce using rule 172 + QUAL_UPPER reduce using rule 172 + SYMBOL reduce using rule 172 + QUAL_SYMBOL reduce using rule 172 + OPERATOR reduce using rule 172 + QUAL_OPERATOR reduce using rule 172 + LIT_HOLE reduce using rule 172 + LIT_CHAR reduce using rule 172 + LIT_STRING reduce using rule 172 + LIT_RAW_STRING reduce using rule 172 + LIT_INT reduce using rule 172 + LIT_NUMBER reduce using rule 172 + %eof reduce using rule 172 + + +State 381 + + sep1__label__'.'__ -> label . (rule 417) + + error reduce using rule 417 + '(' reduce using rule 417 + ')' reduce using rule 417 + '{' reduce using rule 417 + '}' reduce using rule 417 + '[' reduce using rule 417 + ']' reduce using rule 417 + '\}' reduce using rule 417 + '\;' reduce using rule 417 + '<=' reduce using rule 417 + ':' reduce using rule 417 + '::' reduce using rule 417 + '|' reduce using rule 417 + '`' reduce using rule 417 + '.' reduce using rule 417 + ',' reduce using rule 417 + '_' reduce using rule 417 + '\\' reduce using rule 417 + '-' reduce using rule 417 + '@' reduce using rule 417 + 'ado' reduce using rule 417 + 'as' reduce using rule 417 + 'case' reduce using rule 417 + 'do' reduce using rule 417 + 'else' reduce using rule 417 + 'false' reduce using rule 417 + 'hiding' reduce using rule 417 + 'if' reduce using rule 417 + 'let' reduce using rule 417 + 'nominal' reduce using rule 417 + 'phantom' reduce using rule 417 + 'of' reduce using rule 417 + 'representational'reduce using rule 417 + 'role' reduce using rule 417 + 'then' reduce using rule 417 + 'true' reduce using rule 417 + 'where' reduce using rule 417 + '(..)' reduce using rule 417 + LOWER reduce using rule 417 + QUAL_LOWER reduce using rule 417 + UPPER reduce using rule 417 + QUAL_UPPER reduce using rule 417 + SYMBOL reduce using rule 417 + QUAL_SYMBOL reduce using rule 417 + OPERATOR reduce using rule 417 + QUAL_OPERATOR reduce using rule 417 + LIT_HOLE reduce using rule 417 + LIT_CHAR reduce using rule 417 + LIT_STRING reduce using rule 417 + LIT_RAW_STRING reduce using rule 417 + LIT_INT reduce using rule 417 + LIT_NUMBER reduce using rule 417 + %eof reduce using rule 417 + + +State 382 + + expr7 -> exprAtom '.' sep__label__'.'__ . (rule 175) + + error reduce using rule 175 + '(' reduce using rule 175 + ')' reduce using rule 175 + '{' reduce using rule 175 + '}' reduce using rule 175 + '[' reduce using rule 175 + ']' reduce using rule 175 + '\}' reduce using rule 175 + '\;' reduce using rule 175 + '<=' reduce using rule 175 + ':' reduce using rule 175 + '::' reduce using rule 175 + '|' reduce using rule 175 + '`' reduce using rule 175 + ',' reduce using rule 175 + '_' reduce using rule 175 + '\\' reduce using rule 175 + '-' reduce using rule 175 + '@' reduce using rule 175 + 'ado' reduce using rule 175 + 'as' reduce using rule 175 + 'case' reduce using rule 175 + 'do' reduce using rule 175 + 'else' reduce using rule 175 + 'false' reduce using rule 175 + 'hiding' reduce using rule 175 + 'if' reduce using rule 175 + 'let' reduce using rule 175 + 'nominal' reduce using rule 175 + 'phantom' reduce using rule 175 + 'of' reduce using rule 175 + 'representational'reduce using rule 175 + 'role' reduce using rule 175 + 'then' reduce using rule 175 + 'true' reduce using rule 175 + 'where' reduce using rule 175 + '(..)' reduce using rule 175 + LOWER reduce using rule 175 + QUAL_LOWER reduce using rule 175 + UPPER reduce using rule 175 + QUAL_UPPER reduce using rule 175 + SYMBOL reduce using rule 175 + QUAL_SYMBOL reduce using rule 175 + OPERATOR reduce using rule 175 + QUAL_OPERATOR reduce using rule 175 + LIT_HOLE reduce using rule 175 + LIT_CHAR reduce using rule 175 + LIT_STRING reduce using rule 175 + LIT_RAW_STRING reduce using rule 175 + LIT_INT reduce using rule 175 + LIT_NUMBER reduce using rule 175 + %eof reduce using rule 175 + + +State 383 + + sep__label__'.'__ -> sep1__label__'.'__ . (rule 369) + sep1__label__'.'__ -> sep1__label__'.'__ . '.' label (rule 418) + + error reduce using rule 369 + '(' reduce using rule 369 + ')' reduce using rule 369 + '{' reduce using rule 369 + '}' reduce using rule 369 + '[' reduce using rule 369 + ']' reduce using rule 369 + '\}' reduce using rule 369 + '\;' reduce using rule 369 + '<=' reduce using rule 369 + ':' reduce using rule 369 + '::' reduce using rule 369 + '|' reduce using rule 369 + '`' reduce using rule 369 + '.' shift, and enter state 551 + ',' reduce using rule 369 + '_' reduce using rule 369 + '\\' reduce using rule 369 + '-' reduce using rule 369 + '@' reduce using rule 369 + 'ado' reduce using rule 369 + 'as' reduce using rule 369 + 'case' reduce using rule 369 + 'do' reduce using rule 369 + 'else' reduce using rule 369 + 'false' reduce using rule 369 + 'hiding' reduce using rule 369 + 'if' reduce using rule 369 + 'let' reduce using rule 369 + 'nominal' reduce using rule 369 + 'phantom' reduce using rule 369 + 'of' reduce using rule 369 + 'representational'reduce using rule 369 + 'role' reduce using rule 369 + 'then' reduce using rule 369 + 'true' reduce using rule 369 + 'where' reduce using rule 369 + '(..)' reduce using rule 369 + LOWER reduce using rule 369 + QUAL_LOWER reduce using rule 369 + UPPER reduce using rule 369 + QUAL_UPPER reduce using rule 369 + SYMBOL reduce using rule 369 + QUAL_SYMBOL reduce using rule 369 + OPERATOR reduce using rule 369 + QUAL_OPERATOR reduce using rule 369 + LIT_HOLE reduce using rule 369 + LIT_CHAR reduce using rule 369 + LIT_STRING reduce using rule 369 + LIT_RAW_STRING reduce using rule 369 + LIT_INT reduce using rule 369 + LIT_NUMBER reduce using rule 369 + %eof reduce using rule 369 + + +State 384 + + expr5 -> adoBlock 'in' expr . (rule 165) + + error reduce using rule 165 + '(' reduce using rule 165 + ')' reduce using rule 165 + '{' reduce using rule 165 + '}' reduce using rule 165 + '[' reduce using rule 165 + ']' reduce using rule 165 + '\}' reduce using rule 165 + '\;' reduce using rule 165 + '<=' reduce using rule 165 + ':' reduce using rule 165 + '::' reduce using rule 165 + '|' reduce using rule 165 + '`' reduce using rule 165 + ',' reduce using rule 165 + '_' reduce using rule 165 + '\\' reduce using rule 165 + '-' reduce using rule 165 + '@' reduce using rule 165 + 'ado' reduce using rule 165 + 'as' reduce using rule 165 + 'case' reduce using rule 165 + 'do' reduce using rule 165 + 'else' reduce using rule 165 + 'false' reduce using rule 165 + 'hiding' reduce using rule 165 + 'if' reduce using rule 165 + 'let' reduce using rule 165 + 'nominal' reduce using rule 165 + 'phantom' reduce using rule 165 + 'of' reduce using rule 165 + 'representational'reduce using rule 165 + 'role' reduce using rule 165 + 'then' reduce using rule 165 + 'true' reduce using rule 165 + 'where' reduce using rule 165 + '(..)' reduce using rule 165 + LOWER reduce using rule 165 + QUAL_LOWER reduce using rule 165 + UPPER reduce using rule 165 + QUAL_UPPER reduce using rule 165 + SYMBOL reduce using rule 165 + QUAL_SYMBOL reduce using rule 165 + OPERATOR reduce using rule 165 + QUAL_OPERATOR reduce using rule 165 + LIT_HOLE reduce using rule 165 + LIT_CHAR reduce using rule 165 + LIT_STRING reduce using rule 165 + LIT_RAW_STRING reduce using rule 165 + LIT_INT reduce using rule 165 + LIT_NUMBER reduce using rule 165 + %eof reduce using rule 165 + + +State 385 + + exprAtom -> '(' expr ')' . (rule 187) + + error reduce using rule 187 + '(' reduce using rule 187 + ')' reduce using rule 187 + '{' reduce using rule 187 + '}' reduce using rule 187 + '[' reduce using rule 187 + ']' reduce using rule 187 + '\}' reduce using rule 187 + '\;' reduce using rule 187 + '<=' reduce using rule 187 + ':' reduce using rule 187 + '::' reduce using rule 187 + '|' reduce using rule 187 + '`' reduce using rule 187 + '.' reduce using rule 187 + ',' reduce using rule 187 + '_' reduce using rule 187 + '\\' reduce using rule 187 + '-' reduce using rule 187 + '@' reduce using rule 187 + 'ado' reduce using rule 187 + 'as' reduce using rule 187 + 'case' reduce using rule 187 + 'do' reduce using rule 187 + 'else' reduce using rule 187 + 'false' reduce using rule 187 + 'hiding' reduce using rule 187 + 'if' reduce using rule 187 + 'let' reduce using rule 187 + 'nominal' reduce using rule 187 + 'phantom' reduce using rule 187 + 'of' reduce using rule 187 + 'representational'reduce using rule 187 + 'role' reduce using rule 187 + 'then' reduce using rule 187 + 'true' reduce using rule 187 + 'where' reduce using rule 187 + '(..)' reduce using rule 187 + LOWER reduce using rule 187 + QUAL_LOWER reduce using rule 187 + UPPER reduce using rule 187 + QUAL_UPPER reduce using rule 187 + SYMBOL reduce using rule 187 + QUAL_SYMBOL reduce using rule 187 + OPERATOR reduce using rule 187 + QUAL_OPERATOR reduce using rule 187 + LIT_HOLE reduce using rule 187 + LIT_CHAR reduce using rule 187 + LIT_STRING reduce using rule 187 + LIT_RAW_STRING reduce using rule 187 + LIT_INT reduce using rule 187 + LIT_NUMBER reduce using rule 187 + %eof reduce using rule 187 + + +State 386 + + sep1__recordLabel__','__ -> sep1__recordLabel__','__ ',' . recordLabel (rule 436) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 315 + recordLabel goto state 550 + +State 387 + + delim__'{'__recordLabel__','__'}'__ -> '{' sep__recordLabel__','__ '}' . (rule 341) + + error reduce using rule 341 + '(' reduce using rule 341 + ')' reduce using rule 341 + '{' reduce using rule 341 + '}' reduce using rule 341 + '[' reduce using rule 341 + ']' reduce using rule 341 + '\}' reduce using rule 341 + '\;' reduce using rule 341 + '<=' reduce using rule 341 + ':' reduce using rule 341 + '::' reduce using rule 341 + '|' reduce using rule 341 + '`' reduce using rule 341 + '.' reduce using rule 341 + ',' reduce using rule 341 + '_' reduce using rule 341 + '\\' reduce using rule 341 + '-' reduce using rule 341 + '@' reduce using rule 341 + 'ado' reduce using rule 341 + 'as' reduce using rule 341 + 'case' reduce using rule 341 + 'do' reduce using rule 341 + 'else' reduce using rule 341 + 'false' reduce using rule 341 + 'hiding' reduce using rule 341 + 'if' reduce using rule 341 + 'let' reduce using rule 341 + 'nominal' reduce using rule 341 + 'phantom' reduce using rule 341 + 'of' reduce using rule 341 + 'representational'reduce using rule 341 + 'role' reduce using rule 341 + 'then' reduce using rule 341 + 'true' reduce using rule 341 + 'where' reduce using rule 341 + '(..)' reduce using rule 341 + LOWER reduce using rule 341 + QUAL_LOWER reduce using rule 341 + UPPER reduce using rule 341 + QUAL_UPPER reduce using rule 341 + SYMBOL reduce using rule 341 + QUAL_SYMBOL reduce using rule 341 + OPERATOR reduce using rule 341 + QUAL_OPERATOR reduce using rule 341 + LIT_HOLE reduce using rule 341 + LIT_CHAR reduce using rule 341 + LIT_STRING reduce using rule 341 + LIT_RAW_STRING reduce using rule 341 + LIT_INT reduce using rule 341 + LIT_NUMBER reduce using rule 341 + %eof reduce using rule 341 + + +State 388 + + recordLabel -> label ':' . expr (rule 190) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 549 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 389 + + recordLabel -> label '=' . expr (rule 189) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 548 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 390 + + delim__'['__expr__','__']'__ -> '[' sep__expr__','__ ']' . (rule 337) + + error reduce using rule 337 + '(' reduce using rule 337 + ')' reduce using rule 337 + '{' reduce using rule 337 + '}' reduce using rule 337 + '[' reduce using rule 337 + ']' reduce using rule 337 + '\}' reduce using rule 337 + '\;' reduce using rule 337 + '<=' reduce using rule 337 + ':' reduce using rule 337 + '::' reduce using rule 337 + '|' reduce using rule 337 + '`' reduce using rule 337 + '.' reduce using rule 337 + ',' reduce using rule 337 + '_' reduce using rule 337 + '\\' reduce using rule 337 + '-' reduce using rule 337 + '@' reduce using rule 337 + 'ado' reduce using rule 337 + 'as' reduce using rule 337 + 'case' reduce using rule 337 + 'do' reduce using rule 337 + 'else' reduce using rule 337 + 'false' reduce using rule 337 + 'hiding' reduce using rule 337 + 'if' reduce using rule 337 + 'let' reduce using rule 337 + 'nominal' reduce using rule 337 + 'phantom' reduce using rule 337 + 'of' reduce using rule 337 + 'representational'reduce using rule 337 + 'role' reduce using rule 337 + 'then' reduce using rule 337 + 'true' reduce using rule 337 + 'where' reduce using rule 337 + '(..)' reduce using rule 337 + LOWER reduce using rule 337 + QUAL_LOWER reduce using rule 337 + UPPER reduce using rule 337 + QUAL_UPPER reduce using rule 337 + SYMBOL reduce using rule 337 + QUAL_SYMBOL reduce using rule 337 + OPERATOR reduce using rule 337 + QUAL_OPERATOR reduce using rule 337 + LIT_HOLE reduce using rule 337 + LIT_CHAR reduce using rule 337 + LIT_STRING reduce using rule 337 + LIT_RAW_STRING reduce using rule 337 + LIT_INT reduce using rule 337 + LIT_NUMBER reduce using rule 337 + %eof reduce using rule 337 + + +State 391 + + expr5 -> '\\' many__binderAtom__ '->' . expr (rule 166) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 547 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 392 + + adoBlock -> 'ado' '\{' '\}' . (rule 209) + + 'in' reduce using rule 209 + + +State 393 + + sep1__expr__','__ -> sep1__expr__','__ ',' . expr (rule 412) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 546 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 394 + + expr5 -> 'case' sep__expr__','__ 'of' . '\{' manySep__caseBranch__'\;'__ '\}' (rule 168) + expr5 -> 'case' sep__expr__','__ 'of' . '\{' sep__binder1__','__ '->' '\}' exprWhere (rule 169) + expr5 -> 'case' sep__expr__','__ 'of' . '\{' sep__binder1__','__ '\}' guardedCase (rule 170) + + '\{' shift, and enter state 545 + + +State 395 + + expr5 -> 'if' expr 'then' . expr 'else' expr (rule 163) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 544 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 396 + + letBinding -> ident . '::' type (rule 197) + letBinding -> ident . guardedDecl (rule 198) + letBinding -> ident . many__binderAtom__ guardedDecl (rule 199) + binderAtom -> ident . (rule 229) + binderAtom -> ident . '@' binderAtom (rule 230) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '<=' reduce using rule 229 + ':' reduce using rule 229 + '::' shift, and enter state 543 + '=' shift, and enter state 433 + '|' shift, and enter state 434 + '_' shift, and enter state 43 + '-' reduce using rule 229 + '@' shift, and enter state 354 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + OPERATOR reduce using rule 229 + QUAL_OPERATOR reduce using rule 229 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + guardedDecl goto state 541 + guardedDeclExprgoto state 429 + guard goto state 430 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 542 + many__guardedDeclExpr__goto state 431 + many1__binderAtom__goto state 39 + many1__guardedDeclExpr__goto state 432 + +State 397 + + manySep1__letBinding__'\;'__ -> letBinding . (rule 394) + + '\}' reduce using rule 394 + '\;' reduce using rule 394 + + +State 398 + + letBinding -> binder1 . '=' exprWhere (rule 200) + binder1 -> binder1 . qualOp binder2 (rule 225) + + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '=' shift, and enter state 540 + '-' shift, and enter state 296 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + + qualOp goto state 351 + +State 399 + + expr5 -> 'let' '\{' manySep__letBinding__'\;'__ . '\}' 'in' expr (rule 167) + + '\}' shift, and enter state 539 + + +State 400 + + manySep__letBinding__'\;'__ -> manySep1__letBinding__'\;'__ . (rule 359) + manySep1__letBinding__'\;'__ -> manySep1__letBinding__'\;'__ . '\;' letBinding (rule 395) + + '\}' reduce using rule 359 + '\;' shift, and enter state 538 + + +State 401 + + expr -> expr1 '::' type . (rule 150) + + error reduce using rule 150 + '(' reduce using rule 150 + ')' reduce using rule 150 + '{' reduce using rule 150 + '}' reduce using rule 150 + '[' reduce using rule 150 + ']' reduce using rule 150 + '\}' reduce using rule 150 + '\;' reduce using rule 150 + '<=' reduce using rule 150 + ':' reduce using rule 150 + '::' reduce using rule 150 + '|' reduce using rule 150 + '`' reduce using rule 150 + ',' reduce using rule 150 + '_' reduce using rule 150 + '\\' reduce using rule 150 + '-' reduce using rule 150 + '@' reduce using rule 150 + 'ado' reduce using rule 150 + 'as' reduce using rule 150 + 'case' reduce using rule 150 + 'do' reduce using rule 150 + 'else' reduce using rule 150 + 'false' reduce using rule 150 + 'hiding' reduce using rule 150 + 'if' reduce using rule 150 + 'let' reduce using rule 150 + 'nominal' reduce using rule 150 + 'phantom' reduce using rule 150 + 'of' reduce using rule 150 + 'representational'reduce using rule 150 + 'role' reduce using rule 150 + 'then' reduce using rule 150 + 'true' reduce using rule 150 + 'where' reduce using rule 150 + '(..)' reduce using rule 150 + LOWER reduce using rule 150 + QUAL_LOWER reduce using rule 150 + UPPER reduce using rule 150 + QUAL_UPPER reduce using rule 150 + SYMBOL reduce using rule 150 + QUAL_SYMBOL reduce using rule 150 + OPERATOR reduce using rule 150 + QUAL_OPERATOR reduce using rule 150 + LIT_HOLE reduce using rule 150 + LIT_CHAR reduce using rule 150 + LIT_STRING reduce using rule 150 + LIT_RAW_STRING reduce using rule 150 + LIT_INT reduce using rule 150 + LIT_NUMBER reduce using rule 150 + %eof reduce using rule 150 + + +State 402 + + expr1 -> expr1 qualOp expr2 . (rule 152) + expr2 -> expr2 . '`' exprBacktick '`' expr3 (rule 154) + + error reduce using rule 152 + '(' reduce using rule 152 + ')' reduce using rule 152 + '{' reduce using rule 152 + '}' reduce using rule 152 + '[' reduce using rule 152 + ']' reduce using rule 152 + '\}' reduce using rule 152 + '\;' reduce using rule 152 + '<=' reduce using rule 152 + ':' reduce using rule 152 + '::' reduce using rule 152 + '|' reduce using rule 152 + '`' shift, and enter state 326 + ',' reduce using rule 152 + '_' reduce using rule 152 + '\\' reduce using rule 152 + '-' reduce using rule 152 + '@' reduce using rule 152 + 'ado' reduce using rule 152 + 'as' reduce using rule 152 + 'case' reduce using rule 152 + 'do' reduce using rule 152 + 'else' reduce using rule 152 + 'false' reduce using rule 152 + 'hiding' reduce using rule 152 + 'if' reduce using rule 152 + 'let' reduce using rule 152 + 'nominal' reduce using rule 152 + 'phantom' reduce using rule 152 + 'of' reduce using rule 152 + 'representational'reduce using rule 152 + 'role' reduce using rule 152 + 'then' reduce using rule 152 + 'true' reduce using rule 152 + 'where' reduce using rule 152 + '(..)' reduce using rule 152 + LOWER reduce using rule 152 + QUAL_LOWER reduce using rule 152 + UPPER reduce using rule 152 + QUAL_UPPER reduce using rule 152 + SYMBOL reduce using rule 152 + QUAL_SYMBOL reduce using rule 152 + OPERATOR reduce using rule 152 + QUAL_OPERATOR reduce using rule 152 + LIT_HOLE reduce using rule 152 + LIT_CHAR reduce using rule 152 + LIT_STRING reduce using rule 152 + LIT_RAW_STRING reduce using rule 152 + LIT_INT reduce using rule 152 + LIT_NUMBER reduce using rule 152 + %eof reduce using rule 152 + + +State 403 + + doStatement -> 'let' '\{' manySep__letBinding__'\;'__ . '\}' (rule 211) + + '\}' shift, and enter state 537 + + +State 404 + + moduleHeader -> 'module' moduleName exports . 'where' '\{' moduleImports (rule 242) + + 'where' shift, and enter state 536 + + +State 405 + + exports -> '(' . sep__export__','__ ')' (rule 255) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 533 + 'hiding' shift, and enter state 47 + 'module' shift, and enter state 534 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 535 + '(..)' shift, and enter state 479 + LOWER shift, and enter state 53 + UPPER shift, and enter state 63 + SYMBOL shift, and enter state 480 + + properName goto state 527 + ident goto state 528 + symbol goto state 529 + export goto state 530 + sep__export__','__goto state 531 + sep1__export__','__goto state 532 + +State 406 + + type -> type1 '::' type . (rule 101) + + error reduce using rule 101 + '(' reduce using rule 101 + ')' reduce using rule 101 + '{' reduce using rule 101 + '}' reduce using rule 101 + '[' reduce using rule 101 + ']' reduce using rule 101 + '\}' reduce using rule 101 + '\;' reduce using rule 101 + '<-' reduce using rule 101 + '<=' reduce using rule 101 + ':' reduce using rule 101 + '::' reduce using rule 101 + '|' reduce using rule 101 + '`' reduce using rule 101 + ',' reduce using rule 101 + '_' reduce using rule 101 + '\\' reduce using rule 101 + '-' reduce using rule 101 + '@' reduce using rule 101 + 'ado' reduce using rule 101 + 'as' reduce using rule 101 + 'case' reduce using rule 101 + 'do' reduce using rule 101 + 'else' reduce using rule 101 + 'false' reduce using rule 101 + 'hiding' reduce using rule 101 + 'if' reduce using rule 101 + 'let' reduce using rule 101 + 'nominal' reduce using rule 101 + 'phantom' reduce using rule 101 + 'of' reduce using rule 101 + 'representational'reduce using rule 101 + 'role' reduce using rule 101 + 'then' reduce using rule 101 + 'true' reduce using rule 101 + 'where' reduce using rule 101 + '(..)' reduce using rule 101 + LOWER reduce using rule 101 + QUAL_LOWER reduce using rule 101 + UPPER reduce using rule 101 + QUAL_UPPER reduce using rule 101 + SYMBOL reduce using rule 101 + QUAL_SYMBOL reduce using rule 101 + OPERATOR reduce using rule 101 + QUAL_OPERATOR reduce using rule 101 + LIT_HOLE reduce using rule 101 + LIT_CHAR reduce using rule 101 + LIT_STRING reduce using rule 101 + LIT_RAW_STRING reduce using rule 101 + LIT_INT reduce using rule 101 + LIT_NUMBER reduce using rule 101 + %eof reduce using rule 101 + + +State 407 + + type2 -> type3 '=>' type1 . (rule 106) + + error reduce using rule 106 + '(' reduce using rule 106 + ')' reduce using rule 106 + '{' reduce using rule 106 + '}' reduce using rule 106 + '[' reduce using rule 106 + ']' reduce using rule 106 + '\}' reduce using rule 106 + '\;' reduce using rule 106 + '<-' reduce using rule 106 + '<=' reduce using rule 106 + ':' reduce using rule 106 + '::' reduce using rule 106 + '|' reduce using rule 106 + '`' reduce using rule 106 + ',' reduce using rule 106 + '_' reduce using rule 106 + '\\' reduce using rule 106 + '-' reduce using rule 106 + '@' reduce using rule 106 + 'ado' reduce using rule 106 + 'as' reduce using rule 106 + 'case' reduce using rule 106 + 'do' reduce using rule 106 + 'else' reduce using rule 106 + 'false' reduce using rule 106 + 'hiding' reduce using rule 106 + 'if' reduce using rule 106 + 'let' reduce using rule 106 + 'nominal' reduce using rule 106 + 'phantom' reduce using rule 106 + 'of' reduce using rule 106 + 'representational'reduce using rule 106 + 'role' reduce using rule 106 + 'then' reduce using rule 106 + 'true' reduce using rule 106 + 'where' reduce using rule 106 + '(..)' reduce using rule 106 + LOWER reduce using rule 106 + QUAL_LOWER reduce using rule 106 + UPPER reduce using rule 106 + QUAL_UPPER reduce using rule 106 + SYMBOL reduce using rule 106 + QUAL_SYMBOL reduce using rule 106 + OPERATOR reduce using rule 106 + QUAL_OPERATOR reduce using rule 106 + LIT_HOLE reduce using rule 106 + LIT_CHAR reduce using rule 106 + LIT_STRING reduce using rule 106 + LIT_RAW_STRING reduce using rule 106 + LIT_INT reduce using rule 106 + LIT_NUMBER reduce using rule 106 + %eof reduce using rule 106 + + +State 408 + + type2 -> type3 '->' type1 . (rule 105) + + error reduce using rule 105 + '(' reduce using rule 105 + ')' reduce using rule 105 + '{' reduce using rule 105 + '}' reduce using rule 105 + '[' reduce using rule 105 + ']' reduce using rule 105 + '\}' reduce using rule 105 + '\;' reduce using rule 105 + '<-' reduce using rule 105 + '<=' reduce using rule 105 + ':' reduce using rule 105 + '::' reduce using rule 105 + '|' reduce using rule 105 + '`' reduce using rule 105 + ',' reduce using rule 105 + '_' reduce using rule 105 + '\\' reduce using rule 105 + '-' reduce using rule 105 + '@' reduce using rule 105 + 'ado' reduce using rule 105 + 'as' reduce using rule 105 + 'case' reduce using rule 105 + 'do' reduce using rule 105 + 'else' reduce using rule 105 + 'false' reduce using rule 105 + 'hiding' reduce using rule 105 + 'if' reduce using rule 105 + 'let' reduce using rule 105 + 'nominal' reduce using rule 105 + 'phantom' reduce using rule 105 + 'of' reduce using rule 105 + 'representational'reduce using rule 105 + 'role' reduce using rule 105 + 'then' reduce using rule 105 + 'true' reduce using rule 105 + 'where' reduce using rule 105 + '(..)' reduce using rule 105 + LOWER reduce using rule 105 + QUAL_LOWER reduce using rule 105 + UPPER reduce using rule 105 + QUAL_UPPER reduce using rule 105 + SYMBOL reduce using rule 105 + QUAL_SYMBOL reduce using rule 105 + OPERATOR reduce using rule 105 + QUAL_OPERATOR reduce using rule 105 + LIT_HOLE reduce using rule 105 + LIT_CHAR reduce using rule 105 + LIT_STRING reduce using rule 105 + LIT_RAW_STRING reduce using rule 105 + LIT_INT reduce using rule 105 + LIT_NUMBER reduce using rule 105 + %eof reduce using rule 105 + + +State 409 + + type3 -> type3 qualOp type4 . (rule 108) + + error reduce using rule 108 + '(' reduce using rule 108 + ')' reduce using rule 108 + '{' reduce using rule 108 + '}' reduce using rule 108 + '[' reduce using rule 108 + ']' reduce using rule 108 + '\}' reduce using rule 108 + '\;' reduce using rule 108 + '<-' reduce using rule 108 + '->' reduce using rule 108 + '<=' reduce using rule 108 + '=>' reduce using rule 108 + ':' reduce using rule 108 + '::' reduce using rule 108 + '|' reduce using rule 108 + '`' reduce using rule 108 + ',' reduce using rule 108 + '_' reduce using rule 108 + '\\' reduce using rule 108 + '-' reduce using rule 108 + '@' reduce using rule 108 + 'ado' reduce using rule 108 + 'as' reduce using rule 108 + 'case' reduce using rule 108 + 'do' reduce using rule 108 + 'else' reduce using rule 108 + 'false' reduce using rule 108 + 'hiding' reduce using rule 108 + 'if' reduce using rule 108 + 'let' reduce using rule 108 + 'nominal' reduce using rule 108 + 'phantom' reduce using rule 108 + 'of' reduce using rule 108 + 'representational'reduce using rule 108 + 'role' reduce using rule 108 + 'then' reduce using rule 108 + 'true' reduce using rule 108 + 'where' reduce using rule 108 + '(..)' reduce using rule 108 + LOWER reduce using rule 108 + QUAL_LOWER reduce using rule 108 + UPPER reduce using rule 108 + QUAL_UPPER reduce using rule 108 + SYMBOL reduce using rule 108 + QUAL_SYMBOL reduce using rule 108 + OPERATOR reduce using rule 108 + QUAL_OPERATOR reduce using rule 108 + LIT_HOLE reduce using rule 108 + LIT_CHAR reduce using rule 108 + LIT_STRING reduce using rule 108 + LIT_RAW_STRING reduce using rule 108 + LIT_INT reduce using rule 108 + LIT_NUMBER reduce using rule 108 + %eof reduce using rule 108 + + +State 410 + + typeVarBinding -> '@' ident . (rule 140) + + error reduce using rule 140 + '(' reduce using rule 140 + '|' reduce using rule 140 + '.' reduce using rule 140 + '@' reduce using rule 140 + 'as' reduce using rule 140 + 'hiding' reduce using rule 140 + 'nominal' reduce using rule 140 + 'phantom' reduce using rule 140 + 'representational'reduce using rule 140 + 'role' reduce using rule 140 + LOWER reduce using rule 140 + + +State 411 + + typeVarBinding -> '(' ident . '::' type ')' (rule 141) + + '::' shift, and enter state 526 + + +State 412 + + typeVarBinding -> '(' '@' . ident '::' type ')' (rule 142) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 525 + +State 413 + + many1__typeVarBinding__ -> many1__typeVarBinding__ typeVarBinding . (rule 387) + + error reduce using rule 387 + '(' reduce using rule 387 + '|' reduce using rule 387 + '.' reduce using rule 387 + '@' reduce using rule 387 + 'as' reduce using rule 387 + 'hiding' reduce using rule 387 + 'nominal' reduce using rule 387 + 'phantom' reduce using rule 387 + 'representational'reduce using rule 387 + 'role' reduce using rule 387 + LOWER reduce using rule 387 + + +State 414 + + type1 -> forall many__typeVarBinding__ '.' . type1 (rule 103) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type1 goto state 524 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 415 + + typeAtom -> '{' row . '}' (rule 121) + typeKindedAtom -> '{' row . '}' (rule 130) + + '}' shift, and enter state 523 + + +State 416 + + typeAtom -> '(' type1 . ')' (rule 123) + typeKindedAtom -> '(' type1 . ')' (rule 132) + + ')' shift, and enter state 522 + + +State 417 + + typeAtom -> '(' typeKindedAtom . '::' type ')' (rule 124) + typeKindedAtom -> '(' typeKindedAtom . '::' type ')' (rule 133) + + '::' shift, and enter state 521 + + +State 418 + + typeAtom -> '(' row . ')' (rule 122) + typeKindedAtom -> '(' row . ')' (rule 131) + + ')' shift, and enter state 520 + + +State 419 + + typeAtom -> '(' row ')' . (rule 122) + + error reduce using rule 122 + '(' reduce using rule 122 + ')' reduce using rule 122 + '{' reduce using rule 122 + '}' reduce using rule 122 + '[' reduce using rule 122 + ']' reduce using rule 122 + '\}' reduce using rule 122 + '\;' reduce using rule 122 + '<-' reduce using rule 122 + '->' reduce using rule 122 + '<=' reduce using rule 122 + '=>' reduce using rule 122 + ':' reduce using rule 122 + '::' reduce using rule 122 + '|' reduce using rule 122 + '`' reduce using rule 122 + ',' reduce using rule 122 + '_' reduce using rule 122 + '\\' reduce using rule 122 + '-' reduce using rule 122 + '@' reduce using rule 122 + 'ado' reduce using rule 122 + 'as' reduce using rule 122 + 'case' reduce using rule 122 + 'do' reduce using rule 122 + 'else' reduce using rule 122 + 'false' reduce using rule 122 + 'hiding' reduce using rule 122 + 'if' reduce using rule 122 + 'let' reduce using rule 122 + 'nominal' reduce using rule 122 + 'phantom' reduce using rule 122 + 'of' reduce using rule 122 + 'representational'reduce using rule 122 + 'role' reduce using rule 122 + 'then' reduce using rule 122 + 'true' reduce using rule 122 + 'where' reduce using rule 122 + '(->)' reduce using rule 122 + '(..)' reduce using rule 122 + LOWER reduce using rule 122 + QUAL_LOWER reduce using rule 122 + UPPER reduce using rule 122 + QUAL_UPPER reduce using rule 122 + SYMBOL reduce using rule 122 + QUAL_SYMBOL reduce using rule 122 + OPERATOR reduce using rule 122 + QUAL_OPERATOR reduce using rule 122 + LIT_HOLE reduce using rule 122 + LIT_CHAR reduce using rule 122 + LIT_STRING reduce using rule 122 + LIT_RAW_STRING reduce using rule 122 + LIT_INT reduce using rule 122 + LIT_NUMBER reduce using rule 122 + %eof reduce using rule 122 + + +State 420 + + typeAtom -> '(' typeKindedAtom '::' . type ')' (rule 124) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 519 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 421 + + typeAtom -> '(' type1 ')' . (rule 123) + + error reduce using rule 123 + '(' reduce using rule 123 + ')' reduce using rule 123 + '{' reduce using rule 123 + '}' reduce using rule 123 + '[' reduce using rule 123 + ']' reduce using rule 123 + '\}' reduce using rule 123 + '\;' reduce using rule 123 + '<-' reduce using rule 123 + '->' reduce using rule 123 + '<=' reduce using rule 123 + '=>' reduce using rule 123 + ':' reduce using rule 123 + '::' reduce using rule 123 + '|' reduce using rule 123 + '`' reduce using rule 123 + ',' reduce using rule 123 + '_' reduce using rule 123 + '\\' reduce using rule 123 + '-' reduce using rule 123 + '@' reduce using rule 123 + 'ado' reduce using rule 123 + 'as' reduce using rule 123 + 'case' reduce using rule 123 + 'do' reduce using rule 123 + 'else' reduce using rule 123 + 'false' reduce using rule 123 + 'hiding' reduce using rule 123 + 'if' reduce using rule 123 + 'let' reduce using rule 123 + 'nominal' reduce using rule 123 + 'phantom' reduce using rule 123 + 'of' reduce using rule 123 + 'representational'reduce using rule 123 + 'role' reduce using rule 123 + 'then' reduce using rule 123 + 'true' reduce using rule 123 + 'where' reduce using rule 123 + '(->)' reduce using rule 123 + '(..)' reduce using rule 123 + LOWER reduce using rule 123 + QUAL_LOWER reduce using rule 123 + UPPER reduce using rule 123 + QUAL_UPPER reduce using rule 123 + SYMBOL reduce using rule 123 + QUAL_SYMBOL reduce using rule 123 + OPERATOR reduce using rule 123 + QUAL_OPERATOR reduce using rule 123 + LIT_HOLE reduce using rule 123 + LIT_CHAR reduce using rule 123 + LIT_STRING reduce using rule 123 + LIT_RAW_STRING reduce using rule 123 + LIT_INT reduce using rule 123 + LIT_NUMBER reduce using rule 123 + %eof reduce using rule 123 + + +State 422 + + row -> '|' type . (rule 135) + + ')' reduce using rule 135 + '}' reduce using rule 135 + + +State 423 + + sep1__rowLabel__','__ -> sep1__rowLabel__','__ ',' . rowLabel (rule 426) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 224 + rowLabel goto state 518 + +State 424 + + row -> sep__rowLabel__','__ '|' . type (rule 137) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 517 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 425 + + typeAtom -> '{' row '}' . (rule 121) + + error reduce using rule 121 + '(' reduce using rule 121 + ')' reduce using rule 121 + '{' reduce using rule 121 + '}' reduce using rule 121 + '[' reduce using rule 121 + ']' reduce using rule 121 + '\}' reduce using rule 121 + '\;' reduce using rule 121 + '<-' reduce using rule 121 + '->' reduce using rule 121 + '<=' reduce using rule 121 + '=>' reduce using rule 121 + ':' reduce using rule 121 + '::' reduce using rule 121 + '|' reduce using rule 121 + '`' reduce using rule 121 + ',' reduce using rule 121 + '_' reduce using rule 121 + '\\' reduce using rule 121 + '-' reduce using rule 121 + '@' reduce using rule 121 + 'ado' reduce using rule 121 + 'as' reduce using rule 121 + 'case' reduce using rule 121 + 'do' reduce using rule 121 + 'else' reduce using rule 121 + 'false' reduce using rule 121 + 'hiding' reduce using rule 121 + 'if' reduce using rule 121 + 'let' reduce using rule 121 + 'nominal' reduce using rule 121 + 'phantom' reduce using rule 121 + 'of' reduce using rule 121 + 'representational'reduce using rule 121 + 'role' reduce using rule 121 + 'then' reduce using rule 121 + 'true' reduce using rule 121 + 'where' reduce using rule 121 + '(->)' reduce using rule 121 + '(..)' reduce using rule 121 + LOWER reduce using rule 121 + QUAL_LOWER reduce using rule 121 + UPPER reduce using rule 121 + QUAL_UPPER reduce using rule 121 + SYMBOL reduce using rule 121 + QUAL_SYMBOL reduce using rule 121 + OPERATOR reduce using rule 121 + QUAL_OPERATOR reduce using rule 121 + LIT_HOLE reduce using rule 121 + LIT_CHAR reduce using rule 121 + LIT_STRING reduce using rule 121 + LIT_RAW_STRING reduce using rule 121 + LIT_INT reduce using rule 121 + LIT_NUMBER reduce using rule 121 + %eof reduce using rule 121 + + +State 426 + + rowLabel -> label '::' . type (rule 138) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 516 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 427 + + decl -> ident '::' type . (rule 290) + + error reduce using rule 290 + '\}' reduce using rule 290 + '\;' reduce using rule 290 + 'else' reduce using rule 290 + %eof reduce using rule 290 + + +State 428 + + decl -> ident manyOrEmpty__binderAtom__ guardedDecl . (rule 291) + + error reduce using rule 291 + '\}' reduce using rule 291 + '\;' reduce using rule 291 + 'else' reduce using rule 291 + %eof reduce using rule 291 + + +State 429 + + many1__guardedDeclExpr__ -> guardedDeclExpr . (rule 380) + + error reduce using rule 380 + '\}' reduce using rule 380 + '\;' reduce using rule 380 + '|' reduce using rule 380 + 'else' reduce using rule 380 + %eof reduce using rule 380 + + +State 430 + + guardedDeclExpr -> guard . '=' exprWhere (rule 204) + + '=' shift, and enter state 515 + + +State 431 + + guardedDecl -> many__guardedDeclExpr__ . (rule 203) + + error reduce using rule 203 + '\}' reduce using rule 203 + '\;' reduce using rule 203 + 'else' reduce using rule 203 + %eof reduce using rule 203 + + +State 432 + + many__guardedDeclExpr__ -> many1__guardedDeclExpr__ . (rule 344) + many1__guardedDeclExpr__ -> many1__guardedDeclExpr__ . guardedDeclExpr (rule 381) + + error reduce using rule 344 + '\}' reduce using rule 344 + '\;' reduce using rule 344 + '|' shift, and enter state 434 + 'else' reduce using rule 344 + %eof reduce using rule 344 + + guardedDeclExprgoto state 514 + guard goto state 430 + +State 433 + + guardedDecl -> '=' . exprWhere (rule 202) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 512 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 434 + + guard -> '|' . (rule 216) + + '->' reduce using rule 216 + '=' reduce using rule 216 + + +State 435 + + dataCtor -> properName . manyOrEmpty__typeAtom__ (rule 299) + + error reduce using rule 350 + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '\}' reduce using rule 350 + '\;' reduce using rule 350 + '|' reduce using rule 350 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'else' reduce using rule 350 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + %eof reduce using rule 350 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 333 + manyOrEmpty__typeAtom__goto state 511 + many__typeAtom__goto state 335 + many1__typeAtom__goto state 336 + +State 436 + + sep1__dataCtor__'|'__ -> dataCtor . (rule 405) + + error reduce using rule 405 + '\}' reduce using rule 405 + '\;' reduce using rule 405 + '|' reduce using rule 405 + 'else' reduce using rule 405 + %eof reduce using rule 405 + + +State 437 + + decl -> dataHead '=' sep__dataCtor__'|'__ . (rule 278) + + error reduce using rule 278 + '\}' reduce using rule 278 + '\;' reduce using rule 278 + 'else' reduce using rule 278 + %eof reduce using rule 278 + + +State 438 + + sep__dataCtor__'|'__ -> sep1__dataCtor__'|'__ . (rule 363) + sep1__dataCtor__'|'__ -> sep1__dataCtor__'|'__ . '|' dataCtor (rule 406) + + error reduce using rule 363 + '\}' reduce using rule 363 + '\;' reduce using rule 363 + '|' shift, and enter state 510 + 'else' reduce using rule 363 + %eof reduce using rule 363 + + +State 439 + + decl -> typeHead '=' type . (rule 279) + + error reduce using rule 279 + '\}' reduce using rule 279 + '\;' reduce using rule 279 + 'else' reduce using rule 279 + %eof reduce using rule 279 + + +State 440 + + decl -> newtypeHead '=' properName . typeAtom (rule 280) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 509 + +State 441 + + decl -> classHead 'where' '\{' . manySep__classMember__'\;'__ '\}' (rule 282) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 505 + classMember goto state 506 + manySep__classMember__'\;'__goto state 507 + manySep1__classMember__'\;'__goto state 508 + +State 442 + + decl -> instHead 'where' '\{' . manySep__instBinding__'\;'__ '\}' (rule 284) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 501 + instBinding goto state 502 + manySep__instBinding__'\;'__goto state 503 + manySep1__instBinding__'\;'__goto state 504 + +State 443 + + fixity -> infix int qualProperName . 'as' op (rule 320) + + 'as' shift, and enter state 500 + + +State 444 + + fixity -> infix int qualIdent . 'as' op (rule 319) + + 'as' shift, and enter state 499 + + +State 445 + + fixity -> infix int 'type' . qualProperName 'as' op (rule 321) + + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 498 + +State 446 + + typeVarBindingPlain -> ident . (rule 143) + + error reduce using rule 143 + '(' reduce using rule 143 + '\}' reduce using rule 143 + '\;' reduce using rule 143 + '=' reduce using rule 143 + 'as' reduce using rule 143 + 'else' reduce using rule 143 + 'hiding' reduce using rule 143 + 'nominal' reduce using rule 143 + 'phantom' reduce using rule 143 + 'representational'reduce using rule 143 + 'role' reduce using rule 143 + LOWER reduce using rule 143 + %eof reduce using rule 143 + + +State 447 + + many1__typeVarBindingPlain__ -> typeVarBindingPlain . (rule 429) + + error reduce using rule 429 + '(' reduce using rule 429 + '\}' reduce using rule 429 + '\;' reduce using rule 429 + '=' reduce using rule 429 + 'as' reduce using rule 429 + 'else' reduce using rule 429 + 'hiding' reduce using rule 429 + 'nominal' reduce using rule 429 + 'phantom' reduce using rule 429 + 'representational'reduce using rule 429 + 'role' reduce using rule 429 + LOWER reduce using rule 429 + %eof reduce using rule 429 + + +State 448 + + dataHead -> 'data' properName manyOrEmpty__typeVarBindingPlain__ . (rule 296) + + error reduce using rule 296 + '\}' reduce using rule 296 + '\;' reduce using rule 296 + '=' reduce using rule 296 + 'else' reduce using rule 296 + %eof reduce using rule 296 + + +State 449 + + manyOrEmpty__typeVarBindingPlain__ -> many__typeVarBindingPlain__ . (rule 355) + + error reduce using rule 355 + '\}' reduce using rule 355 + '\;' reduce using rule 355 + '=' reduce using rule 355 + 'else' reduce using rule 355 + %eof reduce using rule 355 + + +State 450 + + many__typeVarBindingPlain__ -> many1__typeVarBindingPlain__ . (rule 375) + many1__typeVarBindingPlain__ -> many1__typeVarBindingPlain__ . typeVarBindingPlain (rule 430) + + error reduce using rule 375 + '(' shift, and enter state 451 + '\}' reduce using rule 375 + '\;' reduce using rule 375 + '=' reduce using rule 375 + 'as' shift, and enter state 45 + 'else' reduce using rule 375 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + %eof reduce using rule 375 + + ident goto state 446 + typeVarBindingPlaingoto state 497 + +State 451 + + typeVarBindingPlain -> '(' . ident '::' type ')' (rule 144) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 496 + +State 452 + + decl -> 'data' properName '::' . type (rule 285) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 495 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 453 + + decl -> 'derive' 'newtype' instHead . (rule 289) + + error reduce using rule 289 + '\}' reduce using rule 289 + '\;' reduce using rule 289 + 'else' reduce using rule 289 + %eof reduce using rule 289 + + +State 454 + + decl -> 'foreign' 'import' ident . '::' type (rule 293) + + '::' shift, and enter state 494 + + +State 455 + + decl -> 'foreign' 'import' 'data' . properName '::' type (rule 294) + + UPPER shift, and enter state 63 + + properName goto state 493 + +State 456 + + instHead -> 'instance' constraints '=>' . qualProperName manyOrEmpty__typeAtom__ (rule 309) + + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 492 + +State 457 + + instHead -> 'instance' ident '::' . constraints '=>' qualProperName manyOrEmpty__typeAtom__ (rule 311) + instHead -> 'instance' ident '::' . qualProperName manyOrEmpty__typeAtom__ (rule 312) + + '(' shift, and enter state 68 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 490 + constraints goto state 491 + constraint goto state 67 + +State 458 + + instHead -> 'instance' qualProperName manyOrEmpty__typeAtom__ . (rule 310) + constraint -> qualProperName manyOrEmpty__typeAtom__ . (rule 315) + + error reduce using rule 310 + '\}' reduce using rule 310 + '\;' reduce using rule 310 + '=>' reduce using rule 315 + 'else' reduce using rule 310 + 'where' reduce using rule 310 + %eof reduce using rule 310 + + +State 459 + + newtypeHead -> 'newtype' properName manyOrEmpty__typeVarBindingPlain__ . (rule 298) + + '=' reduce using rule 298 + + +State 460 + + decl -> 'newtype' properName '::' . type (rule 286) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 489 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 461 + + decl -> 'type' 'role' properName . many__role__ (rule 295) + + 'nominal' shift, and enter state 486 + 'phantom' shift, and enter state 487 + 'representational'shift, and enter state 488 + + role goto state 483 + many__role__ goto state 484 + many1__role__ goto state 485 + +State 462 + + typeHead -> 'type' properName manyOrEmpty__typeVarBindingPlain__ . (rule 297) + + '=' reduce using rule 297 + + +State 463 + + decl -> 'type' properName '::' . type (rule 287) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 482 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 464 + + importDecl -> 'import' moduleName imports . (rule 266) + importDecl -> 'import' moduleName imports . 'as' moduleName (rule 267) + + error reduce using rule 266 + '\}' reduce using rule 266 + '\;' reduce using rule 266 + 'as' shift, and enter state 481 + + +State 465 + + imports -> '(' . sep__import__','__ ')' (rule 269) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 477 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 478 + '(..)' shift, and enter state 479 + LOWER shift, and enter state 53 + UPPER shift, and enter state 63 + SYMBOL shift, and enter state 480 + + properName goto state 471 + ident goto state 472 + symbol goto state 473 + import goto state 474 + sep__import__','__goto state 475 + sep1__import__','__goto state 476 + +State 466 + + imports -> 'hiding' . '(' sep__import__','__ ')' (rule 270) + + '(' shift, and enter state 470 + + +State 467 + + manySep1__moduleDecl__'\;'__ -> manySep1__moduleDecl__'\;'__ '\;' moduleDecl . (rule 397) + + '\}' reduce using rule 397 + '\;' reduce using rule 397 + + +State 468 + + declElse -> 'else' '\;' . (rule 253) + + 'as' reduce using rule 253 + 'class' reduce using rule 253 + 'data' reduce using rule 253 + 'derive' reduce using rule 253 + 'foreign' reduce using rule 253 + 'hiding' reduce using rule 253 + 'infix' reduce using rule 253 + 'infixl' reduce using rule 253 + 'infixr' reduce using rule 253 + 'instance' reduce using rule 253 + 'newtype' reduce using rule 253 + 'nominal' reduce using rule 253 + 'phantom' reduce using rule 253 + 'representational'reduce using rule 253 + 'role' reduce using rule 253 + 'type' reduce using rule 253 + LOWER reduce using rule 253 + + +State 469 + + sep1__decl__declElse__ -> sep1__decl__declElse__ declElse decl . (rule 408) + + '\}' reduce using rule 408 + '\;' reduce using rule 408 + 'else' reduce using rule 408 + + +State 470 + + imports -> 'hiding' '(' . sep__import__','__ ')' (rule 270) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 477 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 478 + '(..)' shift, and enter state 479 + LOWER shift, and enter state 53 + UPPER shift, and enter state 63 + SYMBOL shift, and enter state 480 + + properName goto state 471 + ident goto state 472 + symbol goto state 473 + import goto state 474 + sep__import__','__goto state 636 + sep1__import__','__goto state 476 + +State 471 + + import -> properName . (rule 273) + import -> properName . dataMembers (rule 274) + + '(' shift, and enter state 604 + ')' reduce using rule 273 + ',' reduce using rule 273 + '(..)' shift, and enter state 605 + + dataMembers goto state 635 + +State 472 + + import -> ident . (rule 271) + + ')' reduce using rule 271 + ',' reduce using rule 271 + + +State 473 + + import -> symbol . (rule 272) + + ')' reduce using rule 272 + ',' reduce using rule 272 + + +State 474 + + sep1__import__','__ -> import . (rule 415) + + ')' reduce using rule 415 + ',' reduce using rule 415 + + +State 475 + + imports -> '(' sep__import__','__ . ')' (rule 269) + + ')' shift, and enter state 634 + + +State 476 + + sep__import__','__ -> sep1__import__','__ . (rule 368) + sep1__import__','__ -> sep1__import__','__ . ',' import (rule 416) + + ')' reduce using rule 368 + ',' shift, and enter state 633 + + +State 477 + + import -> 'class' . properName (rule 276) + + UPPER shift, and enter state 63 + + properName goto state 632 + +State 478 + + import -> 'type' . symbol (rule 275) + + '(..)' shift, and enter state 479 + SYMBOL shift, and enter state 480 + + symbol goto state 631 + +State 479 + + symbol -> '(..)' . (rule 56) + + ')' reduce using rule 56 + ',' reduce using rule 56 + + +State 480 + + symbol -> SYMBOL . (rule 55) + + ')' reduce using rule 55 + ',' reduce using rule 55 + + +State 481 + + importDecl -> 'import' moduleName imports 'as' . moduleName (rule 267) + + UPPER shift, and enter state 24 + QUAL_UPPER shift, and enter state 132 + + moduleName goto state 630 + +State 482 + + decl -> 'type' properName '::' type . (rule 287) + + error reduce using rule 287 + '\}' reduce using rule 287 + '\;' reduce using rule 287 + 'else' reduce using rule 287 + %eof reduce using rule 287 + + +State 483 + + many1__role__ -> role . (rule 384) + + error reduce using rule 384 + '\}' reduce using rule 384 + '\;' reduce using rule 384 + 'else' reduce using rule 384 + 'nominal' reduce using rule 384 + 'phantom' reduce using rule 384 + 'representational'reduce using rule 384 + %eof reduce using rule 384 + + +State 484 + + decl -> 'type' 'role' properName many__role__ . (rule 295) + + error reduce using rule 295 + '\}' reduce using rule 295 + '\;' reduce using rule 295 + 'else' reduce using rule 295 + %eof reduce using rule 295 + + +State 485 + + many__role__ -> many1__role__ . (rule 346) + many1__role__ -> many1__role__ . role (rule 385) + + error reduce using rule 346 + '\}' reduce using rule 346 + '\;' reduce using rule 346 + 'else' reduce using rule 346 + 'nominal' shift, and enter state 486 + 'phantom' shift, and enter state 487 + 'representational'shift, and enter state 488 + %eof reduce using rule 346 + + role goto state 629 + +State 486 + + role -> 'nominal' . (rule 325) + + error reduce using rule 325 + '\}' reduce using rule 325 + '\;' reduce using rule 325 + 'else' reduce using rule 325 + 'nominal' reduce using rule 325 + 'phantom' reduce using rule 325 + 'representational'reduce using rule 325 + %eof reduce using rule 325 + + +State 487 + + role -> 'phantom' . (rule 327) + + error reduce using rule 327 + '\}' reduce using rule 327 + '\;' reduce using rule 327 + 'else' reduce using rule 327 + 'nominal' reduce using rule 327 + 'phantom' reduce using rule 327 + 'representational'reduce using rule 327 + %eof reduce using rule 327 + + +State 488 + + role -> 'representational' . (rule 326) + + error reduce using rule 326 + '\}' reduce using rule 326 + '\;' reduce using rule 326 + 'else' reduce using rule 326 + 'nominal' reduce using rule 326 + 'phantom' reduce using rule 326 + 'representational'reduce using rule 326 + %eof reduce using rule 326 + + +State 489 + + decl -> 'newtype' properName '::' type . (rule 286) + + error reduce using rule 286 + '\}' reduce using rule 286 + '\;' reduce using rule 286 + 'else' reduce using rule 286 + %eof reduce using rule 286 + + +State 490 + + instHead -> 'instance' ident '::' qualProperName . manyOrEmpty__typeAtom__ (rule 312) + constraint -> qualProperName . manyOrEmpty__typeAtom__ (rule 315) + + error reduce using rule 350 + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '\}' reduce using rule 350 + '\;' reduce using rule 350 + '=>' reduce using rule 350 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'else' reduce using rule 350 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'where' reduce using rule 350 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + %eof reduce using rule 350 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 333 + manyOrEmpty__typeAtom__goto state 628 + many__typeAtom__goto state 335 + many1__typeAtom__goto state 336 + +State 491 + + instHead -> 'instance' ident '::' constraints . '=>' qualProperName manyOrEmpty__typeAtom__ (rule 311) + + '=>' shift, and enter state 627 + + +State 492 + + instHead -> 'instance' constraints '=>' qualProperName . manyOrEmpty__typeAtom__ (rule 309) + + error reduce using rule 350 + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '\}' reduce using rule 350 + '\;' reduce using rule 350 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'else' reduce using rule 350 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'where' reduce using rule 350 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + %eof reduce using rule 350 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 333 + manyOrEmpty__typeAtom__goto state 626 + many__typeAtom__goto state 335 + many1__typeAtom__goto state 336 + +State 493 + + decl -> 'foreign' 'import' 'data' properName . '::' type (rule 294) + + '::' shift, and enter state 625 + + +State 494 + + decl -> 'foreign' 'import' ident '::' . type (rule 293) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 624 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 495 + + decl -> 'data' properName '::' type . (rule 285) + + error reduce using rule 285 + '\}' reduce using rule 285 + '\;' reduce using rule 285 + 'else' reduce using rule 285 + %eof reduce using rule 285 + + +State 496 + + typeVarBindingPlain -> '(' ident . '::' type ')' (rule 144) + + '::' shift, and enter state 623 + + +State 497 + + many1__typeVarBindingPlain__ -> many1__typeVarBindingPlain__ typeVarBindingPlain . (rule 430) + + error reduce using rule 430 + '(' reduce using rule 430 + '\}' reduce using rule 430 + '\;' reduce using rule 430 + '=' reduce using rule 430 + 'as' reduce using rule 430 + 'else' reduce using rule 430 + 'hiding' reduce using rule 430 + 'nominal' reduce using rule 430 + 'phantom' reduce using rule 430 + 'representational'reduce using rule 430 + 'role' reduce using rule 430 + LOWER reduce using rule 430 + %eof reduce using rule 430 + + +State 498 + + fixity -> infix int 'type' qualProperName . 'as' op (rule 321) + + 'as' shift, and enter state 622 + + +State 499 + + fixity -> infix int qualIdent 'as' . op (rule 319) + + '<=' shift, and enter state 192 + ':' shift, and enter state 193 + '-' shift, and enter state 194 + OPERATOR shift, and enter state 195 + + op goto state 621 + +State 500 + + fixity -> infix int qualProperName 'as' . op (rule 320) + + '<=' shift, and enter state 192 + ':' shift, and enter state 193 + '-' shift, and enter state 194 + OPERATOR shift, and enter state 195 + + op goto state 620 + +State 501 + + instBinding -> ident . '::' type (rule 317) + instBinding -> ident . manyOrEmpty__binderAtom__ guardedDecl (rule 318) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '::' shift, and enter state 619 + '=' reduce using rule 348 + '|' reduce using rule 348 + '_' shift, and enter state 43 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 220 + manyOrEmpty__binderAtom__goto state 618 + many1__binderAtom__goto state 39 + +State 502 + + manySep1__instBinding__'\;'__ -> instBinding . (rule 392) + + '\}' reduce using rule 392 + '\;' reduce using rule 392 + + +State 503 + + decl -> instHead 'where' '\{' manySep__instBinding__'\;'__ . '\}' (rule 284) + + '\}' shift, and enter state 617 + + +State 504 + + manySep__instBinding__'\;'__ -> manySep1__instBinding__'\;'__ . (rule 358) + manySep1__instBinding__'\;'__ -> manySep1__instBinding__'\;'__ . '\;' instBinding (rule 393) + + '\}' reduce using rule 358 + '\;' shift, and enter state 616 + + +State 505 + + classMember -> ident . '::' type (rule 308) + + '::' shift, and enter state 615 + + +State 506 + + manySep1__classMember__'\;'__ -> classMember . (rule 390) + + '\}' reduce using rule 390 + '\;' reduce using rule 390 + + +State 507 + + decl -> classHead 'where' '\{' manySep__classMember__'\;'__ . '\}' (rule 282) + + '\}' shift, and enter state 614 + + +State 508 + + manySep__classMember__'\;'__ -> manySep1__classMember__'\;'__ . (rule 357) + manySep1__classMember__'\;'__ -> manySep1__classMember__'\;'__ . '\;' classMember (rule 391) + + '\}' reduce using rule 357 + '\;' shift, and enter state 613 + + +State 509 + + decl -> newtypeHead '=' properName typeAtom . (rule 280) + + error reduce using rule 280 + '\}' reduce using rule 280 + '\;' reduce using rule 280 + 'else' reduce using rule 280 + %eof reduce using rule 280 + + +State 510 + + sep1__dataCtor__'|'__ -> sep1__dataCtor__'|'__ '|' . dataCtor (rule 406) + + UPPER shift, and enter state 63 + + properName goto state 435 + dataCtor goto state 612 + +State 511 + + dataCtor -> properName manyOrEmpty__typeAtom__ . (rule 299) + + error reduce using rule 299 + '\}' reduce using rule 299 + '\;' reduce using rule 299 + '|' reduce using rule 299 + 'else' reduce using rule 299 + %eof reduce using rule 299 + + +State 512 + + guardedDecl -> '=' exprWhere . (rule 202) + + error reduce using rule 202 + '\}' reduce using rule 202 + '\;' reduce using rule 202 + 'else' reduce using rule 202 + %eof reduce using rule 202 + + +State 513 + + exprWhere -> expr . (rule 147) + exprWhere -> expr . 'where' '\{' manySep__letBinding__'\;'__ '\}' (rule 148) + + error reduce using rule 147 + '(' reduce using rule 147 + ')' reduce using rule 147 + '{' reduce using rule 147 + '}' reduce using rule 147 + '[' reduce using rule 147 + ']' reduce using rule 147 + '\}' reduce using rule 147 + '\;' reduce using rule 147 + '<=' reduce using rule 147 + ':' reduce using rule 147 + '::' reduce using rule 147 + '|' reduce using rule 147 + '`' reduce using rule 147 + ',' reduce using rule 147 + '_' reduce using rule 147 + '\\' reduce using rule 147 + '-' reduce using rule 147 + '@' reduce using rule 147 + 'ado' reduce using rule 147 + 'as' reduce using rule 147 + 'case' reduce using rule 147 + 'do' reduce using rule 147 + 'else' reduce using rule 147 + 'false' reduce using rule 147 + 'hiding' reduce using rule 147 + 'if' reduce using rule 147 + 'let' reduce using rule 147 + 'nominal' reduce using rule 147 + 'phantom' reduce using rule 147 + 'of' reduce using rule 147 + 'representational'reduce using rule 147 + 'role' reduce using rule 147 + 'then' reduce using rule 147 + 'true' reduce using rule 147 + 'where' shift, and enter state 611 + '(..)' reduce using rule 147 + LOWER reduce using rule 147 + QUAL_LOWER reduce using rule 147 + UPPER reduce using rule 147 + QUAL_UPPER reduce using rule 147 + SYMBOL reduce using rule 147 + QUAL_SYMBOL reduce using rule 147 + OPERATOR reduce using rule 147 + QUAL_OPERATOR reduce using rule 147 + LIT_HOLE reduce using rule 147 + LIT_CHAR reduce using rule 147 + LIT_STRING reduce using rule 147 + LIT_RAW_STRING reduce using rule 147 + LIT_INT reduce using rule 147 + LIT_NUMBER reduce using rule 147 + %eof reduce using rule 147 + + +State 514 + + many1__guardedDeclExpr__ -> many1__guardedDeclExpr__ guardedDeclExpr . (rule 381) + + error reduce using rule 381 + '\}' reduce using rule 381 + '\;' reduce using rule 381 + '|' reduce using rule 381 + 'else' reduce using rule 381 + %eof reduce using rule 381 + + +State 515 + + guardedDeclExpr -> guard '=' . exprWhere (rule 204) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 610 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 516 + + rowLabel -> label '::' type . (rule 138) + + ')' reduce using rule 138 + '}' reduce using rule 138 + '|' reduce using rule 138 + ',' reduce using rule 138 + + +State 517 + + row -> sep__rowLabel__','__ '|' type . (rule 137) + + ')' reduce using rule 137 + '}' reduce using rule 137 + + +State 518 + + sep1__rowLabel__','__ -> sep1__rowLabel__','__ ',' rowLabel . (rule 426) + + ')' reduce using rule 426 + '}' reduce using rule 426 + '|' reduce using rule 426 + ',' reduce using rule 426 + + +State 519 + + typeAtom -> '(' typeKindedAtom '::' type . ')' (rule 124) + + ')' shift, and enter state 609 + + +State 520 + + typeAtom -> '(' row ')' . (rule 122) + typeKindedAtom -> '(' row ')' . (rule 131) + + '(' reduce using rule 122 + ')' reduce using rule 122 + '{' reduce using rule 122 + '->' reduce using rule 122 + '<=' reduce using rule 122 + '=>' reduce using rule 122 + ':' reduce using rule 122 + '::' reduce using rule 131 + '_' reduce using rule 122 + '-' reduce using rule 122 + 'as' reduce using rule 122 + 'hiding' reduce using rule 122 + 'nominal' reduce using rule 122 + 'phantom' reduce using rule 122 + 'representational'reduce using rule 122 + 'role' reduce using rule 122 + '(->)' reduce using rule 122 + '(..)' reduce using rule 122 + LOWER reduce using rule 122 + UPPER reduce using rule 122 + QUAL_UPPER reduce using rule 122 + SYMBOL reduce using rule 122 + QUAL_SYMBOL reduce using rule 122 + OPERATOR reduce using rule 122 + QUAL_OPERATOR reduce using rule 122 + LIT_HOLE reduce using rule 122 + LIT_STRING reduce using rule 122 + LIT_RAW_STRING reduce using rule 122 + LIT_INT reduce using rule 122 + + +State 521 + + typeAtom -> '(' typeKindedAtom '::' . type ')' (rule 124) + typeKindedAtom -> '(' typeKindedAtom '::' . type ')' (rule 133) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 608 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 522 + + typeAtom -> '(' type1 ')' . (rule 123) + typeKindedAtom -> '(' type1 ')' . (rule 132) + + '(' reduce using rule 123 + ')' reduce using rule 123 + '{' reduce using rule 123 + '->' reduce using rule 123 + '<=' reduce using rule 123 + '=>' reduce using rule 123 + ':' reduce using rule 123 + '::' reduce using rule 132 + '_' reduce using rule 123 + '-' reduce using rule 123 + 'as' reduce using rule 123 + 'hiding' reduce using rule 123 + 'nominal' reduce using rule 123 + 'phantom' reduce using rule 123 + 'representational'reduce using rule 123 + 'role' reduce using rule 123 + '(->)' reduce using rule 123 + '(..)' reduce using rule 123 + LOWER reduce using rule 123 + UPPER reduce using rule 123 + QUAL_UPPER reduce using rule 123 + SYMBOL reduce using rule 123 + QUAL_SYMBOL reduce using rule 123 + OPERATOR reduce using rule 123 + QUAL_OPERATOR reduce using rule 123 + LIT_HOLE reduce using rule 123 + LIT_STRING reduce using rule 123 + LIT_RAW_STRING reduce using rule 123 + LIT_INT reduce using rule 123 + + +State 523 + + typeAtom -> '{' row '}' . (rule 121) + typeKindedAtom -> '{' row '}' . (rule 130) + + '(' reduce using rule 121 + ')' reduce using rule 121 + '{' reduce using rule 121 + '->' reduce using rule 121 + '<=' reduce using rule 121 + '=>' reduce using rule 121 + ':' reduce using rule 121 + '::' reduce using rule 130 + '_' reduce using rule 121 + '-' reduce using rule 121 + 'as' reduce using rule 121 + 'hiding' reduce using rule 121 + 'nominal' reduce using rule 121 + 'phantom' reduce using rule 121 + 'representational'reduce using rule 121 + 'role' reduce using rule 121 + '(->)' reduce using rule 121 + '(..)' reduce using rule 121 + LOWER reduce using rule 121 + UPPER reduce using rule 121 + QUAL_UPPER reduce using rule 121 + SYMBOL reduce using rule 121 + QUAL_SYMBOL reduce using rule 121 + OPERATOR reduce using rule 121 + QUAL_OPERATOR reduce using rule 121 + LIT_HOLE reduce using rule 121 + LIT_STRING reduce using rule 121 + LIT_RAW_STRING reduce using rule 121 + LIT_INT reduce using rule 121 + + +State 524 + + type1 -> forall many__typeVarBinding__ '.' type1 . (rule 103) + + error reduce using rule 103 + '(' reduce using rule 103 + ')' reduce using rule 103 + '{' reduce using rule 103 + '}' reduce using rule 103 + '[' reduce using rule 103 + ']' reduce using rule 103 + '\}' reduce using rule 103 + '\;' reduce using rule 103 + '<-' reduce using rule 103 + '<=' reduce using rule 103 + ':' reduce using rule 103 + '::' reduce using rule 103 + '|' reduce using rule 103 + '`' reduce using rule 103 + ',' reduce using rule 103 + '_' reduce using rule 103 + '\\' reduce using rule 103 + '-' reduce using rule 103 + '@' reduce using rule 103 + 'ado' reduce using rule 103 + 'as' reduce using rule 103 + 'case' reduce using rule 103 + 'do' reduce using rule 103 + 'else' reduce using rule 103 + 'false' reduce using rule 103 + 'hiding' reduce using rule 103 + 'if' reduce using rule 103 + 'let' reduce using rule 103 + 'nominal' reduce using rule 103 + 'phantom' reduce using rule 103 + 'of' reduce using rule 103 + 'representational'reduce using rule 103 + 'role' reduce using rule 103 + 'then' reduce using rule 103 + 'true' reduce using rule 103 + 'where' reduce using rule 103 + '(..)' reduce using rule 103 + LOWER reduce using rule 103 + QUAL_LOWER reduce using rule 103 + UPPER reduce using rule 103 + QUAL_UPPER reduce using rule 103 + SYMBOL reduce using rule 103 + QUAL_SYMBOL reduce using rule 103 + OPERATOR reduce using rule 103 + QUAL_OPERATOR reduce using rule 103 + LIT_HOLE reduce using rule 103 + LIT_CHAR reduce using rule 103 + LIT_STRING reduce using rule 103 + LIT_RAW_STRING reduce using rule 103 + LIT_INT reduce using rule 103 + LIT_NUMBER reduce using rule 103 + %eof reduce using rule 103 + + +State 525 + + typeVarBinding -> '(' '@' ident . '::' type ')' (rule 142) + + '::' shift, and enter state 607 + + +State 526 + + typeVarBinding -> '(' ident '::' . type ')' (rule 141) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 606 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 527 + + export -> properName . (rule 258) + export -> properName . dataMembers (rule 259) + + '(' shift, and enter state 604 + ')' reduce using rule 258 + ',' reduce using rule 258 + '(..)' shift, and enter state 605 + + dataMembers goto state 603 + +State 528 + + export -> ident . (rule 256) + + ')' reduce using rule 256 + ',' reduce using rule 256 + + +State 529 + + export -> symbol . (rule 257) + + ')' reduce using rule 257 + ',' reduce using rule 257 + + +State 530 + + sep1__export__','__ -> export . (rule 409) + + ')' reduce using rule 409 + ',' reduce using rule 409 + + +State 531 + + exports -> '(' sep__export__','__ . ')' (rule 255) + + ')' shift, and enter state 602 + + +State 532 + + sep__export__','__ -> sep1__export__','__ . (rule 365) + sep1__export__','__ -> sep1__export__','__ . ',' export (rule 410) + + ')' reduce using rule 365 + ',' shift, and enter state 601 + + +State 533 + + export -> 'class' . properName (rule 261) + + UPPER shift, and enter state 63 + + properName goto state 600 + +State 534 + + export -> 'module' . moduleName (rule 262) + + UPPER shift, and enter state 24 + QUAL_UPPER shift, and enter state 132 + + moduleName goto state 599 + +State 535 + + export -> 'type' . symbol (rule 260) + + '(..)' shift, and enter state 479 + SYMBOL shift, and enter state 480 + + symbol goto state 598 + +State 536 + + moduleHeader -> 'module' moduleName exports 'where' . '\{' moduleImports (rule 242) + + '\{' shift, and enter state 597 + + +State 537 + + doStatement -> 'let' '\{' manySep__letBinding__'\;'__ '\}' . (rule 211) + + error reduce using rule 211 + + +State 538 + + manySep1__letBinding__'\;'__ -> manySep1__letBinding__'\;'__ '\;' . letBinding (rule 395) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 396 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + letBinding goto state 596 + binder1 goto state 398 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 539 + + expr5 -> 'let' '\{' manySep__letBinding__'\;'__ '\}' . 'in' expr (rule 167) + + 'in' shift, and enter state 595 + + +State 540 + + letBinding -> binder1 '=' . exprWhere (rule 200) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 594 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 541 + + letBinding -> ident guardedDecl . (rule 198) + + '\}' reduce using rule 198 + '\;' reduce using rule 198 + + +State 542 + + letBinding -> ident many__binderAtom__ . guardedDecl (rule 199) + + '=' shift, and enter state 433 + '|' shift, and enter state 434 + + guardedDecl goto state 593 + guardedDeclExprgoto state 429 + guard goto state 430 + many__guardedDeclExpr__goto state 431 + many1__guardedDeclExpr__goto state 432 + +State 543 + + letBinding -> ident '::' . type (rule 197) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 592 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 544 + + expr5 -> 'if' expr 'then' expr . 'else' expr (rule 163) + + 'else' shift, and enter state 591 + + +State 545 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' . manySep__caseBranch__'\;'__ '\}' (rule 168) + expr5 -> 'case' sep__expr__','__ 'of' '\{' . sep__binder1__','__ '->' '\}' exprWhere (rule 169) + expr5 -> 'case' sep__expr__','__ 'of' '\{' . sep__binder1__','__ '\}' guardedCase (rule 170) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + caseBranch goto state 585 + binder1 goto state 586 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + manySep__caseBranch__'\;'__goto state 587 + sep__binder1__','__goto state 588 + many1__binderAtom__goto state 39 + manySep1__caseBranch__'\;'__goto state 589 + sep1__binder1__','__goto state 590 + +State 546 + + sep1__expr__','__ -> sep1__expr__','__ ',' expr . (rule 412) + + ']' reduce using rule 412 + ',' reduce using rule 412 + 'of' reduce using rule 412 + + +State 547 + + expr5 -> '\\' many__binderAtom__ '->' expr . (rule 166) + + error reduce using rule 166 + '(' reduce using rule 166 + ')' reduce using rule 166 + '{' reduce using rule 166 + '}' reduce using rule 166 + '[' reduce using rule 166 + ']' reduce using rule 166 + '\}' reduce using rule 166 + '\;' reduce using rule 166 + '<=' reduce using rule 166 + ':' reduce using rule 166 + '::' reduce using rule 166 + '|' reduce using rule 166 + '`' reduce using rule 166 + ',' reduce using rule 166 + '_' reduce using rule 166 + '\\' reduce using rule 166 + '-' reduce using rule 166 + '@' reduce using rule 166 + 'ado' reduce using rule 166 + 'as' reduce using rule 166 + 'case' reduce using rule 166 + 'do' reduce using rule 166 + 'else' reduce using rule 166 + 'false' reduce using rule 166 + 'hiding' reduce using rule 166 + 'if' reduce using rule 166 + 'let' reduce using rule 166 + 'nominal' reduce using rule 166 + 'phantom' reduce using rule 166 + 'of' reduce using rule 166 + 'representational'reduce using rule 166 + 'role' reduce using rule 166 + 'then' reduce using rule 166 + 'true' reduce using rule 166 + 'where' reduce using rule 166 + '(..)' reduce using rule 166 + LOWER reduce using rule 166 + QUAL_LOWER reduce using rule 166 + UPPER reduce using rule 166 + QUAL_UPPER reduce using rule 166 + SYMBOL reduce using rule 166 + QUAL_SYMBOL reduce using rule 166 + OPERATOR reduce using rule 166 + QUAL_OPERATOR reduce using rule 166 + LIT_HOLE reduce using rule 166 + LIT_CHAR reduce using rule 166 + LIT_STRING reduce using rule 166 + LIT_RAW_STRING reduce using rule 166 + LIT_INT reduce using rule 166 + LIT_NUMBER reduce using rule 166 + %eof reduce using rule 166 + + +State 548 + + recordLabel -> label '=' expr . (rule 189) + + '}' reduce using rule 189 + ',' reduce using rule 189 + + +State 549 + + recordLabel -> label ':' expr . (rule 190) + + '}' reduce using rule 190 + ',' reduce using rule 190 + + +State 550 + + sep1__recordLabel__','__ -> sep1__recordLabel__','__ ',' recordLabel . (rule 436) + + '}' reduce using rule 436 + ',' reduce using rule 436 + + +State 551 + + sep1__label__'.'__ -> sep1__label__'.'__ '.' . label (rule 418) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 584 + +State 552 + + sep1__recordUpdateOrLabel__','__ -> sep1__recordUpdateOrLabel__','__ ',' . recordUpdateOrLabel (rule 424) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 376 + recordUpdateOrLabelgoto state 583 + +State 553 + + expr6 -> expr7 '{' sep__recordUpdateOrLabel__','__ '}' . (rule 173) + + error reduce using rule 173 + '(' reduce using rule 173 + ')' reduce using rule 173 + '{' reduce using rule 173 + '}' reduce using rule 173 + '[' reduce using rule 173 + ']' reduce using rule 173 + '\}' reduce using rule 173 + '\;' reduce using rule 173 + '<=' reduce using rule 173 + ':' reduce using rule 173 + '::' reduce using rule 173 + '|' reduce using rule 173 + '`' reduce using rule 173 + ',' reduce using rule 173 + '_' reduce using rule 173 + '\\' reduce using rule 173 + '-' reduce using rule 173 + '@' reduce using rule 173 + 'ado' reduce using rule 173 + 'as' reduce using rule 173 + 'case' reduce using rule 173 + 'do' reduce using rule 173 + 'else' reduce using rule 173 + 'false' reduce using rule 173 + 'hiding' reduce using rule 173 + 'if' reduce using rule 173 + 'let' reduce using rule 173 + 'nominal' reduce using rule 173 + 'phantom' reduce using rule 173 + 'of' reduce using rule 173 + 'representational'reduce using rule 173 + 'role' reduce using rule 173 + 'then' reduce using rule 173 + 'true' reduce using rule 173 + 'where' reduce using rule 173 + '(..)' reduce using rule 173 + LOWER reduce using rule 173 + QUAL_LOWER reduce using rule 173 + UPPER reduce using rule 173 + QUAL_UPPER reduce using rule 173 + SYMBOL reduce using rule 173 + QUAL_SYMBOL reduce using rule 173 + OPERATOR reduce using rule 173 + QUAL_OPERATOR reduce using rule 173 + LIT_HOLE reduce using rule 173 + LIT_CHAR reduce using rule 173 + LIT_STRING reduce using rule 173 + LIT_RAW_STRING reduce using rule 173 + LIT_INT reduce using rule 173 + LIT_NUMBER reduce using rule 173 + %eof reduce using rule 173 + + +State 554 + + recordUpdateOrLabel -> label '{' . sep__recordUpdate__','__ '}' (rule 194) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 579 + recordUpdate goto state 580 + sep__recordUpdate__','__goto state 581 + sep1__recordUpdate__','__goto state 582 + +State 555 + + recordUpdateOrLabel -> label ':' . expr (rule 191) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 578 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 556 + + recordUpdateOrLabel -> label '=' . expr (rule 193) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 577 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 557 + + exprBacktick -> exprBacktick qualOp . expr3 (rule 156) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr3 goto state 576 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 558 + + expr2 -> expr2 '`' exprBacktick '`' . expr3 (rule 154) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr3 goto state 575 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 559 + + sep1__constraint__','__ -> sep1__constraint__','__ ',' constraint . (rule 404) + + ')' reduce using rule 404 + ',' reduce using rule 404 + + +State 560 + + many1__ident__ -> ident . (rule 382) + + error reduce using rule 382 + '->' reduce using rule 382 + ',' reduce using rule 382 + 'as' reduce using rule 382 + 'hiding' reduce using rule 382 + 'nominal' reduce using rule 382 + 'phantom' reduce using rule 382 + 'representational'reduce using rule 382 + 'role' reduce using rule 382 + LOWER reduce using rule 382 + + +State 561 + + sep1__fundep__','__ -> fundep . (rule 413) + + error reduce using rule 413 + ',' reduce using rule 413 + + +State 562 + + fundep -> many__ident__ . '->' many__ident__ (rule 307) + + '->' shift, and enter state 574 + + +State 563 + + fundeps -> '|' sep__fundep__','__ . (rule 305) + + error reduce using rule 305 + + +State 564 + + many__ident__ -> many1__ident__ . (rule 345) + many1__ident__ -> many1__ident__ . ident (rule 383) + + error reduce using rule 345 + '->' reduce using rule 345 + ',' reduce using rule 345 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 573 + +State 565 + + sep__fundep__','__ -> sep1__fundep__','__ . (rule 367) + sep1__fundep__','__ -> sep1__fundep__','__ . ',' fundep (rule 414) + + error reduce using rule 367 + ',' shift, and enter state 572 + + +State 566 + + fundep -> '->' . many__ident__ (rule 306) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 560 + many__ident__ goto state 571 + many1__ident__ goto state 564 + +State 567 + + sep1__binder__','__ -> sep1__binder__','__ ',' binder . (rule 432) + + ']' reduce using rule 432 + ',' reduce using rule 432 + + +State 568 + + recordBinder -> label '=' binder . (rule 240) + + '}' reduce using rule 240 + ',' reduce using rule 240 + + +State 569 + + recordBinder -> label ':' binder . (rule 241) + + '}' reduce using rule 241 + ',' reduce using rule 241 + + +State 570 + + sep1__recordBinder__','__ -> sep1__recordBinder__','__ ',' recordBinder . (rule 434) + + '}' reduce using rule 434 + ',' reduce using rule 434 + + +State 571 + + fundep -> '->' many__ident__ . (rule 306) + + error reduce using rule 306 + ',' reduce using rule 306 + + +State 572 + + sep1__fundep__','__ -> sep1__fundep__','__ ',' . fundep (rule 414) + + '->' shift, and enter state 566 + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 560 + fundep goto state 676 + many__ident__ goto state 562 + many1__ident__ goto state 564 + +State 573 + + many1__ident__ -> many1__ident__ ident . (rule 383) + + error reduce using rule 383 + '->' reduce using rule 383 + ',' reduce using rule 383 + 'as' reduce using rule 383 + 'hiding' reduce using rule 383 + 'nominal' reduce using rule 383 + 'phantom' reduce using rule 383 + 'representational'reduce using rule 383 + 'role' reduce using rule 383 + LOWER reduce using rule 383 + + +State 574 + + fundep -> many__ident__ '->' . many__ident__ (rule 307) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 560 + many__ident__ goto state 675 + many1__ident__ goto state 564 + +State 575 + + expr2 -> expr2 '`' exprBacktick '`' expr3 . (rule 154) + + error reduce using rule 154 + '(' reduce using rule 154 + ')' reduce using rule 154 + '{' reduce using rule 154 + '}' reduce using rule 154 + '[' reduce using rule 154 + ']' reduce using rule 154 + '\}' reduce using rule 154 + '\;' reduce using rule 154 + '<=' reduce using rule 154 + ':' reduce using rule 154 + '::' reduce using rule 154 + '|' reduce using rule 154 + '`' reduce using rule 154 + ',' reduce using rule 154 + '_' reduce using rule 154 + '\\' reduce using rule 154 + '-' reduce using rule 154 + '@' reduce using rule 154 + 'ado' reduce using rule 154 + 'as' reduce using rule 154 + 'case' reduce using rule 154 + 'do' reduce using rule 154 + 'else' reduce using rule 154 + 'false' reduce using rule 154 + 'hiding' reduce using rule 154 + 'if' reduce using rule 154 + 'let' reduce using rule 154 + 'nominal' reduce using rule 154 + 'phantom' reduce using rule 154 + 'of' reduce using rule 154 + 'representational'reduce using rule 154 + 'role' reduce using rule 154 + 'then' reduce using rule 154 + 'true' reduce using rule 154 + 'where' reduce using rule 154 + '(..)' reduce using rule 154 + LOWER reduce using rule 154 + QUAL_LOWER reduce using rule 154 + UPPER reduce using rule 154 + QUAL_UPPER reduce using rule 154 + SYMBOL reduce using rule 154 + QUAL_SYMBOL reduce using rule 154 + OPERATOR reduce using rule 154 + QUAL_OPERATOR reduce using rule 154 + LIT_HOLE reduce using rule 154 + LIT_CHAR reduce using rule 154 + LIT_STRING reduce using rule 154 + LIT_RAW_STRING reduce using rule 154 + LIT_INT reduce using rule 154 + LIT_NUMBER reduce using rule 154 + %eof reduce using rule 154 + + +State 576 + + exprBacktick -> exprBacktick qualOp expr3 . (rule 156) + + '<=' reduce using rule 156 + ':' reduce using rule 156 + '`' reduce using rule 156 + '-' reduce using rule 156 + OPERATOR reduce using rule 156 + QUAL_OPERATOR reduce using rule 156 + + +State 577 + + recordUpdateOrLabel -> label '=' expr . (rule 193) + + '}' reduce using rule 193 + ',' reduce using rule 193 + + +State 578 + + recordUpdateOrLabel -> label ':' expr . (rule 191) + + '}' reduce using rule 191 + ',' reduce using rule 191 + + +State 579 + + recordUpdate -> label . '=' expr (rule 195) + recordUpdate -> label . '{' sep__recordUpdate__','__ '}' (rule 196) + + '{' shift, and enter state 673 + '=' shift, and enter state 674 + + +State 580 + + sep1__recordUpdate__','__ -> recordUpdate . (rule 421) + + '}' reduce using rule 421 + ',' reduce using rule 421 + + +State 581 + + recordUpdateOrLabel -> label '{' sep__recordUpdate__','__ . '}' (rule 194) + + '}' shift, and enter state 672 + + +State 582 + + sep__recordUpdate__','__ -> sep1__recordUpdate__','__ . (rule 371) + sep1__recordUpdate__','__ -> sep1__recordUpdate__','__ . ',' recordUpdate (rule 422) + + '}' reduce using rule 371 + ',' shift, and enter state 671 + + +State 583 + + sep1__recordUpdateOrLabel__','__ -> sep1__recordUpdateOrLabel__','__ ',' recordUpdateOrLabel . (rule 424) + + '}' reduce using rule 424 + ',' reduce using rule 424 + + +State 584 + + sep1__label__'.'__ -> sep1__label__'.'__ '.' label . (rule 418) + + error reduce using rule 418 + '(' reduce using rule 418 + ')' reduce using rule 418 + '{' reduce using rule 418 + '}' reduce using rule 418 + '[' reduce using rule 418 + ']' reduce using rule 418 + '\}' reduce using rule 418 + '\;' reduce using rule 418 + '<=' reduce using rule 418 + ':' reduce using rule 418 + '::' reduce using rule 418 + '|' reduce using rule 418 + '`' reduce using rule 418 + '.' reduce using rule 418 + ',' reduce using rule 418 + '_' reduce using rule 418 + '\\' reduce using rule 418 + '-' reduce using rule 418 + '@' reduce using rule 418 + 'ado' reduce using rule 418 + 'as' reduce using rule 418 + 'case' reduce using rule 418 + 'do' reduce using rule 418 + 'else' reduce using rule 418 + 'false' reduce using rule 418 + 'hiding' reduce using rule 418 + 'if' reduce using rule 418 + 'let' reduce using rule 418 + 'nominal' reduce using rule 418 + 'phantom' reduce using rule 418 + 'of' reduce using rule 418 + 'representational'reduce using rule 418 + 'role' reduce using rule 418 + 'then' reduce using rule 418 + 'true' reduce using rule 418 + 'where' reduce using rule 418 + '(..)' reduce using rule 418 + LOWER reduce using rule 418 + QUAL_LOWER reduce using rule 418 + UPPER reduce using rule 418 + QUAL_UPPER reduce using rule 418 + SYMBOL reduce using rule 418 + QUAL_SYMBOL reduce using rule 418 + OPERATOR reduce using rule 418 + QUAL_OPERATOR reduce using rule 418 + LIT_HOLE reduce using rule 418 + LIT_CHAR reduce using rule 418 + LIT_STRING reduce using rule 418 + LIT_RAW_STRING reduce using rule 418 + LIT_INT reduce using rule 418 + LIT_NUMBER reduce using rule 418 + %eof reduce using rule 418 + + +State 585 + + manySep1__caseBranch__'\;'__ -> caseBranch . (rule 388) + + '\}' reduce using rule 388 + '\;' reduce using rule 388 + + +State 586 + + binder1 -> binder1 . qualOp binder2 (rule 225) + sep1__binder1__','__ -> binder1 . (rule 401) + + '\}' reduce using rule 401 + '->' reduce using rule 401 + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '|' reduce using rule 401 + ',' reduce using rule 401 + '-' shift, and enter state 296 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + + qualOp goto state 351 + +State 587 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' manySep__caseBranch__'\;'__ . '\}' (rule 168) + + '\}' shift, and enter state 670 + + +State 588 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ . '->' '\}' exprWhere (rule 169) + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ . '\}' guardedCase (rule 170) + caseBranch -> sep__binder1__','__ . guardedCase (rule 201) + + '\}' shift, and enter state 668 + '->' shift, and enter state 669 + '|' shift, and enter state 434 + + guardedCase goto state 663 + guardedCaseExprgoto state 664 + guard goto state 665 + many__guardedCaseExpr__goto state 666 + many1__guardedCaseExpr__goto state 667 + +State 589 + + manySep__caseBranch__'\;'__ -> manySep1__caseBranch__'\;'__ . (rule 356) + manySep1__caseBranch__'\;'__ -> manySep1__caseBranch__'\;'__ . '\;' caseBranch (rule 389) + + '\}' reduce using rule 356 + '\;' shift, and enter state 662 + + +State 590 + + sep__binder1__','__ -> sep1__binder1__','__ . (rule 361) + sep1__binder1__','__ -> sep1__binder1__','__ . ',' binder1 (rule 402) + + '\}' reduce using rule 361 + '->' reduce using rule 361 + '|' reduce using rule 361 + ',' shift, and enter state 661 + + +State 591 + + expr5 -> 'if' expr 'then' expr 'else' . expr (rule 163) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 660 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 592 + + letBinding -> ident '::' type . (rule 197) + + '\}' reduce using rule 197 + '\;' reduce using rule 197 + + +State 593 + + letBinding -> ident many__binderAtom__ guardedDecl . (rule 199) + + '\}' reduce using rule 199 + '\;' reduce using rule 199 + + +State 594 + + letBinding -> binder1 '=' exprWhere . (rule 200) + + '\}' reduce using rule 200 + '\;' reduce using rule 200 + + +State 595 + + expr5 -> 'let' '\{' manySep__letBinding__'\;'__ '\}' 'in' . expr (rule 167) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 659 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 596 + + manySep1__letBinding__'\;'__ -> manySep1__letBinding__'\;'__ '\;' letBinding . (rule 395) + + '\}' reduce using rule 395 + '\;' reduce using rule 395 + + +State 597 + + moduleHeader -> 'module' moduleName exports 'where' '\{' . moduleImports (rule 242) + + error reduce using rule 247 + 'import' reduce using rule 247 + + moduleImports goto state 657 + importDecls goto state 658 + +State 598 + + export -> 'type' symbol . (rule 260) + + ')' reduce using rule 260 + ',' reduce using rule 260 + + +State 599 + + export -> 'module' moduleName . (rule 262) + + ')' reduce using rule 262 + ',' reduce using rule 262 + + +State 600 + + export -> 'class' properName . (rule 261) + + ')' reduce using rule 261 + ',' reduce using rule 261 + + +State 601 + + sep1__export__','__ -> sep1__export__','__ ',' . export (rule 410) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 533 + 'hiding' shift, and enter state 47 + 'module' shift, and enter state 534 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 535 + '(..)' shift, and enter state 479 + LOWER shift, and enter state 53 + UPPER shift, and enter state 63 + SYMBOL shift, and enter state 480 + + properName goto state 527 + ident goto state 528 + symbol goto state 529 + export goto state 656 + +State 602 + + exports -> '(' sep__export__','__ ')' . (rule 255) + + 'where' reduce using rule 255 + + +State 603 + + export -> properName dataMembers . (rule 259) + + ')' reduce using rule 259 + ',' reduce using rule 259 + + +State 604 + + dataMembers -> '(' . ')' (rule 264) + dataMembers -> '(' . sep__properName__','__ ')' (rule 265) + + ')' shift, and enter state 655 + UPPER shift, and enter state 63 + + properName goto state 652 + sep__properName__','__goto state 653 + sep1__properName__','__goto state 654 + +State 605 + + dataMembers -> '(..)' . (rule 263) + + ')' reduce using rule 263 + ',' reduce using rule 263 + + +State 606 + + typeVarBinding -> '(' ident '::' type . ')' (rule 141) + + ')' shift, and enter state 651 + + +State 607 + + typeVarBinding -> '(' '@' ident '::' . type ')' (rule 142) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 650 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 608 + + typeAtom -> '(' typeKindedAtom '::' type . ')' (rule 124) + typeKindedAtom -> '(' typeKindedAtom '::' type . ')' (rule 133) + + ')' shift, and enter state 649 + + +State 609 + + typeAtom -> '(' typeKindedAtom '::' type ')' . (rule 124) + + error reduce using rule 124 + '(' reduce using rule 124 + ')' reduce using rule 124 + '{' reduce using rule 124 + '}' reduce using rule 124 + '[' reduce using rule 124 + ']' reduce using rule 124 + '\}' reduce using rule 124 + '\;' reduce using rule 124 + '<-' reduce using rule 124 + '->' reduce using rule 124 + '<=' reduce using rule 124 + '=>' reduce using rule 124 + ':' reduce using rule 124 + '::' reduce using rule 124 + '|' reduce using rule 124 + '`' reduce using rule 124 + ',' reduce using rule 124 + '_' reduce using rule 124 + '\\' reduce using rule 124 + '-' reduce using rule 124 + '@' reduce using rule 124 + 'ado' reduce using rule 124 + 'as' reduce using rule 124 + 'case' reduce using rule 124 + 'do' reduce using rule 124 + 'else' reduce using rule 124 + 'false' reduce using rule 124 + 'hiding' reduce using rule 124 + 'if' reduce using rule 124 + 'let' reduce using rule 124 + 'nominal' reduce using rule 124 + 'phantom' reduce using rule 124 + 'of' reduce using rule 124 + 'representational'reduce using rule 124 + 'role' reduce using rule 124 + 'then' reduce using rule 124 + 'true' reduce using rule 124 + 'where' reduce using rule 124 + '(->)' reduce using rule 124 + '(..)' reduce using rule 124 + LOWER reduce using rule 124 + QUAL_LOWER reduce using rule 124 + UPPER reduce using rule 124 + QUAL_UPPER reduce using rule 124 + SYMBOL reduce using rule 124 + QUAL_SYMBOL reduce using rule 124 + OPERATOR reduce using rule 124 + QUAL_OPERATOR reduce using rule 124 + LIT_HOLE reduce using rule 124 + LIT_CHAR reduce using rule 124 + LIT_STRING reduce using rule 124 + LIT_RAW_STRING reduce using rule 124 + LIT_INT reduce using rule 124 + LIT_NUMBER reduce using rule 124 + %eof reduce using rule 124 + + +State 610 + + guardedDeclExpr -> guard '=' exprWhere . (rule 204) + + error reduce using rule 204 + '\}' reduce using rule 204 + '\;' reduce using rule 204 + '|' reduce using rule 204 + 'else' reduce using rule 204 + %eof reduce using rule 204 + + +State 611 + + exprWhere -> expr 'where' . '\{' manySep__letBinding__'\;'__ '\}' (rule 148) + + '\{' shift, and enter state 648 + + +State 612 + + sep1__dataCtor__'|'__ -> sep1__dataCtor__'|'__ '|' dataCtor . (rule 406) + + error reduce using rule 406 + '\}' reduce using rule 406 + '\;' reduce using rule 406 + '|' reduce using rule 406 + 'else' reduce using rule 406 + %eof reduce using rule 406 + + +State 613 + + manySep1__classMember__'\;'__ -> manySep1__classMember__'\;'__ '\;' . classMember (rule 391) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 505 + classMember goto state 647 + +State 614 + + decl -> classHead 'where' '\{' manySep__classMember__'\;'__ '\}' . (rule 282) + + error reduce using rule 282 + '\}' reduce using rule 282 + '\;' reduce using rule 282 + 'else' reduce using rule 282 + %eof reduce using rule 282 + + +State 615 + + classMember -> ident '::' . type (rule 308) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 646 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 616 + + manySep1__instBinding__'\;'__ -> manySep1__instBinding__'\;'__ '\;' . instBinding (rule 393) + + 'as' shift, and enter state 45 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + LOWER shift, and enter state 53 + + ident goto state 501 + instBinding goto state 645 + +State 617 + + decl -> instHead 'where' '\{' manySep__instBinding__'\;'__ '\}' . (rule 284) + + error reduce using rule 284 + '\}' reduce using rule 284 + '\;' reduce using rule 284 + 'else' reduce using rule 284 + %eof reduce using rule 284 + + +State 618 + + instBinding -> ident manyOrEmpty__binderAtom__ . guardedDecl (rule 318) + + '=' shift, and enter state 433 + '|' shift, and enter state 434 + + guardedDecl goto state 644 + guardedDeclExprgoto state 429 + guard goto state 430 + many__guardedDeclExpr__goto state 431 + many1__guardedDeclExpr__goto state 432 + +State 619 + + instBinding -> ident '::' . type (rule 317) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 643 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 620 + + fixity -> infix int qualProperName 'as' op . (rule 320) + + error reduce using rule 320 + '\}' reduce using rule 320 + '\;' reduce using rule 320 + 'else' reduce using rule 320 + %eof reduce using rule 320 + + +State 621 + + fixity -> infix int qualIdent 'as' op . (rule 319) + + error reduce using rule 319 + '\}' reduce using rule 319 + '\;' reduce using rule 319 + 'else' reduce using rule 319 + %eof reduce using rule 319 + + +State 622 + + fixity -> infix int 'type' qualProperName 'as' . op (rule 321) + + '<=' shift, and enter state 192 + ':' shift, and enter state 193 + '-' shift, and enter state 194 + OPERATOR shift, and enter state 195 + + op goto state 642 + +State 623 + + typeVarBindingPlain -> '(' ident '::' . type ')' (rule 144) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 641 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 624 + + decl -> 'foreign' 'import' ident '::' type . (rule 293) + + error reduce using rule 293 + '\}' reduce using rule 293 + '\;' reduce using rule 293 + 'else' reduce using rule 293 + %eof reduce using rule 293 + + +State 625 + + decl -> 'foreign' 'import' 'data' properName '::' . type (rule 294) + + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '_' shift, and enter state 150 + '-' shift, and enter state 151 + 'as' shift, and enter state 45 + 'forall' shift, and enter state 152 + 'forallu' shift, and enter state 153 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + type goto state 640 + type1 goto state 140 + type2 goto state 141 + type3 goto state 142 + type4 goto state 143 + type5 goto state 144 + typeAtom goto state 145 + forall goto state 146 + +State 626 + + instHead -> 'instance' constraints '=>' qualProperName manyOrEmpty__typeAtom__ . (rule 309) + + error reduce using rule 309 + '\}' reduce using rule 309 + '\;' reduce using rule 309 + 'else' reduce using rule 309 + 'where' reduce using rule 309 + %eof reduce using rule 309 + + +State 627 + + instHead -> 'instance' ident '::' constraints '=>' . qualProperName manyOrEmpty__typeAtom__ (rule 311) + + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + + qualProperName goto state 639 + +State 628 + + instHead -> 'instance' ident '::' qualProperName manyOrEmpty__typeAtom__ . (rule 312) + constraint -> qualProperName manyOrEmpty__typeAtom__ . (rule 315) + + error reduce using rule 312 + '\}' reduce using rule 312 + '\;' reduce using rule 312 + '=>' reduce using rule 315 + 'else' reduce using rule 312 + 'where' reduce using rule 312 + %eof reduce using rule 312 + + +State 629 + + many1__role__ -> many1__role__ role . (rule 385) + + error reduce using rule 385 + '\}' reduce using rule 385 + '\;' reduce using rule 385 + 'else' reduce using rule 385 + 'nominal' reduce using rule 385 + 'phantom' reduce using rule 385 + 'representational'reduce using rule 385 + %eof reduce using rule 385 + + +State 630 + + importDecl -> 'import' moduleName imports 'as' moduleName . (rule 267) + + error reduce using rule 267 + '\}' reduce using rule 267 + '\;' reduce using rule 267 + + +State 631 + + import -> 'type' symbol . (rule 275) + + ')' reduce using rule 275 + ',' reduce using rule 275 + + +State 632 + + import -> 'class' properName . (rule 276) + + ')' reduce using rule 276 + ',' reduce using rule 276 + + +State 633 + + sep1__import__','__ -> sep1__import__','__ ',' . import (rule 416) + + 'as' shift, and enter state 45 + 'class' shift, and enter state 477 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'type' shift, and enter state 478 + '(..)' shift, and enter state 479 + LOWER shift, and enter state 53 + UPPER shift, and enter state 63 + SYMBOL shift, and enter state 480 + + properName goto state 471 + ident goto state 472 + symbol goto state 473 + import goto state 638 + +State 634 + + imports -> '(' sep__import__','__ ')' . (rule 269) + + error reduce using rule 269 + '\}' reduce using rule 269 + '\;' reduce using rule 269 + 'as' reduce using rule 269 + + +State 635 + + import -> properName dataMembers . (rule 274) + + ')' reduce using rule 274 + ',' reduce using rule 274 + + +State 636 + + imports -> 'hiding' '(' sep__import__','__ . ')' (rule 270) + + ')' shift, and enter state 637 + + +State 637 + + imports -> 'hiding' '(' sep__import__','__ ')' . (rule 270) + + error reduce using rule 270 + '\}' reduce using rule 270 + '\;' reduce using rule 270 + 'as' reduce using rule 270 + + +State 638 + + sep1__import__','__ -> sep1__import__','__ ',' import . (rule 416) + + ')' reduce using rule 416 + ',' reduce using rule 416 + + +State 639 + + instHead -> 'instance' ident '::' constraints '=>' qualProperName . manyOrEmpty__typeAtom__ (rule 311) + + error reduce using rule 350 + '(' shift, and enter state 148 + '{' shift, and enter state 149 + '\}' reduce using rule 350 + '\;' reduce using rule 350 + '_' shift, and enter state 150 + 'as' shift, and enter state 45 + 'else' reduce using rule 350 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'where' reduce using rule 350 + '(->)' shift, and enter state 154 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 155 + %eof reduce using rule 350 + + qualProperName goto state 133 + ident goto state 134 + qualSymbol goto state 135 + hole goto state 136 + string goto state 137 + int goto state 138 + typeAtom goto state 333 + manyOrEmpty__typeAtom__goto state 695 + many__typeAtom__goto state 335 + many1__typeAtom__goto state 336 + +State 640 + + decl -> 'foreign' 'import' 'data' properName '::' type . (rule 294) + + error reduce using rule 294 + '\}' reduce using rule 294 + '\;' reduce using rule 294 + 'else' reduce using rule 294 + %eof reduce using rule 294 + + +State 641 + + typeVarBindingPlain -> '(' ident '::' type . ')' (rule 144) + + ')' shift, and enter state 694 + + +State 642 + + fixity -> infix int 'type' qualProperName 'as' op . (rule 321) + + error reduce using rule 321 + '\}' reduce using rule 321 + '\;' reduce using rule 321 + 'else' reduce using rule 321 + %eof reduce using rule 321 + + +State 643 + + instBinding -> ident '::' type . (rule 317) + + '\}' reduce using rule 317 + '\;' reduce using rule 317 + + +State 644 + + instBinding -> ident manyOrEmpty__binderAtom__ guardedDecl . (rule 318) + + '\}' reduce using rule 318 + '\;' reduce using rule 318 + + +State 645 + + manySep1__instBinding__'\;'__ -> manySep1__instBinding__'\;'__ '\;' instBinding . (rule 393) + + '\}' reduce using rule 393 + '\;' reduce using rule 393 + + +State 646 + + classMember -> ident '::' type . (rule 308) + + '\}' reduce using rule 308 + '\;' reduce using rule 308 + + +State 647 + + manySep1__classMember__'\;'__ -> manySep1__classMember__'\;'__ '\;' classMember . (rule 391) + + '\}' reduce using rule 391 + '\;' reduce using rule 391 + + +State 648 + + exprWhere -> expr 'where' '\{' . manySep__letBinding__'\;'__ '\}' (rule 148) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 396 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + letBinding goto state 397 + binder1 goto state 398 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + manySep__letBinding__'\;'__goto state 693 + many1__binderAtom__goto state 39 + manySep1__letBinding__'\;'__goto state 400 + +State 649 + + typeAtom -> '(' typeKindedAtom '::' type ')' . (rule 124) + typeKindedAtom -> '(' typeKindedAtom '::' type ')' . (rule 133) + + '(' reduce using rule 124 + ')' reduce using rule 124 + '{' reduce using rule 124 + '->' reduce using rule 124 + '<=' reduce using rule 124 + '=>' reduce using rule 124 + ':' reduce using rule 124 + '::' reduce using rule 133 + '_' reduce using rule 124 + '-' reduce using rule 124 + 'as' reduce using rule 124 + 'hiding' reduce using rule 124 + 'nominal' reduce using rule 124 + 'phantom' reduce using rule 124 + 'representational'reduce using rule 124 + 'role' reduce using rule 124 + '(->)' reduce using rule 124 + '(..)' reduce using rule 124 + LOWER reduce using rule 124 + UPPER reduce using rule 124 + QUAL_UPPER reduce using rule 124 + SYMBOL reduce using rule 124 + QUAL_SYMBOL reduce using rule 124 + OPERATOR reduce using rule 124 + QUAL_OPERATOR reduce using rule 124 + LIT_HOLE reduce using rule 124 + LIT_STRING reduce using rule 124 + LIT_RAW_STRING reduce using rule 124 + LIT_INT reduce using rule 124 + + +State 650 + + typeVarBinding -> '(' '@' ident '::' type . ')' (rule 142) + + ')' shift, and enter state 692 + + +State 651 + + typeVarBinding -> '(' ident '::' type ')' . (rule 141) + + error reduce using rule 141 + '(' reduce using rule 141 + '|' reduce using rule 141 + '.' reduce using rule 141 + '@' reduce using rule 141 + 'as' reduce using rule 141 + 'hiding' reduce using rule 141 + 'nominal' reduce using rule 141 + 'phantom' reduce using rule 141 + 'representational'reduce using rule 141 + 'role' reduce using rule 141 + LOWER reduce using rule 141 + + +State 652 + + sep1__properName__','__ -> properName . (rule 419) + + ')' reduce using rule 419 + ',' reduce using rule 419 + + +State 653 + + dataMembers -> '(' sep__properName__','__ . ')' (rule 265) + + ')' shift, and enter state 691 + + +State 654 + + sep__properName__','__ -> sep1__properName__','__ . (rule 370) + sep1__properName__','__ -> sep1__properName__','__ . ',' properName (rule 420) + + ')' reduce using rule 370 + ',' shift, and enter state 690 + + +State 655 + + dataMembers -> '(' ')' . (rule 264) + + ')' reduce using rule 264 + ',' reduce using rule 264 + + +State 656 + + sep1__export__','__ -> sep1__export__','__ ',' export . (rule 410) + + ')' reduce using rule 410 + ',' reduce using rule 410 + + +State 657 + + moduleHeader -> 'module' moduleName exports 'where' '\{' moduleImports . (rule 242) + + error reduce using rule 242 + + +State 658 + + moduleImports -> importDecls . importDecl '\}' (rule 244) + moduleImports -> importDecls . (rule 245) + importDecls -> importDecls . importDecl '\;' (rule 246) + + error reduce using rule 245 + 'import' shift, and enter state 180 + + importDecl goto state 689 + +State 659 + + expr5 -> 'let' '\{' manySep__letBinding__'\;'__ '\}' 'in' expr . (rule 167) + + error reduce using rule 167 + '(' reduce using rule 167 + ')' reduce using rule 167 + '{' reduce using rule 167 + '}' reduce using rule 167 + '[' reduce using rule 167 + ']' reduce using rule 167 + '\}' reduce using rule 167 + '\;' reduce using rule 167 + '<=' reduce using rule 167 + ':' reduce using rule 167 + '::' reduce using rule 167 + '|' reduce using rule 167 + '`' reduce using rule 167 + ',' reduce using rule 167 + '_' reduce using rule 167 + '\\' reduce using rule 167 + '-' reduce using rule 167 + '@' reduce using rule 167 + 'ado' reduce using rule 167 + 'as' reduce using rule 167 + 'case' reduce using rule 167 + 'do' reduce using rule 167 + 'else' reduce using rule 167 + 'false' reduce using rule 167 + 'hiding' reduce using rule 167 + 'if' reduce using rule 167 + 'let' reduce using rule 167 + 'nominal' reduce using rule 167 + 'phantom' reduce using rule 167 + 'of' reduce using rule 167 + 'representational'reduce using rule 167 + 'role' reduce using rule 167 + 'then' reduce using rule 167 + 'true' reduce using rule 167 + 'where' reduce using rule 167 + '(..)' reduce using rule 167 + LOWER reduce using rule 167 + QUAL_LOWER reduce using rule 167 + UPPER reduce using rule 167 + QUAL_UPPER reduce using rule 167 + SYMBOL reduce using rule 167 + QUAL_SYMBOL reduce using rule 167 + OPERATOR reduce using rule 167 + QUAL_OPERATOR reduce using rule 167 + LIT_HOLE reduce using rule 167 + LIT_CHAR reduce using rule 167 + LIT_STRING reduce using rule 167 + LIT_RAW_STRING reduce using rule 167 + LIT_INT reduce using rule 167 + LIT_NUMBER reduce using rule 167 + %eof reduce using rule 167 + + +State 660 + + expr5 -> 'if' expr 'then' expr 'else' expr . (rule 163) + + error reduce using rule 163 + '(' reduce using rule 163 + ')' reduce using rule 163 + '{' reduce using rule 163 + '}' reduce using rule 163 + '[' reduce using rule 163 + ']' reduce using rule 163 + '\}' reduce using rule 163 + '\;' reduce using rule 163 + '<=' reduce using rule 163 + ':' reduce using rule 163 + '::' reduce using rule 163 + '|' reduce using rule 163 + '`' reduce using rule 163 + ',' reduce using rule 163 + '_' reduce using rule 163 + '\\' reduce using rule 163 + '-' reduce using rule 163 + '@' reduce using rule 163 + 'ado' reduce using rule 163 + 'as' reduce using rule 163 + 'case' reduce using rule 163 + 'do' reduce using rule 163 + 'else' reduce using rule 163 + 'false' reduce using rule 163 + 'hiding' reduce using rule 163 + 'if' reduce using rule 163 + 'let' reduce using rule 163 + 'nominal' reduce using rule 163 + 'phantom' reduce using rule 163 + 'of' reduce using rule 163 + 'representational'reduce using rule 163 + 'role' reduce using rule 163 + 'then' reduce using rule 163 + 'true' reduce using rule 163 + 'where' reduce using rule 163 + '(..)' reduce using rule 163 + LOWER reduce using rule 163 + QUAL_LOWER reduce using rule 163 + UPPER reduce using rule 163 + QUAL_UPPER reduce using rule 163 + SYMBOL reduce using rule 163 + QUAL_SYMBOL reduce using rule 163 + OPERATOR reduce using rule 163 + QUAL_OPERATOR reduce using rule 163 + LIT_HOLE reduce using rule 163 + LIT_CHAR reduce using rule 163 + LIT_STRING reduce using rule 163 + LIT_RAW_STRING reduce using rule 163 + LIT_INT reduce using rule 163 + LIT_NUMBER reduce using rule 163 + %eof reduce using rule 163 + + +State 661 + + sep1__binder1__','__ -> sep1__binder1__','__ ',' . binder1 (rule 402) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + binder1 goto state 688 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + many1__binderAtom__goto state 39 + +State 662 + + manySep1__caseBranch__'\;'__ -> manySep1__caseBranch__'\;'__ '\;' . caseBranch (rule 389) + + '(' shift, and enter state 40 + '{' shift, and enter state 41 + '[' shift, and enter state 42 + '_' shift, and enter state 43 + '-' shift, and enter state 44 + 'as' shift, and enter state 45 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 47 + 'nominal' shift, and enter state 48 + 'phantom' shift, and enter state 49 + 'representational'shift, and enter state 50 + 'role' shift, and enter state 51 + 'true' shift, and enter state 52 + LOWER shift, and enter state 53 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 25 + ident goto state 26 + string goto state 27 + char goto state 28 + number goto state 29 + boolean goto state 30 + caseBranch goto state 686 + binder1 goto state 586 + binder2 goto state 34 + binderAtom goto state 35 + delim__'['__binder__','__']'__goto state 36 + delim__'{'__recordBinder__','__'}'__goto state 37 + many__binderAtom__goto state 38 + sep__binder1__','__goto state 687 + many1__binderAtom__goto state 39 + sep1__binder1__','__goto state 590 + +State 663 + + caseBranch -> sep__binder1__','__ guardedCase . (rule 201) + + '\}' reduce using rule 201 + '\;' reduce using rule 201 + + +State 664 + + many1__guardedCaseExpr__ -> guardedCaseExpr . (rule 378) + + error reduce using rule 378 + '(' reduce using rule 378 + ')' reduce using rule 378 + '{' reduce using rule 378 + '}' reduce using rule 378 + '[' reduce using rule 378 + ']' reduce using rule 378 + '\}' reduce using rule 378 + '\;' reduce using rule 378 + '<=' reduce using rule 378 + ':' reduce using rule 378 + '::' reduce using rule 378 + '|' reduce using rule 378 + '`' reduce using rule 378 + ',' reduce using rule 378 + '_' reduce using rule 378 + '\\' reduce using rule 378 + '-' reduce using rule 378 + '@' reduce using rule 378 + 'ado' reduce using rule 378 + 'as' reduce using rule 378 + 'case' reduce using rule 378 + 'do' reduce using rule 378 + 'else' reduce using rule 378 + 'false' reduce using rule 378 + 'hiding' reduce using rule 378 + 'if' reduce using rule 378 + 'let' reduce using rule 378 + 'nominal' reduce using rule 378 + 'phantom' reduce using rule 378 + 'of' reduce using rule 378 + 'representational'reduce using rule 378 + 'role' reduce using rule 378 + 'then' reduce using rule 378 + 'true' reduce using rule 378 + 'where' reduce using rule 378 + '(..)' reduce using rule 378 + LOWER reduce using rule 378 + QUAL_LOWER reduce using rule 378 + UPPER reduce using rule 378 + QUAL_UPPER reduce using rule 378 + SYMBOL reduce using rule 378 + QUAL_SYMBOL reduce using rule 378 + OPERATOR reduce using rule 378 + QUAL_OPERATOR reduce using rule 378 + LIT_HOLE reduce using rule 378 + LIT_CHAR reduce using rule 378 + LIT_STRING reduce using rule 378 + LIT_RAW_STRING reduce using rule 378 + LIT_INT reduce using rule 378 + LIT_NUMBER reduce using rule 378 + %eof reduce using rule 378 + + +State 665 + + guardedCaseExpr -> guard . '->' exprWhere (rule 207) + + '->' shift, and enter state 685 + + +State 666 + + guardedCase -> many__guardedCaseExpr__ . (rule 206) + + error reduce using rule 206 + '(' reduce using rule 206 + ')' reduce using rule 206 + '{' reduce using rule 206 + '}' reduce using rule 206 + '[' reduce using rule 206 + ']' reduce using rule 206 + '\}' reduce using rule 206 + '\;' reduce using rule 206 + '<=' reduce using rule 206 + ':' reduce using rule 206 + '::' reduce using rule 206 + '|' reduce using rule 206 + '`' reduce using rule 206 + ',' reduce using rule 206 + '_' reduce using rule 206 + '\\' reduce using rule 206 + '-' reduce using rule 206 + '@' reduce using rule 206 + 'ado' reduce using rule 206 + 'as' reduce using rule 206 + 'case' reduce using rule 206 + 'do' reduce using rule 206 + 'else' reduce using rule 206 + 'false' reduce using rule 206 + 'hiding' reduce using rule 206 + 'if' reduce using rule 206 + 'let' reduce using rule 206 + 'nominal' reduce using rule 206 + 'phantom' reduce using rule 206 + 'of' reduce using rule 206 + 'representational'reduce using rule 206 + 'role' reduce using rule 206 + 'then' reduce using rule 206 + 'true' reduce using rule 206 + 'where' reduce using rule 206 + '(..)' reduce using rule 206 + LOWER reduce using rule 206 + QUAL_LOWER reduce using rule 206 + UPPER reduce using rule 206 + QUAL_UPPER reduce using rule 206 + SYMBOL reduce using rule 206 + QUAL_SYMBOL reduce using rule 206 + OPERATOR reduce using rule 206 + QUAL_OPERATOR reduce using rule 206 + LIT_HOLE reduce using rule 206 + LIT_CHAR reduce using rule 206 + LIT_STRING reduce using rule 206 + LIT_RAW_STRING reduce using rule 206 + LIT_INT reduce using rule 206 + LIT_NUMBER reduce using rule 206 + %eof reduce using rule 206 + + +State 667 + + many__guardedCaseExpr__ -> many1__guardedCaseExpr__ . (rule 343) + many1__guardedCaseExpr__ -> many1__guardedCaseExpr__ . guardedCaseExpr (rule 379) + + error reduce using rule 343 + '(' reduce using rule 343 + ')' reduce using rule 343 + '{' reduce using rule 343 + '}' reduce using rule 343 + '[' reduce using rule 343 + ']' reduce using rule 343 + '\}' reduce using rule 343 + '\;' reduce using rule 343 + '<=' reduce using rule 343 + ':' reduce using rule 343 + '::' reduce using rule 343 + '|' shift, and enter state 434 + '`' reduce using rule 343 + ',' reduce using rule 343 + '_' reduce using rule 343 + '\\' reduce using rule 343 + '-' reduce using rule 343 + '@' reduce using rule 343 + 'ado' reduce using rule 343 + 'as' reduce using rule 343 + 'case' reduce using rule 343 + 'do' reduce using rule 343 + 'else' reduce using rule 343 + 'false' reduce using rule 343 + 'hiding' reduce using rule 343 + 'if' reduce using rule 343 + 'let' reduce using rule 343 + 'nominal' reduce using rule 343 + 'phantom' reduce using rule 343 + 'of' reduce using rule 343 + 'representational'reduce using rule 343 + 'role' reduce using rule 343 + 'then' reduce using rule 343 + 'true' reduce using rule 343 + 'where' reduce using rule 343 + '(..)' reduce using rule 343 + LOWER reduce using rule 343 + QUAL_LOWER reduce using rule 343 + UPPER reduce using rule 343 + QUAL_UPPER reduce using rule 343 + SYMBOL reduce using rule 343 + QUAL_SYMBOL reduce using rule 343 + OPERATOR reduce using rule 343 + QUAL_OPERATOR reduce using rule 343 + LIT_HOLE reduce using rule 343 + LIT_CHAR reduce using rule 343 + LIT_STRING reduce using rule 343 + LIT_RAW_STRING reduce using rule 343 + LIT_INT reduce using rule 343 + LIT_NUMBER reduce using rule 343 + %eof reduce using rule 343 + + guardedCaseExprgoto state 684 + guard goto state 665 + +State 668 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '\}' . guardedCase (rule 170) + + '->' shift, and enter state 683 + '|' shift, and enter state 434 + + guardedCase goto state 682 + guardedCaseExprgoto state 664 + guard goto state 665 + many__guardedCaseExpr__goto state 666 + many1__guardedCaseExpr__goto state 667 + +State 669 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '->' . '\}' exprWhere (rule 169) + guardedCase -> '->' . exprWhere (rule 205) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '\}' shift, and enter state 681 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 680 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 670 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' manySep__caseBranch__'\;'__ '\}' . (rule 168) + + error reduce using rule 168 + '(' reduce using rule 168 + ')' reduce using rule 168 + '{' reduce using rule 168 + '}' reduce using rule 168 + '[' reduce using rule 168 + ']' reduce using rule 168 + '\}' reduce using rule 168 + '\;' reduce using rule 168 + '<=' reduce using rule 168 + ':' reduce using rule 168 + '::' reduce using rule 168 + '|' reduce using rule 168 + '`' reduce using rule 168 + ',' reduce using rule 168 + '_' reduce using rule 168 + '\\' reduce using rule 168 + '-' reduce using rule 168 + '@' reduce using rule 168 + 'ado' reduce using rule 168 + 'as' reduce using rule 168 + 'case' reduce using rule 168 + 'do' reduce using rule 168 + 'else' reduce using rule 168 + 'false' reduce using rule 168 + 'hiding' reduce using rule 168 + 'if' reduce using rule 168 + 'let' reduce using rule 168 + 'nominal' reduce using rule 168 + 'phantom' reduce using rule 168 + 'of' reduce using rule 168 + 'representational'reduce using rule 168 + 'role' reduce using rule 168 + 'then' reduce using rule 168 + 'true' reduce using rule 168 + 'where' reduce using rule 168 + '(..)' reduce using rule 168 + LOWER reduce using rule 168 + QUAL_LOWER reduce using rule 168 + UPPER reduce using rule 168 + QUAL_UPPER reduce using rule 168 + SYMBOL reduce using rule 168 + QUAL_SYMBOL reduce using rule 168 + OPERATOR reduce using rule 168 + QUAL_OPERATOR reduce using rule 168 + LIT_HOLE reduce using rule 168 + LIT_CHAR reduce using rule 168 + LIT_STRING reduce using rule 168 + LIT_RAW_STRING reduce using rule 168 + LIT_INT reduce using rule 168 + LIT_NUMBER reduce using rule 168 + %eof reduce using rule 168 + + +State 671 + + sep1__recordUpdate__','__ -> sep1__recordUpdate__','__ ',' . recordUpdate (rule 422) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 579 + recordUpdate goto state 679 + +State 672 + + recordUpdateOrLabel -> label '{' sep__recordUpdate__','__ '}' . (rule 194) + + '}' reduce using rule 194 + ',' reduce using rule 194 + + +State 673 + + recordUpdate -> label '{' . sep__recordUpdate__','__ '}' (rule 196) + + 'ado' shift, and enter state 230 + 'as' shift, and enter state 231 + 'case' shift, and enter state 232 + 'class' shift, and enter state 233 + 'data' shift, and enter state 234 + 'derive' shift, and enter state 235 + 'do' shift, and enter state 236 + 'else' shift, and enter state 237 + 'false' shift, and enter state 238 + 'forall' shift, and enter state 239 + 'foreign' shift, and enter state 240 + 'hiding' shift, and enter state 241 + 'import' shift, and enter state 242 + 'if' shift, and enter state 243 + 'in' shift, and enter state 244 + 'infix' shift, and enter state 245 + 'infixl' shift, and enter state 246 + 'infixr' shift, and enter state 247 + 'instance' shift, and enter state 248 + 'let' shift, and enter state 249 + 'module' shift, and enter state 250 + 'newtype' shift, and enter state 251 + 'nominal' shift, and enter state 252 + 'phantom' shift, and enter state 253 + 'of' shift, and enter state 254 + 'representational'shift, and enter state 255 + 'role' shift, and enter state 256 + 'then' shift, and enter state 257 + 'true' shift, and enter state 258 + 'type' shift, and enter state 259 + 'where' shift, and enter state 260 + LOWER shift, and enter state 261 + LIT_STRING shift, and enter state 262 + LIT_RAW_STRING shift, and enter state 263 + + label goto state 579 + recordUpdate goto state 580 + sep__recordUpdate__','__goto state 678 + sep1__recordUpdate__','__goto state 582 + +State 674 + + recordUpdate -> label '=' . expr (rule 195) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + expr goto state 677 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 675 + + fundep -> many__ident__ '->' many__ident__ . (rule 307) + + error reduce using rule 307 + ',' reduce using rule 307 + + +State 676 + + sep1__fundep__','__ -> sep1__fundep__','__ ',' fundep . (rule 414) + + error reduce using rule 414 + ',' reduce using rule 414 + + +State 677 + + recordUpdate -> label '=' expr . (rule 195) + + '}' reduce using rule 195 + ',' reduce using rule 195 + + +State 678 + + recordUpdate -> label '{' sep__recordUpdate__','__ . '}' (rule 196) + + '}' shift, and enter state 702 + + +State 679 + + sep1__recordUpdate__','__ -> sep1__recordUpdate__','__ ',' recordUpdate . (rule 422) + + '}' reduce using rule 422 + ',' reduce using rule 422 + + +State 680 + + guardedCase -> '->' exprWhere . (rule 205) + + error reduce using rule 205 + '(' reduce using rule 205 + ')' reduce using rule 205 + '{' reduce using rule 205 + '}' reduce using rule 205 + '[' reduce using rule 205 + ']' reduce using rule 205 + '\}' reduce using rule 205 + '\;' reduce using rule 205 + '<=' reduce using rule 205 + ':' reduce using rule 205 + '::' reduce using rule 205 + '|' reduce using rule 205 + '`' reduce using rule 205 + ',' reduce using rule 205 + '_' reduce using rule 205 + '\\' reduce using rule 205 + '-' reduce using rule 205 + '@' reduce using rule 205 + 'ado' reduce using rule 205 + 'as' reduce using rule 205 + 'case' reduce using rule 205 + 'do' reduce using rule 205 + 'else' reduce using rule 205 + 'false' reduce using rule 205 + 'hiding' reduce using rule 205 + 'if' reduce using rule 205 + 'let' reduce using rule 205 + 'nominal' reduce using rule 205 + 'phantom' reduce using rule 205 + 'of' reduce using rule 205 + 'representational'reduce using rule 205 + 'role' reduce using rule 205 + 'then' reduce using rule 205 + 'true' reduce using rule 205 + 'where' reduce using rule 205 + '(..)' reduce using rule 205 + LOWER reduce using rule 205 + QUAL_LOWER reduce using rule 205 + UPPER reduce using rule 205 + QUAL_UPPER reduce using rule 205 + SYMBOL reduce using rule 205 + QUAL_SYMBOL reduce using rule 205 + OPERATOR reduce using rule 205 + QUAL_OPERATOR reduce using rule 205 + LIT_HOLE reduce using rule 205 + LIT_CHAR reduce using rule 205 + LIT_STRING reduce using rule 205 + LIT_RAW_STRING reduce using rule 205 + LIT_INT reduce using rule 205 + LIT_NUMBER reduce using rule 205 + %eof reduce using rule 205 + + +State 681 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '->' '\}' . exprWhere (rule 169) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 701 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 682 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '\}' guardedCase . (rule 170) + + error reduce using rule 170 + '(' reduce using rule 170 + ')' reduce using rule 170 + '{' reduce using rule 170 + '}' reduce using rule 170 + '[' reduce using rule 170 + ']' reduce using rule 170 + '\}' reduce using rule 170 + '\;' reduce using rule 170 + '<=' reduce using rule 170 + ':' reduce using rule 170 + '::' reduce using rule 170 + '|' reduce using rule 170 + '`' reduce using rule 170 + ',' reduce using rule 170 + '_' reduce using rule 170 + '\\' reduce using rule 170 + '-' reduce using rule 170 + '@' reduce using rule 170 + 'ado' reduce using rule 170 + 'as' reduce using rule 170 + 'case' reduce using rule 170 + 'do' reduce using rule 170 + 'else' reduce using rule 170 + 'false' reduce using rule 170 + 'hiding' reduce using rule 170 + 'if' reduce using rule 170 + 'let' reduce using rule 170 + 'nominal' reduce using rule 170 + 'phantom' reduce using rule 170 + 'of' reduce using rule 170 + 'representational'reduce using rule 170 + 'role' reduce using rule 170 + 'then' reduce using rule 170 + 'true' reduce using rule 170 + 'where' reduce using rule 170 + '(..)' reduce using rule 170 + LOWER reduce using rule 170 + QUAL_LOWER reduce using rule 170 + UPPER reduce using rule 170 + QUAL_UPPER reduce using rule 170 + SYMBOL reduce using rule 170 + QUAL_SYMBOL reduce using rule 170 + OPERATOR reduce using rule 170 + QUAL_OPERATOR reduce using rule 170 + LIT_HOLE reduce using rule 170 + LIT_CHAR reduce using rule 170 + LIT_STRING reduce using rule 170 + LIT_RAW_STRING reduce using rule 170 + LIT_INT reduce using rule 170 + LIT_NUMBER reduce using rule 170 + %eof reduce using rule 170 + + +State 683 + + guardedCase -> '->' . exprWhere (rule 205) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 680 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 684 + + many1__guardedCaseExpr__ -> many1__guardedCaseExpr__ guardedCaseExpr . (rule 379) + + error reduce using rule 379 + '(' reduce using rule 379 + ')' reduce using rule 379 + '{' reduce using rule 379 + '}' reduce using rule 379 + '[' reduce using rule 379 + ']' reduce using rule 379 + '\}' reduce using rule 379 + '\;' reduce using rule 379 + '<=' reduce using rule 379 + ':' reduce using rule 379 + '::' reduce using rule 379 + '|' reduce using rule 379 + '`' reduce using rule 379 + ',' reduce using rule 379 + '_' reduce using rule 379 + '\\' reduce using rule 379 + '-' reduce using rule 379 + '@' reduce using rule 379 + 'ado' reduce using rule 379 + 'as' reduce using rule 379 + 'case' reduce using rule 379 + 'do' reduce using rule 379 + 'else' reduce using rule 379 + 'false' reduce using rule 379 + 'hiding' reduce using rule 379 + 'if' reduce using rule 379 + 'let' reduce using rule 379 + 'nominal' reduce using rule 379 + 'phantom' reduce using rule 379 + 'of' reduce using rule 379 + 'representational'reduce using rule 379 + 'role' reduce using rule 379 + 'then' reduce using rule 379 + 'true' reduce using rule 379 + 'where' reduce using rule 379 + '(..)' reduce using rule 379 + LOWER reduce using rule 379 + QUAL_LOWER reduce using rule 379 + UPPER reduce using rule 379 + QUAL_UPPER reduce using rule 379 + SYMBOL reduce using rule 379 + QUAL_SYMBOL reduce using rule 379 + OPERATOR reduce using rule 379 + QUAL_OPERATOR reduce using rule 379 + LIT_HOLE reduce using rule 379 + LIT_CHAR reduce using rule 379 + LIT_STRING reduce using rule 379 + LIT_RAW_STRING reduce using rule 379 + LIT_INT reduce using rule 379 + LIT_NUMBER reduce using rule 379 + %eof reduce using rule 379 + + +State 685 + + guardedCaseExpr -> guard '->' . exprWhere (rule 207) + + '(' shift, and enter state 95 + '{' shift, and enter state 96 + '[' shift, and enter state 97 + '_' shift, and enter state 98 + '\\' shift, and enter state 99 + '-' shift, and enter state 100 + 'ado' shift, and enter state 101 + 'as' shift, and enter state 102 + 'case' shift, and enter state 103 + 'do' shift, and enter state 104 + 'false' shift, and enter state 46 + 'hiding' shift, and enter state 105 + 'if' shift, and enter state 106 + 'let' shift, and enter state 107 + 'nominal' shift, and enter state 108 + 'phantom' shift, and enter state 109 + 'representational'shift, and enter state 110 + 'role' shift, and enter state 111 + 'true' shift, and enter state 52 + '(..)' shift, and enter state 112 + LOWER shift, and enter state 113 + QUAL_LOWER shift, and enter state 114 + UPPER shift, and enter state 54 + QUAL_UPPER shift, and enter state 55 + SYMBOL shift, and enter state 115 + QUAL_SYMBOL shift, and enter state 116 + LIT_HOLE shift, and enter state 117 + LIT_CHAR shift, and enter state 56 + LIT_STRING shift, and enter state 57 + LIT_RAW_STRING shift, and enter state 58 + LIT_INT shift, and enter state 59 + LIT_NUMBER shift, and enter state 60 + + qualProperName goto state 74 + qualIdent goto state 75 + qualSymbol goto state 76 + hole goto state 77 + string goto state 78 + char goto state 79 + number goto state 80 + boolean goto state 81 + exprWhere goto state 700 + expr goto state 513 + expr1 goto state 122 + expr2 goto state 83 + expr3 goto state 84 + expr4 goto state 85 + expr5 goto state 86 + expr6 goto state 87 + expr7 goto state 88 + exprAtom goto state 89 + doBlock goto state 90 + adoBlock goto state 91 + delim__'['__expr__','__']'__goto state 93 + delim__'{'__recordLabel__','__'}'__goto state 94 + +State 686 + + manySep1__caseBranch__'\;'__ -> manySep1__caseBranch__'\;'__ '\;' caseBranch . (rule 389) + + '\}' reduce using rule 389 + '\;' reduce using rule 389 + + +State 687 + + caseBranch -> sep__binder1__','__ . guardedCase (rule 201) + + '->' shift, and enter state 683 + '|' shift, and enter state 434 + + guardedCase goto state 663 + guardedCaseExprgoto state 664 + guard goto state 665 + many__guardedCaseExpr__goto state 666 + many1__guardedCaseExpr__goto state 667 + +State 688 + + binder1 -> binder1 . qualOp binder2 (rule 225) + sep1__binder1__','__ -> sep1__binder1__','__ ',' binder1 . (rule 402) + + '\}' reduce using rule 402 + '->' reduce using rule 402 + '<=' shift, and enter state 293 + ':' shift, and enter state 295 + '|' reduce using rule 402 + ',' reduce using rule 402 + '-' shift, and enter state 296 + OPERATOR shift, and enter state 297 + QUAL_OPERATOR shift, and enter state 298 + + qualOp goto state 351 + +State 689 + + moduleImports -> importDecls importDecl . '\}' (rule 244) + importDecls -> importDecls importDecl . '\;' (rule 246) + + '\}' shift, and enter state 698 + '\;' shift, and enter state 699 + + +State 690 + + sep1__properName__','__ -> sep1__properName__','__ ',' . properName (rule 420) + + UPPER shift, and enter state 63 + + properName goto state 697 + +State 691 + + dataMembers -> '(' sep__properName__','__ ')' . (rule 265) + + ')' reduce using rule 265 + ',' reduce using rule 265 + + +State 692 + + typeVarBinding -> '(' '@' ident '::' type ')' . (rule 142) + + error reduce using rule 142 + '(' reduce using rule 142 + '|' reduce using rule 142 + '.' reduce using rule 142 + '@' reduce using rule 142 + 'as' reduce using rule 142 + 'hiding' reduce using rule 142 + 'nominal' reduce using rule 142 + 'phantom' reduce using rule 142 + 'representational'reduce using rule 142 + 'role' reduce using rule 142 + LOWER reduce using rule 142 + + +State 693 + + exprWhere -> expr 'where' '\{' manySep__letBinding__'\;'__ . '\}' (rule 148) + + '\}' shift, and enter state 696 + + +State 694 + + typeVarBindingPlain -> '(' ident '::' type ')' . (rule 144) + + error reduce using rule 144 + '(' reduce using rule 144 + '\}' reduce using rule 144 + '\;' reduce using rule 144 + '=' reduce using rule 144 + 'as' reduce using rule 144 + 'else' reduce using rule 144 + 'hiding' reduce using rule 144 + 'nominal' reduce using rule 144 + 'phantom' reduce using rule 144 + 'representational'reduce using rule 144 + 'role' reduce using rule 144 + LOWER reduce using rule 144 + %eof reduce using rule 144 + + +State 695 + + instHead -> 'instance' ident '::' constraints '=>' qualProperName manyOrEmpty__typeAtom__ . (rule 311) + + error reduce using rule 311 + '\}' reduce using rule 311 + '\;' reduce using rule 311 + 'else' reduce using rule 311 + 'where' reduce using rule 311 + %eof reduce using rule 311 + + +State 696 + + exprWhere -> expr 'where' '\{' manySep__letBinding__'\;'__ '\}' . (rule 148) + + error reduce using rule 148 + '(' reduce using rule 148 + ')' reduce using rule 148 + '{' reduce using rule 148 + '}' reduce using rule 148 + '[' reduce using rule 148 + ']' reduce using rule 148 + '\}' reduce using rule 148 + '\;' reduce using rule 148 + '<=' reduce using rule 148 + ':' reduce using rule 148 + '::' reduce using rule 148 + '|' reduce using rule 148 + '`' reduce using rule 148 + ',' reduce using rule 148 + '_' reduce using rule 148 + '\\' reduce using rule 148 + '-' reduce using rule 148 + '@' reduce using rule 148 + 'ado' reduce using rule 148 + 'as' reduce using rule 148 + 'case' reduce using rule 148 + 'do' reduce using rule 148 + 'else' reduce using rule 148 + 'false' reduce using rule 148 + 'hiding' reduce using rule 148 + 'if' reduce using rule 148 + 'let' reduce using rule 148 + 'nominal' reduce using rule 148 + 'phantom' reduce using rule 148 + 'of' reduce using rule 148 + 'representational'reduce using rule 148 + 'role' reduce using rule 148 + 'then' reduce using rule 148 + 'true' reduce using rule 148 + 'where' reduce using rule 148 + '(..)' reduce using rule 148 + LOWER reduce using rule 148 + QUAL_LOWER reduce using rule 148 + UPPER reduce using rule 148 + QUAL_UPPER reduce using rule 148 + SYMBOL reduce using rule 148 + QUAL_SYMBOL reduce using rule 148 + OPERATOR reduce using rule 148 + QUAL_OPERATOR reduce using rule 148 + LIT_HOLE reduce using rule 148 + LIT_CHAR reduce using rule 148 + LIT_STRING reduce using rule 148 + LIT_RAW_STRING reduce using rule 148 + LIT_INT reduce using rule 148 + LIT_NUMBER reduce using rule 148 + %eof reduce using rule 148 + + +State 697 + + sep1__properName__','__ -> sep1__properName__','__ ',' properName . (rule 420) + + ')' reduce using rule 420 + ',' reduce using rule 420 + + +State 698 + + moduleImports -> importDecls importDecl '\}' . (rule 244) + + error reduce using rule 244 + + +State 699 + + importDecls -> importDecls importDecl '\;' . (rule 246) + + error reduce using rule 246 + 'import' reduce using rule 246 + + +State 700 + + guardedCaseExpr -> guard '->' exprWhere . (rule 207) + + error reduce using rule 207 + '(' reduce using rule 207 + ')' reduce using rule 207 + '{' reduce using rule 207 + '}' reduce using rule 207 + '[' reduce using rule 207 + ']' reduce using rule 207 + '\}' reduce using rule 207 + '\;' reduce using rule 207 + '<=' reduce using rule 207 + ':' reduce using rule 207 + '::' reduce using rule 207 + '|' reduce using rule 207 + '`' reduce using rule 207 + ',' reduce using rule 207 + '_' reduce using rule 207 + '\\' reduce using rule 207 + '-' reduce using rule 207 + '@' reduce using rule 207 + 'ado' reduce using rule 207 + 'as' reduce using rule 207 + 'case' reduce using rule 207 + 'do' reduce using rule 207 + 'else' reduce using rule 207 + 'false' reduce using rule 207 + 'hiding' reduce using rule 207 + 'if' reduce using rule 207 + 'let' reduce using rule 207 + 'nominal' reduce using rule 207 + 'phantom' reduce using rule 207 + 'of' reduce using rule 207 + 'representational'reduce using rule 207 + 'role' reduce using rule 207 + 'then' reduce using rule 207 + 'true' reduce using rule 207 + 'where' reduce using rule 207 + '(..)' reduce using rule 207 + LOWER reduce using rule 207 + QUAL_LOWER reduce using rule 207 + UPPER reduce using rule 207 + QUAL_UPPER reduce using rule 207 + SYMBOL reduce using rule 207 + QUAL_SYMBOL reduce using rule 207 + OPERATOR reduce using rule 207 + QUAL_OPERATOR reduce using rule 207 + LIT_HOLE reduce using rule 207 + LIT_CHAR reduce using rule 207 + LIT_STRING reduce using rule 207 + LIT_RAW_STRING reduce using rule 207 + LIT_INT reduce using rule 207 + LIT_NUMBER reduce using rule 207 + %eof reduce using rule 207 + + +State 701 + + expr5 -> 'case' sep__expr__','__ 'of' '\{' sep__binder1__','__ '->' '\}' exprWhere . (rule 169) + + error reduce using rule 169 + '(' reduce using rule 169 + ')' reduce using rule 169 + '{' reduce using rule 169 + '}' reduce using rule 169 + '[' reduce using rule 169 + ']' reduce using rule 169 + '\}' reduce using rule 169 + '\;' reduce using rule 169 + '<=' reduce using rule 169 + ':' reduce using rule 169 + '::' reduce using rule 169 + '|' reduce using rule 169 + '`' reduce using rule 169 + ',' reduce using rule 169 + '_' reduce using rule 169 + '\\' reduce using rule 169 + '-' reduce using rule 169 + '@' reduce using rule 169 + 'ado' reduce using rule 169 + 'as' reduce using rule 169 + 'case' reduce using rule 169 + 'do' reduce using rule 169 + 'else' reduce using rule 169 + 'false' reduce using rule 169 + 'hiding' reduce using rule 169 + 'if' reduce using rule 169 + 'let' reduce using rule 169 + 'nominal' reduce using rule 169 + 'phantom' reduce using rule 169 + 'of' reduce using rule 169 + 'representational'reduce using rule 169 + 'role' reduce using rule 169 + 'then' reduce using rule 169 + 'true' reduce using rule 169 + 'where' reduce using rule 169 + '(..)' reduce using rule 169 + LOWER reduce using rule 169 + QUAL_LOWER reduce using rule 169 + UPPER reduce using rule 169 + QUAL_UPPER reduce using rule 169 + SYMBOL reduce using rule 169 + QUAL_SYMBOL reduce using rule 169 + OPERATOR reduce using rule 169 + QUAL_OPERATOR reduce using rule 169 + LIT_HOLE reduce using rule 169 + LIT_CHAR reduce using rule 169 + LIT_STRING reduce using rule 169 + LIT_RAW_STRING reduce using rule 169 + LIT_INT reduce using rule 169 + LIT_NUMBER reduce using rule 169 + %eof reduce using rule 169 + + +State 702 + + recordUpdate -> label '{' sep__recordUpdate__','__ '}' . (rule 196) + + '}' reduce using rule 196 + ',' reduce using rule 196 + + +----------------------------------------------------------------------------- +Grammar Totals +----------------------------------------------------------------------------- +Number of rules: 437 +Number of terminals: 72 +Number of non-terminals: 191 +Number of states: 703 diff --git a/src/Language/PureScript/CST/Parser.y b/src/Language/PureScript/CST/Parser.y index edb60d93e..56273933d 100644 --- a/src/Language/PureScript/CST/Parser.y +++ b/src/Language/PureScript/CST/Parser.y @@ -321,7 +321,7 @@ typeAtom :: { Type ()} | '{' row '}' { TypeRecord () (Wrapped $1 $2 $3) } | '(' row ')' { TypeRow () (Wrapped $1 $2 $3) } | '(' type1 ')' { TypeParens () (Wrapped $1 $2 $3) } - | '(' typeKindedAtom '::' type ')' { TypeParens () (Wrapped $1 (TypeKinded () $2 $3 $4) $5) } + | '(' typeKindedAtom '::' type ')' %shift { TypeParens () (Wrapped $1 (TypeKinded () $2 $3 $4) $5) } -- Due to a conflict between row syntax and kinded type syntax, we require -- kinded type variables to be wrapped in parens. Thus `(a :: Foo)` is always a diff --git a/src/Language/PureScript/CST/Positions.hs b/src/Language/PureScript/CST/Positions.hs index 20d572427..4544682fb 100644 --- a/src/Language/PureScript/CST/Positions.hs +++ b/src/Language/PureScript/CST/Positions.hs @@ -240,7 +240,7 @@ whereRange (Where a bs) typeRange :: Type a -> TokenRange typeRange = \case - TypeVar _ a -> nameRange a + TypeVar _ a -> nameRange a TypeConstructor _ a -> qualRange a TypeWildcard _ a -> (a, a) TypeHole _ a -> nameRange a diff --git a/src/Language/PureScript/CST/Traversals/Type.hs b/src/Language/PureScript/CST/Traversals/Type.hs index c61e65ca3..1f532f8e8 100644 --- a/src/Language/PureScript/CST/Traversals/Type.hs +++ b/src/Language/PureScript/CST/Traversals/Type.hs @@ -9,7 +9,7 @@ everythingOnTypes :: (r -> r -> r) -> (Type a -> r) -> Type a -> r everythingOnTypes op k = goTy where goTy ty = case ty of - TypeVar _ _ -> k ty + TypeVar _ _ -> k ty TypeConstructor _ _ -> k ty TypeWildcard _ _ -> k ty TypeHole _ _ -> k ty diff --git a/src/Language/PureScript/CoreFn/Convert/DesugarObjects.hs b/src/Language/PureScript/CoreFn/Convert/DesugarObjects.hs index 33a250eef..53cfd9f25 100644 --- a/src/Language/PureScript/CoreFn/Convert/DesugarObjects.hs +++ b/src/Language/PureScript/CoreFn/Convert/DesugarObjects.hs @@ -126,7 +126,7 @@ tryConvertType = go id ctorType = foldl' srcTypeApp (srcTypeConstructor fakeTName) types go f ctorType else Left $ TypeConvertError f t $ prettyTypeStr fs <> " is not a closed row. Last: " <> prettyTypeStr (rowLast fs) - TypeVar _ txt -> Right $ TyVar txt + TypeVar _ txt k -> TyVar txt <$> tryConvertKind f t k TypeConstructor _ tn -> Right $ TyCon tn TypeApp ann t1 t2 -> do t2' <- go (f . TypeApp ann t1) t2 @@ -137,13 +137,11 @@ tryConvertType = go id t1' <- go (f . (\x -> KindApp ann x t2)) t1 pure $ KApp t1' t2' ForAll ann vis var mbk inner skol -> do - let khole = f . (\x -> ForAll ann vis var (Just x) inner skol) + let khole = f . (\x -> ForAll ann vis var x inner skol) ihole = f . (\x -> ForAll ann vis var mbk x skol) - mbk' <- case mbk of - Nothing -> pure Nothing - Just k -> Just <$> go khole k + k <- tryConvertKind khole t mbk inner' <- go ihole inner - pure $ Forall vis var mbk' inner' skol + pure $ Forall vis var k inner' skol KindedType ann t1 t2 -> do t2' <- go (f . KindedType ann t1) t2 t1' <- go (f . (\x -> KindedType ann x t2)) t1 @@ -151,6 +149,19 @@ tryConvertType = go id other -> Left $ TypeConvertError f other $ "Unsupported type: " <> prettyTypeStr other +tryConvertKind :: (SourceType -> SourceType) -> SourceType -> SourceType -> Either TypeConvertError Kind +tryConvertKind f t = \case + TypeConstructor _ C.Type -> pure KindType + k1 :-> k2 -> do + k1' <- tryConvertKind f t k1 + k2' <- tryConvertKind f t k2 + pure $ KindArrow k1' k2' + other -> Left $ TypeConvertError f t + $ "Couldn't convert type: " + <> prettyTypeStr other + <> " to a Plutus Kind.\n" + <> "Plutus only supports kinds * and (* -> Plutus Kind)" + isClosedRow :: SourceType -> Bool isClosedRow t = case rowToList t of (_,REmpty{}) -> True @@ -172,7 +183,7 @@ type ConvertM = Either ExprConvertError prettyErrorT :: TypeConvertError -> String prettyErrorT (TypeConvertError g t msg1) = "Error when converting types to final IR: " <> msg1 - <> "\nin type:\n " <> prettyTypeStr (g $ TypeVar NullSourceAnn "") + <> "\nin type:\n " <> prettyTypeStr (g $ TypeVar NullSourceAnn "" (TUnknown NullSourceAnn 0)) <> "\nin type component:\n " <> prettyTypeStr t {- diff --git a/src/Language/PureScript/CoreFn/Convert/IR.hs b/src/Language/PureScript/CoreFn/Convert/IR.hs index e3c6e32ed..a1be26885 100644 --- a/src/Language/PureScript/CoreFn/Convert/IR.hs +++ b/src/Language/PureScript/CoreFn/Convert/IR.hs @@ -39,15 +39,23 @@ import Control.Lens (view,_2) import Language.PureScript.CoreFn.TypeLike import Data.Void (Void) import Control.Lens.Plated +import Language.PureScript.CoreFn.Pretty ((<::>)) -- The final representation of types and terms, where all constructions that -- *should* have been eliminated in previous steps are impossible -- TODO: Make sure we error on exotic kinds + +data Kind + = KindType + | KindArrow Kind Kind + deriving (Show, Eq, Ord) + + data Ty - = TyVar Text + = TyVar Text Kind | TyCon (Qualified (ProperName 'TypeName)) | TyApp Ty Ty | KApp Ty Ty - | Forall TypeVarVisibility Text (Maybe Ty) Ty (Maybe SkolemScope) + | Forall TypeVarVisibility Text Kind Ty (Maybe SkolemScope) | KType Ty Ty deriving (Show, Eq, Ord) @@ -57,17 +65,17 @@ infixr 0 :~> instance Plated Ty where plate f = \case - TyVar txt -> pure $ TyVar txt + TyVar txt ki -> pure $ TyVar txt ki TyCon nm -> pure $ TyCon nm TyApp t1 t2 -> TyApp <$> f t1 <*> f t2 KApp t1 t2 -> KApp <$> f t1 <*> f t2 - Forall vis var mk innerTy scop -> - (\mk' innerTy' -> Forall vis var mk' innerTy' scop ) - <$> traverse f mk - <*> f innerTy + Forall vis var k innerTy scop -> + (\x -> Forall vis var k x scop ) + <$> f innerTy KType t1 t2 -> KType <$> f t1 <*> f t2 instance TypeLike Ty where + type KindOf Ty = Kind applyType = TyApp stripQuantifiers = \case @@ -80,18 +88,17 @@ instance TypeLike Ty where replaceAllTypeVars = go [] where go :: [Text] -> [(Text, Ty)] -> Ty -> Ty - go _ m (TyVar v) = fromMaybe (TyVar v) (v `lookup` m) + go _ m (TyVar v k) = fromMaybe (TyVar v k) (v `lookup` m) go bs m (TyApp t1 t2) = TyApp (go bs m t1) (go bs m t2) go bs m (KApp t1 t2) = KApp (go bs m t1) (go bs m t2) - go bs m (Forall vis v mbK t sco) - | v `elem` keys = go bs (filter ((/= v) . fst) m) $ Forall vis v mbK' t sco - | v `elem` usedVars = - let v' = genPureName v (keys ++ bs ++ usedVars) - t' = go bs [(v, TyVar v')] t - in Forall vis v' mbK' (go (v' : bs) m t') sco - | otherwise = Forall vis v mbK' (go (v : bs) m t) sco + go bs m (Forall vis v k t sco) + | v `elem` keys = go bs (filter ((/= v) . fst) m) $ Forall vis v k t sco + | (v,k) `elem` usedVars = + let v' = genPureName v (keys ++ bs ++ (fst <$> usedVars)) + t' = go bs [(v, TyVar v' k)] t + in Forall vis v' k (go (v' : bs) m t') sco + | otherwise = Forall vis v k (go (v : bs) m t) sco where - mbK' = go bs m <$> mbK keys = map fst m usedVars = concatMap (usedTypeVariables . snd) m go bs m (KType t k) = KType (go bs m t) (go bs m k) @@ -101,9 +108,9 @@ instance TypeLike Ty where (a :~> b) -> a : splitFunTyParts b t -> [t] - quantify ty = foldr (\arg t -> Forall TypeVarInvisible arg Nothing t Nothing) ty $ freeTypeVariables ty + quantify ty = foldr (\(arg,argKind) t -> Forall TypeVarInvisible arg argKind t Nothing) ty $ freeTypeVariables ty - instantiates var x (TyVar y) | y == var = Just x + instantiates var x (TyVar y _) | y == var = Just x instantiates var (TyApp t1 t2) (TyApp t1' t2') = case instantiates var t1 t1' of Just x -> Just x Nothing -> instantiates var t2 t2' @@ -111,23 +118,23 @@ instance TypeLike Ty where freeTypeVariables = ordNub . fmap snd . sortOn fst . go 0 [] where -- Tracks kind levels so that variables appearing in kind annotations are listed first. - go :: Int -> [Text] -> Ty -> [(Int, Text)] - go lvl bound (TyVar v) | v `notElem` bound = [(lvl, v)] + go :: Int -> [Text] -> Ty -> [(Int, (Text,Kind))] + go lvl bound (TyVar v k) | v `notElem` bound = [(lvl, (v,k))] go lvl bound (TyApp t1 t2) = go lvl bound t1 ++ go lvl bound t2 go lvl bound (KApp t1 t2) = go lvl bound t1 ++ go (lvl - 1) bound t2 - go lvl bound (Forall _ v mbK t _) = foldMap (go (lvl - 1) bound) mbK ++ go lvl (v : bound) t + go lvl bound (Forall _ v _ t _) = go lvl (v : bound) t go lvl bound (KType t k) = go lvl bound t ++ go (lvl - 1) bound k go _ _ _ = [] usedTypeVariables = ordNub . go where - go :: Ty -> [Text] - go (TyVar v) = [v] + go :: Ty -> [(Text,Kind)] + go (TyVar v k) = [(v,k)] go (TyApp t1 t2) = go t1 <> go t2 go (KApp t1 t2) = go t1 <> go t2 go (KType t1 t2) = go t1 <> go t2 go (Forall _ _ _ inner _) = go inner - go (TyCon _) = error "iUsedTypeVariables: TODO: TyCon" -- not sure what it should be + go (TyCon _) = [] resultTy t = case snd $ stripQuantifiers t of (_ :~> b) -> resultTy b @@ -323,9 +330,13 @@ instance Pretty (BVar ty) where instance Pretty (FVar ty) where pretty (FVar _t i) = pretty (showQualified showIdent i) -- <+> "::" <+> pretty t) +instance Pretty Kind where + pretty = \case + KindType -> "*" + KindArrow k1 k2 -> parens (pretty k1 <+> "->" <+> pretty k2) instance Pretty Ty where pretty = \case - TyVar t -> pretty t + TyVar t k -> parens (pretty t <::> pretty k) TyCon (Qualified qb tn) -> case qb of ByModuleName mn -> let mn' = runModuleName mn @@ -350,16 +361,14 @@ instance Pretty Ty where in f' <+> b' goTypeApp a b = hsep [pretty a, pretty b] - goForall :: [(TypeVarVisibility,Text,Maybe Ty)] -> Ty -> Doc ann + goForall :: [(TypeVarVisibility,Text,Kind)] -> Ty -> Doc ann goForall xs inner = let boundVars = hsep $ renderBoundVar <$> xs inner' = pretty inner in "forall" <+> boundVars <> "." <+> inner' where - renderBoundVar :: (TypeVarVisibility, Text, Maybe Ty) -> Doc ann - renderBoundVar (_, var, mk) = case mk of - Nothing -> pretty var - Just k -> parens (pretty var <+> "::" <+> pretty k) + renderBoundVar :: (TypeVarVisibility, Text, Kind) -> Doc ann + renderBoundVar (_, var, mk) = parens (pretty var <+> "::" <+> pretty mk) instance (Pretty a, Pretty ty, FuncType ty) => Pretty (Exp x ty a) where pretty = \case diff --git a/src/Language/PureScript/CoreFn/Convert/Monomorphize/Utils.hs b/src/Language/PureScript/CoreFn/Convert/Monomorphize/Utils.hs index 318619b26..70fb0e670 100644 --- a/src/Language/PureScript/CoreFn/Convert/Monomorphize/Utils.hs +++ b/src/Language/PureScript/CoreFn/Convert/Monomorphize/Utils.hs @@ -330,7 +330,7 @@ instance Plated (Exp x t a) where instance Plated SourceType where plate f = \case tu@(TUnknown _ _) -> pure tu - tv@(TypeVar _ _) -> pure tv + tv@(TypeVar _ _ _) -> pure tv tstr@(TypeLevelString _ _) -> pure tstr tint@(TypeLevelInt _ _) -> pure tint twild@(TypeWildcard _ _) -> pure twild @@ -340,10 +340,10 @@ instance Plated SourceType where KindApp a t1 t2 -> KindApp a <$> f t1 <*> f t2 ForAll a vis var mk innerTy scop -> (\mk' innerTy' -> ForAll a vis var mk' innerTy' scop) - <$> traverse f mk + <$> f mk <*> f innerTy ConstrainedType a constraint t -> ConstrainedType a <$> goConstraint f constraint <*> f t - Skolem a txt mk i scop -> (\mk' -> Skolem a txt mk' i scop) <$> traverse f mk + Skolem a txt mk i scop -> (\mk' -> Skolem a txt mk' i scop) <$> f mk REmpty a -> pure $ REmpty a RCons a l x xs -> RCons a l <$> f x <*> f xs KindedType a t1 t2 -> KindedType a <$> f t1 <*> f t2 diff --git a/src/Language/PureScript/CoreFn/Convert/ToPIR.hs b/src/Language/PureScript/CoreFn/Convert/ToPIR.hs index c3425fc4b..036e809e4 100644 --- a/src/Language/PureScript/CoreFn/Convert/ToPIR.hs +++ b/src/Language/PureScript/CoreFn/Convert/ToPIR.hs @@ -8,7 +8,7 @@ {-# LANGUAGE PartialTypeSignatures #-} module Language.PureScript.CoreFn.Convert.ToPIR where -{- turning this module off for now to test the monomorphizer rewrite +{- import Prelude import Language.PureScript.Names (Qualified (..), ProperName(..), runIdent, pattern ByThisModuleName, disqualify) import Language.PureScript.CoreFn.FromJSON () diff --git a/src/Language/PureScript/CoreFn/Desugar.hs b/src/Language/PureScript/CoreFn/Desugar.hs index ec58e3b89..ef66321aa 100644 --- a/src/Language/PureScript/CoreFn/Desugar.hs +++ b/src/Language/PureScript/CoreFn/Desugar.hs @@ -141,7 +141,7 @@ moduleToCoreFn (A.Module modSS coms mn _decls (Just exps)) = do -} -type DeclMapElem = (DataDeclType,[(T.Text, Maybe SourceType)], [A.DataConstructorDeclaration]) +type DeclMapElem = (DataDeclType,[(T.Text, SourceType)], [A.DataConstructorDeclaration]) mkDataDecls :: [A.Declaration] -> M.Map (ProperName 'TypeName) DeclMapElem mkDataDecls [] = M.empty diff --git a/src/Language/PureScript/CoreFn/Desugar/Utils.hs b/src/Language/PureScript/CoreFn/Desugar/Utils.hs index bfd73079c..fe4bee7b2 100644 --- a/src/Language/PureScript/CoreFn/Desugar/Utils.hs +++ b/src/Language/PureScript/CoreFn/Desugar/Utils.hs @@ -239,7 +239,7 @@ instantiatePolyType mn = \case (inner,g,act) -> let f = \case Abs ann' ty' ident' expr' -> - Abs ann' (ForAll ann vis var (purusTy <$> mbk) (purusTy ty') mSkol) ident' expr' + Abs ann' (ForAll ann vis var (purusTy mbk) (purusTy ty') mSkol) ident' expr' other -> other -- FIXME: kindType? act' ma = withScopedTypeVars mn [(var,kindType)] $ act ma -- NOTE: Might need to pattern match on mbk and use the real kind (though in practice this should always be of kind Type, I think?) @@ -507,7 +507,7 @@ getTypeClassData nm = do Just cls -> pure cls -- | Given a class name, return the parameters to the class and their *kinds*. (Maybe SourceType is a kind. Type classes cannot be parameterized by anything other than type variables) -getTypeClassArgs :: M m => Qualified (ProperName 'ClassName) -> m [(T.Text,Maybe SourceType)] +getTypeClassArgs :: M m => Qualified (ProperName 'ClassName) -> m [(T.Text, SourceType)] getTypeClassArgs nm = getTypeClassData nm >>= (pure . typeClassArguments) diff --git a/src/Language/PureScript/CoreFn/Module.hs b/src/Language/PureScript/CoreFn/Module.hs index 481c7c862..b87bd6f28 100644 --- a/src/Language/PureScript/CoreFn/Module.hs +++ b/src/Language/PureScript/CoreFn/Module.hs @@ -35,7 +35,7 @@ data Module decl a = Module , moduleReExports :: Map ModuleName [Ident] , moduleForeign :: [Ident] , moduleDecls :: [decl] - , moduleDataTypes :: Map (ProperName 'TypeName) (DataDeclType,[(Text, Maybe SourceType)],[DataConstructorDeclaration]) + , moduleDataTypes :: Map (ProperName 'TypeName) (DataDeclType,[(Text, SourceType)],[DataConstructorDeclaration]) } deriving (Functor, Show) deriving instance Eq a => Eq (Module (Bind a) a) diff --git a/src/Language/PureScript/CoreFn/Pretty/Types.hs b/src/Language/PureScript/CoreFn/Pretty/Types.hs index 23e569896..709c82dfb 100644 --- a/src/Language/PureScript/CoreFn/Pretty/Types.hs +++ b/src/Language/PureScript/CoreFn/Pretty/Types.hs @@ -50,7 +50,9 @@ prettyType t = group <$> case t of TUnknown _ n -> pure $ "t" <> pretty n - TypeVar _ txt -> pure $ pretty txt + TypeVar _ txt ki -> do + ki' <- prettyType ki + pure $ parens (pretty txt <::> ki') TypeLevelString _ pss -> pure . pretty . prettyPrintString $ pss @@ -97,9 +99,9 @@ prettyType t = group <$> case t of ParensInType _ ty -> parens <$> prettyType ty where - goForall :: [(TypeVarVisibility,Text,Maybe (Type a))] -> Type a -> Printer ann + goForall :: [(TypeVarVisibility,Text,(Type a))] -> Type a -> Printer ann goForall xs inner = do - boundVars <- fmtSep =<< traverse renderBoundVar xs + boundVars <- fmtSep =<< traverse renderBoundVar xs inner' <- prettyType inner pure $ "forall" <+> boundVars <> "." <+> inner' @@ -109,14 +111,13 @@ prettyType t = group <$> case t of TypeVarVisible -> hcat ["@",tv] TypeVarInvisible -> tv - renderBoundVar :: (TypeVarVisibility, Text, Maybe (Type a)) -> Printer ann - renderBoundVar (vis,var,mk) = case mk of - Just k -> do + renderBoundVar :: (TypeVarVisibility, Text, (Type a)) -> Printer ann + renderBoundVar (vis,var,k) = do ty' <- prettyType k pure . parens $ prefixVis vis (pretty var) <::> ty' - Nothing -> pure $ prefixVis vis (pretty var) - stripQuantifiers :: Type a -> ([(TypeVarVisibility,Text,Maybe (Type a))],Type a) + + stripQuantifiers :: Type a -> ([(TypeVarVisibility,Text,(Type a))],Type a) stripQuantifiers = \case ForAll _ vis var mk inner _ -> first ((vis,var,mk):) $ stripQuantifiers inner other -> ([],other) @@ -145,7 +146,9 @@ prettyType t = group <$> case t of pure $ bimap (first f) f rest' REmpty _ -> pure $ Right [] KindApp _ REmpty{} _ -> pure $ Right [] -- REmpty is sometimes wrapped in a kind app - TypeVar _ txt -> pure $ Left ([],pretty txt) + TypeVar _ txt k -> do + k' <- prettyType k + pure $ Left ([],parens (pretty txt <::> k')) other -> Right . pure <$> prettyType other -- error $ "Malformed row fields: \n" <> prettyTypeStr other diff --git a/src/Language/PureScript/CoreFn/TypeLike.hs b/src/Language/PureScript/CoreFn/TypeLike.hs index bbf10a80f..a65dbee2e 100644 --- a/src/Language/PureScript/CoreFn/TypeLike.hs +++ b/src/Language/PureScript/CoreFn/TypeLike.hs @@ -8,7 +8,10 @@ import Language.PureScript.Types qualified as T import Language.PureScript.Environment qualified as E import Data.Bifunctor (Bifunctor(..)) +import Data.Kind qualified as GHC + class TypeLike t where + type KindOf t :: GHC.Type {- | Usually this will be the Type Application constructor -} applyType :: t -> t -> t @@ -16,7 +19,7 @@ class TypeLike t where keeping track of the quantifier metadata (visibility, name, kind) for each removed quantifier. -} - stripQuantifiers :: t -> ([(TypeVarVisibility, Text, Maybe t)], t) + stripQuantifiers :: t -> ([(TypeVarVisibility, Text, KindOf t)], t) {- Given TypeLikes `a` and `b`, construct a function type `a -> b` -} @@ -54,10 +57,10 @@ class TypeLike t where -> Maybe t {- | Collect the used type variables in a type -} - usedTypeVariables :: t -> [Text] + usedTypeVariables :: t -> [(Text,KindOf t)] {- | Collect the free type variables in a type -} - freeTypeVariables :: t -> [Text] + freeTypeVariables :: t -> [(Text,KindOf t)] {- | Get the (final) return type of a function. Returns the argument type if the argument is not a function. @@ -65,6 +68,8 @@ class TypeLike t where resultTy :: t -> t instance TypeLike T.SourceType where + type KindOf T.SourceType = T.SourceType + applyType = T.srcTypeApp stripQuantifiers = \case @@ -83,7 +88,7 @@ instance TypeLike T.SourceType where quantify = T.quantify - instantiates var x (T.TypeVar _ y) | y == var = Just x + instantiates var x (T.TypeVar _ y _) | y == var = Just x instantiates var (T.TypeApp _ t1 t2) (T.TypeApp _ t1' t2') = case instantiates var t1 t1' of Just x -> Just x Nothing -> instantiates var t2 t2' diff --git a/src/Language/PureScript/CoreFn/Utils.hs b/src/Language/PureScript/CoreFn/Utils.hs index 1c2f88086..7df76514f 100644 --- a/src/Language/PureScript/CoreFn/Utils.hs +++ b/src/Language/PureScript/CoreFn/Utils.hs @@ -76,7 +76,7 @@ instance IndexedPlated Context (Expr a) where in Left <$> traverse (bitraverse g' g') es -- Bound tyVars and kinds. Idk if we'll use it but it takes like 10 seconds -type TyContext = Map Text (Maybe SourceType ) +type TyContext = Map Text SourceType -- Might be able to do something useful with a non-natural index (think about later) instance IndexedPlated TyContext SourceType where iplate d f = \case @@ -85,7 +85,7 @@ instance IndexedPlated TyContext SourceType where ForAll a vis var mbK inner skol -> let cxt = M.insert var mbK d in (\mbK' inner' -> ForAll a vis var mbK' inner' skol) - <$> traverse (indexed f d) mbK + <$> indexed f d mbK <*> indexed f cxt inner -- \/ Just for completeness, they shouldn't exist ConstrainedType ann c t1 -> ConstrainedType ann c <$> indexed f d t1 @@ -110,7 +110,7 @@ instantiates :: Text -- Name of the TyVar we're checking -> SourceType -- Monomorphic type (or "more monomorphic" type) -> SourceType -- Polymorphic type (or "more polymoprhic" type) -> Maybe SourceType -instantiates var x (TypeVar _ y) | y == var = Just x +instantiates var x (TypeVar _ y _) | y == var = Just x instantiates var (TypeApp _ t1 t2) (TypeApp _ t1' t2') = case instantiates var t1 t1' of Just x -> Just x Nothing -> instantiates var t2 t2' diff --git a/src/Language/PureScript/Docs/Convert.hs b/src/Language/PureScript/Docs/Convert.hs index a7dc1758c..c15868f08 100644 --- a/src/Language/PureScript/Docs/Convert.hs +++ b/src/Language/PureScript/Docs/Convert.hs @@ -29,6 +29,7 @@ import Language.PureScript.Sugar qualified as P import Language.PureScript.Types qualified as P import Language.PureScript.Constants.Prim qualified as Prim import Language.PureScript.Sugar (RebracketCaller(CalledByDocs)) +import Language.PureScript.Types (Type(TUnknown)) -- | -- Convert a single module to a Docs.Module, making use of a pre-existing @@ -112,10 +113,10 @@ insertValueTypesAndAdjustKinds env m = -- Return a list of values, one for each implicit type parameter -- of `(tX, Nothing)` where `X` refers to the index of he parameter -- in that list, matching the values expected by `Render.toTypeVar` - genTypeParams :: Type' -> [(Text, Maybe Type')] + genTypeParams :: Type' -> [(Text, Type')] genTypeParams kind = do let n = countParams 0 kind - map (\(i :: Int) -> ("t" <> T.pack (show i), Nothing)) $ take n [0..] + map (\(i :: Int) -> ("t" <> T.pack (show i), TUnknown () i)) $ take n [0..] -- REVIEW: Is TUnknown ok? where countParams :: Int -> Type' -> Int countParams acc = \case @@ -232,8 +233,8 @@ insertValueTypesAndAdjustKinds env m = -- changes `forall (k :: Type). k -> ...` -- to `forall k . k -> ...` dropTypeSortAnnotation = \case - P.ForAll sa vis txt (Just (P.TypeConstructor _ Prim.Type)) rest skol -> - P.ForAll sa vis txt Nothing (dropTypeSortAnnotation rest) skol + P.ForAll sa vis txt (P.TypeConstructor a Prim.Type) rest skol -> + P.ForAll sa vis txt (P.TypeConstructor a Prim.Type) (dropTypeSortAnnotation rest) skol rest -> rest Nothing -> diff --git a/src/Language/PureScript/Docs/Convert/ReExports.hs b/src/Language/PureScript/Docs/Convert/ReExports.hs index 600b343a5..fb494f6fd 100644 --- a/src/Language/PureScript/Docs/Convert/ReExports.hs +++ b/src/Language/PureScript/Docs/Convert/ReExports.hs @@ -515,4 +515,4 @@ typeClassConstraintFor Declaration{..} = _ -> Nothing where - mkConstraint = map (P.TypeVar () . fst) + mkConstraint = map (uncurry (P.TypeVar ())) diff --git a/src/Language/PureScript/Docs/Convert/Single.hs b/src/Language/PureScript/Docs/Convert/Single.hs index b3b15e7b4..c14ecec1d 100644 --- a/src/Language/PureScript/Docs/Convert/Single.hs +++ b/src/Language/PureScript/Docs/Convert/Single.hs @@ -167,7 +167,7 @@ convertDeclaration (P.ExternDeclaration sa _ ty) title = convertDeclaration (P.DataDeclaration sa dtype _ args ctors) title = Just (Right (mkDeclaration sa title info) { declChildren = children }) where - info = DataDeclaration dtype (fmap (fmap (fmap ($> ()))) args) [] + info = DataDeclaration dtype (fmap (fmap ($> ())) args) [] children = map convertCtor ctors convertCtor :: P.DataConstructorDeclaration -> ChildDeclaration convertCtor P.DataConstructorDeclaration{..} = @@ -176,11 +176,11 @@ convertDeclaration (P.DataDeclaration sa dtype _ args ctors) title = convertDeclaration (P.ExternDataDeclaration sa _ kind') title = basicDeclaration sa title (ExternDataDeclaration (kind' $> ()) []) convertDeclaration (P.TypeSynonymDeclaration sa _ args ty) title = - basicDeclaration sa title (TypeSynonymDeclaration (fmap (fmap (fmap ($> ()))) args) (ty $> ())) + basicDeclaration sa title (TypeSynonymDeclaration (fmap (fmap ($> ())) args) (ty $> ())) convertDeclaration (P.TypeClassDeclaration sa _ args implies fundeps ds) title = Just (Right (mkDeclaration sa title info) { declChildren = children }) where - args' = fmap (fmap (fmap ($> ()))) args + args' = fmap (fmap ($> ())) args info = TypeClassDeclaration args' (fmap ($> ()) implies) (convertFundepsToStrings args' fundeps) children = map convertClassMember ds convertClassMember (P.TypeDeclaration (P.TypeDeclarationData (ss, com) ident' ty)) = diff --git a/src/Language/PureScript/Docs/Prim.hs b/src/Language/PureScript/Docs/Prim.hs index 801a64bc6..bc67cda8a 100644 --- a/src/Language/PureScript/Docs/Prim.hs +++ b/src/Language/PureScript/Docs/Prim.hs @@ -216,7 +216,7 @@ primClass cn comments = Declaration , declInfo = let tcd = lookupPrimClass cn - args = fmap (fmap ($> ())) <$> P.typeClassArguments tcd + args = (fmap ($> ())) <$> P.typeClassArguments tcd superclasses = ($> ()) <$> P.typeClassSuperclasses tcd fundeps = convertFundepsToStrings args (P.typeClassDependencies tcd) in diff --git a/src/Language/PureScript/Docs/Render.hs b/src/Language/PureScript/Docs/Render.hs index 3a0038d98..3235a8f4f 100644 --- a/src/Language/PureScript/Docs/Render.hs +++ b/src/Language/PureScript/Docs/Render.hs @@ -131,12 +131,11 @@ ident' = ident . P.Qualified P.ByNullSourcePos . P.Ident dataCtor' :: Text -> RenderedCode dataCtor' = dataCtor . notQualified -typeApp :: Text -> [(Text, Maybe Type')] -> Type' +typeApp :: Text -> [(Text, Type')] -> Type' typeApp title typeArgs = foldl (P.TypeApp ()) (P.TypeConstructor () (notQualified title)) (map toTypeVar typeArgs) -toTypeVar :: (Text, Maybe Type') -> Type' -toTypeVar (s, Nothing) = P.TypeVar () s -toTypeVar (s, Just k) = P.KindedType () (P.TypeVar () s) k +toTypeVar :: (Text, Type') -> Type' +toTypeVar (s, k) = P.TypeVar () s k diff --git a/src/Language/PureScript/Docs/RenderedCode/RenderType.hs b/src/Language/PureScript/Docs/RenderedCode/RenderType.hs index a082b4b83..8c870a1bf 100644 --- a/src/Language/PureScript/Docs/RenderedCode/RenderType.hs +++ b/src/Language/PureScript/Docs/RenderedCode/RenderType.hs @@ -149,7 +149,7 @@ matchType = buildPrettyPrinter operators matchTypeAtom , [ Wrap explicitParens $ \_ ty -> ty ] ] -forall_ :: Pattern () PrettyPrintType ([(TypeVarVisibility, Text, Maybe PrettyPrintType)], PrettyPrintType) +forall_ :: Pattern () PrettyPrintType ([(TypeVarVisibility, Text, PrettyPrintType)], PrettyPrintType) forall_ = mkPattern match where match (PPForAll mbKindedIdents ty) = Just (mbKindedIdents, ty) @@ -235,13 +235,11 @@ renderType' = fromMaybe (internalError "Incomplete pattern") . PA.pattern matchType () -renderTypeVars :: [(TypeVarVisibility, Text, Maybe PrettyPrintType)] -> RenderedCode +renderTypeVars :: [(TypeVarVisibility, Text, PrettyPrintType)] -> RenderedCode renderTypeVars tyVars = mintersperse sp (map renderTypeVar tyVars) -renderTypeVar :: (TypeVarVisibility, Text, Maybe PrettyPrintType) -> RenderedCode -renderTypeVar (vis, v, mbK) = case mbK of - Nothing -> syntax (typeVarVisibilityPrefix vis) <> typeVar v - Just k -> mintersperse sp [ mconcat [syntax "(", syntax $ typeVarVisibilityPrefix vis, typeVar v], syntax "::", mconcat [renderType' k, syntax ")"] ] +renderTypeVar :: (TypeVarVisibility, Text, PrettyPrintType) -> RenderedCode +renderTypeVar (vis, v, k) = mintersperse sp [ mconcat [syntax "(", syntax $ typeVarVisibilityPrefix vis, typeVar v], syntax "::", mconcat [renderType' k, syntax ")"] ] -- | -- Render code representing a Type, as it should appear inside parentheses diff --git a/src/Language/PureScript/Docs/Types.hs b/src/Language/PureScript/Docs/Types.hs index c4e6cbeca..2a23cd9e4 100644 --- a/src/Language/PureScript/Docs/Types.hs +++ b/src/Language/PureScript/Docs/Types.hs @@ -171,7 +171,7 @@ data DeclarationInfo -- newtype) and its type arguments. Constructors are represented as child -- declarations. -- - | DataDeclaration P.DataDeclType [(Text, Maybe Type')] [P.Role] + | DataDeclaration P.DataDeclType [(Text, Type')] [P.Role] -- | -- A data type foreign import, with its kind. @@ -181,13 +181,13 @@ data DeclarationInfo -- | -- A type synonym, with its type arguments and its type. -- - | TypeSynonymDeclaration [(Text, Maybe Type')] Type' + | TypeSynonymDeclaration [(Text, Type')] Type' -- | -- A type class, with its type arguments, its superclasses and functional -- dependencies. Instances and members are represented as child declarations. -- - | TypeClassDeclaration [(Text, Maybe Type')] [Constraint'] [([Text], [Text])] + | TypeClassDeclaration [(Text, Type')] [Constraint'] [([Text], [Text])] -- | -- An operator alias declaration, with the member the alias is for and the @@ -209,7 +209,7 @@ data KindInfo = KindInfo instance NFData KindInfo -convertFundepsToStrings :: [(Text, Maybe Type')] -> [P.FunctionalDependency] -> [([Text], [Text])] +convertFundepsToStrings :: [(Text, Type')] -> [P.FunctionalDependency] -> [([Text], [Text])] convertFundepsToStrings args fundeps = map (\(P.FunctionalDependency from to) -> toArgs from to) fundeps where @@ -663,10 +663,10 @@ asKindSignatureFor = "type" -> Right P.TypeSynonymSig x -> Left (InvalidKindSignatureFor x) -asTypeArguments :: Parse PackageError [(Text, Maybe Type')] +asTypeArguments :: Parse PackageError [(Text, Type')] asTypeArguments = eachInArray asTypeArgument where - asTypeArgument = (,) <$> nth 0 asText <*> nth 1 (perhaps asType) + asTypeArgument = (,) <$> nth 0 asText <*> nth 1 asType asRole :: Parse PackageError P.Role asRole = diff --git a/src/Language/PureScript/Environment.hs b/src/Language/PureScript/Environment.hs index 050be400f..df19e0cd9 100644 --- a/src/Language/PureScript/Environment.hs +++ b/src/Language/PureScript/Environment.hs @@ -41,7 +41,7 @@ data Environment = Environment , dataConstructors :: M.Map (Qualified (ProperName 'ConstructorName)) (DataDeclType, ProperName 'TypeName, SourceType, [Ident]) -- ^ Data constructors currently in scope, along with their associated type -- constructor name, argument types and return type. - , typeSynonyms :: M.Map (Qualified (ProperName 'TypeName)) ([(Text, Maybe SourceType)], SourceType) + , typeSynonyms :: M.Map (Qualified (ProperName 'TypeName)) ([(Text, SourceType)], SourceType) -- ^ Type synonyms currently in scope , typeClassDictionaries :: M.Map QualifiedBy (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))) -- ^ Available type class dictionaries. When looking up 'Nothing' in the @@ -55,7 +55,7 @@ instance NFData Environment -- | Information about a type class data TypeClassData = TypeClassData - { typeClassArguments :: [(Text, Maybe SourceType)] + { typeClassArguments :: [(Text, SourceType)] -- ^ A list of type argument names, and their kinds, where kind annotations -- were provided. , typeClassMembers :: [(Ident, SourceType, Maybe (S.Set (NEL.NonEmpty Int)))] @@ -128,7 +128,7 @@ initEnvironment = Environment builtinFunctions allPrimTypes M.empty M.empty M.em -- determine X that X does not determine. This is the same thing: everything X determines includes everything -- in its SCC, and everything determining X is either before it in an SCC path, or in the same SCC. makeTypeClassData - :: [(Text, Maybe SourceType)] + :: [(Text, SourceType)] -> [(Ident, SourceType)] -> [SourceConstraint] -> [FunctionalDependency] @@ -144,7 +144,7 @@ makeTypeClassData args m s deps = TypeClassData args m' s deps determinedArgs co addVtaInfo :: SourceType -> Maybe (S.Set (NEL.NonEmpty Int)) addVtaInfo memberTy = do - let mentionedArgIndexes = S.fromList (mapMaybe argToIndex $ freeTypeVariables memberTy) + let mentionedArgIndexes = S.fromList (mapMaybe (argToIndex . fst) $ freeTypeVariables memberTy) let leftovers = map (`S.difference` mentionedArgIndexes) coveringSets' S.fromList <$> traverse (NEL.nonEmpty . S.toList) leftovers @@ -259,7 +259,7 @@ instance Serialise NameKind -- | The kinds of a type data TypeKind - = DataType DataDeclType [(Text, Maybe SourceType, Role)] [(ProperName 'ConstructorName, [SourceType])] + = DataType DataDeclType [(Text, SourceType, Role)] [(ProperName 'ConstructorName, [SourceType])] -- ^ Data type | TypeSynonym -- ^ Type synonym @@ -321,7 +321,7 @@ kindRow :: SourceType -> SourceType kindRow = TypeApp nullSourceAnn (srcTypeConstructor C.Row) kindOfREmpty :: SourceType -kindOfREmpty = tyForall "k" kindType (kindRow (tyVar "k")) +kindOfREmpty = tyForall "k" kindType (kindRow (tyVar "k" kindType)) -- | Type constructor for functions tyFunction :: SourceType @@ -355,11 +355,11 @@ tyArray = srcTypeConstructor C.Array tyRecord :: SourceType tyRecord = srcTypeConstructor C.Record -tyVar :: Text -> SourceType +tyVar :: Text -> SourceType -> SourceType tyVar = TypeVar nullSourceAnn tyForall :: Text -> SourceType -> SourceType -> SourceType -tyForall var k ty = ForAll nullSourceAnn TypeVarInvisible var (Just k) ty Nothing +tyForall var k ty = ForAll nullSourceAnn TypeVarInvisible var k ty Nothing -- | Smart constructor for function types function :: SourceType -> SourceType -> SourceType @@ -459,7 +459,7 @@ primBooleanTypes = primCoerceTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) primCoerceTypes = M.fromList $ mconcat - [ primClass C.Coercible (\kind -> tyForall "k" kindType $ tyVar "k" -:> tyVar "k" -:> kind) + [ primClass C.Coercible (\kind -> tyForall "k" kindType $ tyVar "k" kindType -:> tyVar "k" kindType -:> kind) ] primOrderingTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) @@ -474,20 +474,20 @@ primOrderingTypes = primRowTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) primRowTypes = M.fromList $ mconcat - [ primClass C.RowUnion (\kind -> tyForall "k" kindType $ kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kind) - , primClass C.RowNub (\kind -> tyForall "k" kindType $ kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kind) - , primClass C.RowLacks (\kind -> tyForall "k" kindType $ kindSymbol -:> kindRow (tyVar "k") -:> kind) - , primClass C.RowCons (\kind -> tyForall "k" kindType $ kindSymbol -:> tyVar "k" -:> kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kind) + [ primClass C.RowUnion (\kind -> tyForall "k" kindType $ kindRow (tyVar "k" kindType) -:> kindRow (tyVar "k" kindType) -:> kindRow (tyVar "k" kindType) -:> kind) + , primClass C.RowNub (\kind -> tyForall "k" kindType $ kindRow (tyVar "k" kindType) -:> kindRow (tyVar "k" kindType) -:> kind) + , primClass C.RowLacks (\kind -> tyForall "k" kindType $ kindSymbol -:> kindRow (tyVar "k" kindType) -:> kind) + , primClass C.RowCons (\kind -> tyForall "k" kindType $ kindSymbol -:> tyVar "k" kindType -:> kindRow (tyVar "k" kindType) -:> kindRow (tyVar "k" kindType) -:> kind) ] primRowListTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) primRowListTypes = M.fromList $ [ (C.RowList, (kindType -:> kindType, ExternData [Phantom])) - , (C.RowListCons, (tyForall "k" kindType $ kindSymbol -:> tyVar "k" -:> kindRowList (tyVar "k") -:> kindRowList (tyVar "k"), ExternData [Phantom, Phantom, Phantom])) - , (C.RowListNil, (tyForall "k" kindType $ kindRowList (tyVar "k"), ExternData [])) + , (C.RowListCons, (tyForall "k" kindType $ kindSymbol -:> tyVar "k" kindType -:> kindRowList (tyVar "k" kindType) -:> kindRowList (tyVar "k" kindType), ExternData [Phantom, Phantom, Phantom])) + , (C.RowListNil, (tyForall "k" kindType $ kindRowList (tyVar "k" kindType), ExternData [])) ] <> mconcat - [ primClass C.RowToList (\kind -> tyForall "k" kindType $ kindRow (tyVar "k") -:> kindRowList (tyVar "k") -:> kind) + [ primClass C.RowToList (\kind -> tyForall "k" kindType $ kindRow (tyVar "k" kindType) -:> kindRowList (tyVar "k" kindType) -:> kind) ] primSymbolTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) @@ -514,7 +514,7 @@ primTypeErrorTypes = , (C.Fail <&> coerceProperName, (kindDoc -:> kindConstraint, ExternData [Nominal])) , (C.Warn <&> coerceProperName, (kindDoc -:> kindConstraint, ExternData [Nominal])) , (C.Text, (kindSymbol -:> kindDoc, ExternData [Phantom])) - , (C.Quote, (tyForall "k" kindType $ tyVar "k" -:> kindDoc, ExternData [Phantom])) + , (C.Quote, (tyForall "k" kindType $ tyVar "k" kindType -:> kindDoc, ExternData [Phantom])) , (C.QuoteLabel, (kindSymbol -:> kindDoc, ExternData [Phantom])) , (C.Beside, (kindDoc -:> kindDoc -:> kindDoc, ExternData [Phantom, Phantom])) , (C.Above, (kindDoc -:> kindDoc -:> kindDoc, ExternData [Phantom, Phantom])) @@ -548,8 +548,8 @@ primCoerceClasses = M.fromList -- class Coercible (a :: k) (b :: k) [ (C.Coercible, makeTypeClassData - [ ("a", Just (tyVar "k")) - , ("b", Just (tyVar "k")) + [ ("a", (tyVar "k" kindType)) + , ("b", (tyVar "k" kindType)) ] [] [] [] True) ] @@ -558,9 +558,9 @@ primRowClasses = M.fromList -- class Union (left :: Row k) (right :: Row k) (union :: Row k) | left right -> union, right union -> left, union left -> right [ (C.RowUnion, makeTypeClassData - [ ("left", Just (kindRow (tyVar "k"))) - , ("right", Just (kindRow (tyVar "k"))) - , ("union", Just (kindRow (tyVar "k"))) + [ ("left", (kindRow (tyVar "k" kindType))) + , ("right", (kindRow (tyVar "k" kindType))) + , ("union", (kindRow (tyVar "k" kindType))) ] [] [] [ FunctionalDependency [0, 1] [2] , FunctionalDependency [1, 2] [0] @@ -569,24 +569,24 @@ primRowClasses = -- class Nub (original :: Row k) (nubbed :: Row k) | original -> nubbed , (C.RowNub, makeTypeClassData - [ ("original", Just (kindRow (tyVar "k"))) - , ("nubbed", Just (kindRow (tyVar "k"))) + [ ("original", (kindRow (tyVar "k" kindType))) + , ("nubbed", (kindRow (tyVar "k" kindType))) ] [] [] [ FunctionalDependency [0] [1] ] True) -- class Lacks (label :: Symbol) (row :: Row k) , (C.RowLacks, makeTypeClassData - [ ("label", Just kindSymbol) - , ("row", Just (kindRow (tyVar "k"))) + [ ("label", kindSymbol) + , ("row", (kindRow (tyVar "k" kindType))) ] [] [] [] True) -- class RowCons (label :: Symbol) (a :: k) (tail :: Row k) (row :: Row k) | label tail a -> row, label row -> tail a , (C.RowCons, makeTypeClassData - [ ("label", Just kindSymbol) - , ("a", Just (tyVar "k")) - , ("tail", Just (kindRow (tyVar "k"))) - , ("row", Just (kindRow (tyVar "k"))) + [ ("label", kindSymbol) + , ("a", (tyVar "k" kindType)) + , ("tail", (kindRow (tyVar "k" kindType))) + , ("row", (kindRow (tyVar "k" kindType))) ] [] [] [ FunctionalDependency [0, 1, 2] [3] , FunctionalDependency [0, 3] [1, 2] @@ -598,8 +598,8 @@ primRowListClasses = M.fromList -- class RowToList (row :: Row k) (list :: RowList k) | row -> list [ (C.RowToList, makeTypeClassData - [ ("row", Just (kindRow (tyVar "k"))) - , ("list", Just (kindRowList (tyVar "k"))) + [ ("row", (kindRow (tyVar "k" kindType))) + , ("list", (kindRowList (tyVar "k" kindType))) ] [] [] [ FunctionalDependency [0] [1] ] True) @@ -610,9 +610,9 @@ primSymbolClasses = M.fromList -- class Append (left :: Symbol) (right :: Symbol) (appended :: Symbol) | left right -> appended, right appended -> left, appended left -> right [ (C.SymbolAppend, makeTypeClassData - [ ("left", Just kindSymbol) - , ("right", Just kindSymbol) - , ("appended", Just kindSymbol) + [ ("left", kindSymbol) + , ("right", kindSymbol) + , ("appended", kindSymbol) ] [] [] [ FunctionalDependency [0, 1] [2] , FunctionalDependency [1, 2] [0] @@ -621,18 +621,18 @@ primSymbolClasses = -- class Compare (left :: Symbol) (right :: Symbol) (ordering :: Ordering) | left right -> ordering , (C.SymbolCompare, makeTypeClassData - [ ("left", Just kindSymbol) - , ("right", Just kindSymbol) - , ("ordering", Just kindOrdering) + [ ("left", kindSymbol) + , ("right", kindSymbol) + , ("ordering", kindOrdering) ] [] [] [ FunctionalDependency [0, 1] [2] ] True) -- class Cons (head :: Symbol) (tail :: Symbol) (symbol :: Symbol) | head tail -> symbol, symbol -> head tail , (C.SymbolCons, makeTypeClassData - [ ("head", Just kindSymbol) - , ("tail", Just kindSymbol) - , ("symbol", Just kindSymbol) + [ ("head", kindSymbol) + , ("tail", kindSymbol) + , ("symbol", kindSymbol) ] [] [] [ FunctionalDependency [0, 1] [2] , FunctionalDependency [2] [0, 1] @@ -644,9 +644,9 @@ primIntClasses = M.fromList -- class Add (left :: Int) (right :: Int) (sum :: Int) | left right -> sum, left sum -> right, right sum -> left [ (C.IntAdd, makeTypeClassData - [ ("left", Just tyInt) - , ("right", Just tyInt) - , ("sum", Just tyInt) + [ ("left", tyInt) + , ("right", tyInt) + , ("sum", tyInt) ] [] [] [ FunctionalDependency [0, 1] [2] , FunctionalDependency [0, 2] [1] @@ -655,26 +655,26 @@ primIntClasses = -- class Compare (left :: Int) (right :: Int) (ordering :: Ordering) | left right -> ordering , (C.IntCompare, makeTypeClassData - [ ("left", Just tyInt) - , ("right", Just tyInt) - , ("ordering", Just kindOrdering) + [ ("left", tyInt) + , ("right", tyInt) + , ("ordering", kindOrdering) ] [] [] [ FunctionalDependency [0, 1] [2] ] True) -- class Mul (left :: Int) (right :: Int) (product :: Int) | left right -> product , (C.IntMul, makeTypeClassData - [ ("left", Just tyInt) - , ("right", Just tyInt) - , ("product", Just tyInt) + [ ("left", tyInt) + , ("right", tyInt) + , ("product", tyInt) ] [] [] [ FunctionalDependency [0, 1] [2] ] True) -- class ToString (int :: Int) (string :: Symbol) | int -> string , (C.IntToString, makeTypeClassData - [ ("int", Just tyInt) - , ("string", Just kindSymbol) + [ ("int", tyInt) + , ("string", kindSymbol) ] [] [] [ FunctionalDependency [0] [1] ] True) @@ -685,11 +685,11 @@ primTypeErrorClasses = M.fromList -- class Fail (message :: Symbol) [ (C.Fail, makeTypeClassData - [("message", Just kindDoc)] [] [] [] True) + [("message", kindDoc)] [] [] [] True) -- class Warn (message :: Symbol) , (C.Warn, makeTypeClassData - [("message", Just kindDoc)] [] [] [] True) + [("message", kindDoc)] [] [] [] True) ] -- | Finds information about data constructors from the current environment. @@ -759,7 +759,7 @@ f #@ t = (f,t) -- the kind is Type here. This is just to avoid potentially making a typo (and to make the manual function sigs more readable) forallT :: Text -> (SourceType -> SourceType) -> SourceType -forallT txt f = tyForall txt kindType (f $ tyVar txt) +forallT txt f = tyForall txt kindType (f $ tyVar txt kindType) infixr 0 #@ builtinTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) diff --git a/src/Language/PureScript/Errors.hs b/src/Language/PureScript/Errors.hs index 2d8225f32..bb6f78701 100644 --- a/src/Language/PureScript/Errors.hs +++ b/src/Language/PureScript/Errors.hs @@ -47,7 +47,7 @@ import Language.PureScript.Pretty.Common (endWith) import Language.PureScript.PSString (decodeStringWithReplacement) import Language.PureScript.Roles (Role, displayRole) import Language.PureScript.Traversals (sndM) -import Language.PureScript.Types (Constraint(..), ConstraintData(..), RowListItem(..), SourceConstraint, SourceType, Type(..), eraseForAllKindAnnotations, eraseKindApps, everywhereOnTypesTopDownM, getAnnForType, isMonoType, overConstraintArgs, rowFromList, rowToList, srcTUnknown) +import Language.PureScript.Types (Constraint(..), ConstraintData(..), RowListItem(..), SourceConstraint, SourceType, Type(..), eraseKindApps, everywhereOnTypesTopDownM, getAnnForType, isMonoType, overConstraintArgs, rowFromList, rowToList, srcTUnknown) import Language.PureScript.Publish.BoxesHelpers qualified as BoxHelpers import System.Console.ANSI qualified as ANSI import System.FilePath (makeRelative) @@ -446,14 +446,14 @@ replaceUnknowns = everywhereOnTypesTopDownM replaceTypes where -- We intentionally remove the kinds from skolems, because they are never -- presented when pretty-printing. Any unknowns in those kinds shouldn't -- appear in the list of unknowns unless used somewhere else. - replaceTypes (Skolem ann name _ s sko) = do + replaceTypes (Skolem ann name k s sko) = do m <- get case M.lookup s (umSkolemMap m) of Nothing -> do let s' = umNextIndex m put $ m { umSkolemMap = M.insert s (T.unpack name, s', Just (fst ann)) (umSkolemMap m), umNextIndex = s' + 1 } - return (Skolem ann name Nothing s' sko) - Just (_, s', _) -> return (Skolem ann name Nothing s' sko) + return (Skolem ann name k s' sko) + Just (_, s', _) -> return (Skolem ann name k s' sko) replaceTypes other = return other onTypesInErrorMessage :: (SourceType -> SourceType) -> ErrorMessage -> ErrorMessage @@ -1606,7 +1606,7 @@ prettyPrintSingleError (PPEOptions codeColor full level showDocs relPath fileCon printRow :: (Int -> Type a -> Box.Box) -> Type a -> Box.Box printRow f = markCodeBox . indent . f prettyDepth . - if full then id else eraseForAllKindAnnotations . eraseKindApps + if full then id else eraseKindApps -- If both rows are not empty, print them as diffs -- If verbose print all rows else only print unique rows @@ -1695,12 +1695,12 @@ prettyPrintSingleError (PPEOptions codeColor full level showDocs relPath fileCon prettyTypeWithDepth :: Int -> Type a -> Box.Box prettyTypeWithDepth depth | full = typeAsBox depth - | otherwise = typeAsBox depth . eraseForAllKindAnnotations . eraseKindApps + | otherwise = typeAsBox depth . eraseKindApps prettyTypeAtom :: Type a -> Box.Box prettyTypeAtom | full = typeAtomAsBox prettyDepth - | otherwise = typeAtomAsBox prettyDepth . eraseForAllKindAnnotations . eraseKindApps + | otherwise = typeAtomAsBox prettyDepth . eraseKindApps levelText :: Text levelText = case level of @@ -1933,7 +1933,7 @@ prettyPrintKindSignatureFor TypeSynonymSig = "type" prettyPrintKindSignatureFor ClassSig = "class" prettyPrintSuggestedTypeSimplified :: Type a -> String -prettyPrintSuggestedTypeSimplified = prettyPrintSuggestedType . eraseForAllKindAnnotations . eraseKindApps +prettyPrintSuggestedTypeSimplified = prettyPrintSuggestedType . eraseKindApps -- | Pretty print multiple errors prettyPrintMultipleErrors :: PPEOptions -> MultipleErrors -> String diff --git a/src/Language/PureScript/Externs.hs b/src/Language/PureScript/Externs.hs index 29d15ec8c..2c9d4096e 100644 --- a/src/Language/PureScript/Externs.hs +++ b/src/Language/PureScript/Externs.hs @@ -117,7 +117,7 @@ data ExternsDeclaration = -- | A type synonym | EDTypeSynonym { edTypeSynonymName :: ProperName 'TypeName - , edTypeSynonymArguments :: [(Text, Maybe SourceType)] + , edTypeSynonymArguments :: [(Text, SourceType)] , edTypeSynonymType :: SourceType } -- | A data constructor @@ -136,7 +136,7 @@ data ExternsDeclaration = -- | A type class declaration | EDClass { edClassName :: ProperName 'ClassName - , edClassTypeArguments :: [(Text, Maybe SourceType)] + , edClassTypeArguments :: [(Text, SourceType)] , edClassMembers :: [(Ident, SourceType)] , edClassConstraints :: [SourceConstraint] , edFunctionalDependencies :: [FunctionalDependency] diff --git a/src/Language/PureScript/Ide/CaseSplit.hs b/src/Language/PureScript/Ide/CaseSplit.hs index 8c66f5545..bfde3c368 100644 --- a/src/Language/PureScript/Ide/CaseSplit.hs +++ b/src/Language/PureScript/Ide/CaseSplit.hs @@ -44,7 +44,7 @@ explicitAnnotations = WildcardAnnotations True noAnnotations :: WildcardAnnotations noAnnotations = WildcardAnnotations False -type DataType = ([(Text, Maybe P.SourceType, P.Role)], [(P.ProperName 'P.ConstructorName, [P.SourceType])]) +type DataType = ([(Text, P.SourceType, P.Role)], [(P.ProperName 'P.ConstructorName, [P.SourceType])]) caseSplit :: (Ide m, MonadError IdeError m) diff --git a/src/Language/PureScript/Interactive/Printer.hs b/src/Language/PureScript/Interactive/Printer.hs index ed2d14521..d0a8e7c3d 100644 --- a/src/Language/PureScript/Interactive/Printer.hs +++ b/src/Language/PureScript/Interactive/Printer.hs @@ -89,7 +89,7 @@ printModuleSignatures moduleName P.Environment{..} = showType :: M.Map (P.Qualified (P.ProperName 'P.ClassName)) P.TypeClassData -> M.Map (P.Qualified (P.ProperName 'P.ConstructorName)) (P.DataDeclType, P.ProperName 'P.TypeName, P.SourceType, [P.Ident]) - -> M.Map (P.Qualified (P.ProperName 'P.TypeName)) ([(Text, Maybe P.SourceType)], P.SourceType) + -> M.Map (P.Qualified (P.ProperName 'P.TypeName)) ([(Text, P.SourceType)], P.SourceType) -> (P.Qualified (P.ProperName 'P.TypeName), Maybe (P.SourceType, P.TypeKind)) -> Maybe Box.Box showType typeClassesEnv dataConstructorsEnv typeSynonymsEnv (n@(P.Qualified modul name), typ) = diff --git a/src/Language/PureScript/Linter.hs b/src/Language/PureScript/Linter.hs index 9bce1909d..46f85243a 100644 --- a/src/Language/PureScript/Linter.hs +++ b/src/Language/PureScript/Linter.hs @@ -96,11 +96,10 @@ lint modl@(Module _ _ mn ds _) = do findUnused = go set where -- Recursively walk the type and prune used variables from `unused` go :: S.Set Text -> SourceType -> (S.Set Text, MultipleErrors) - go unused (TypeVar _ v) = (S.delete v unused, mempty) - go unused (ForAll _ _ tv mbK t1 _) = - let (nowUnused, errors) - | Just k <- mbK = go unused k `combine` go (S.insert tv unused) t1 - | otherwise = go (S.insert tv unused) t1 + go unused (TypeVar _ v _) = (S.delete v unused, mempty) + go unused (ForAll _ _ tv k t1 _) = + let (nowUnused, errors)= go unused k `combine` go (S.insert tv unused) t1 + restoredUnused = if S.member tv unused then S.insert tv nowUnused else nowUnused combinedErrors = if S.member tv nowUnused then errors <> errorMessage' ss (UnusedTypeVar tv) else errors in (restoredUnused, combinedErrors) diff --git a/src/Language/PureScript/Pretty/Types.hs b/src/Language/PureScript/Pretty/Types.hs index fafc3a2fe..57720bd8f 100644 --- a/src/Language/PureScript/Pretty/Types.hs +++ b/src/Language/PureScript/Pretty/Types.hs @@ -53,7 +53,7 @@ data PrettyPrintType | PPKindedType PrettyPrintType PrettyPrintType | PPBinaryNoParensType PrettyPrintType PrettyPrintType PrettyPrintType | PPParensInType PrettyPrintType - | PPForAll [(TypeVarVisibility, Text, Maybe PrettyPrintType)] PrettyPrintType + | PPForAll [(TypeVarVisibility, Text, PrettyPrintType)] PrettyPrintType | PPFunction PrettyPrintType PrettyPrintType | PPRecord [(Label, PrettyPrintType)] (Maybe PrettyPrintType) | PPRow [(Label, PrettyPrintType)] (Maybe PrettyPrintType) @@ -66,7 +66,7 @@ convertPrettyPrintType :: Int -> Type a -> PrettyPrintType convertPrettyPrintType = go where go _ (TUnknown _ n) = PPTUnknown n - go _ (TypeVar _ t) = PPTypeVar t Nothing + go _ (TypeVar _ t _) = PPTypeVar t Nothing go _ (TypeLevelString _ s) = PPTypeLevelString s go _ (TypeLevelInt _ n) = PPTypeLevelInt n go _ (TypeWildcard _ (HoleWildcard n)) = PPTypeWildcard (Just n) @@ -84,11 +84,11 @@ convertPrettyPrintType = go go d (BinaryNoParensType _ ty1 ty2 ty3) = PPBinaryNoParensType (go (d-1) ty1) (go (d-1) ty2) (go (d-1) ty3) go d (ParensInType _ ty) = PPParensInType (go (d-1) ty) go d ty@RCons{} = uncurry PPRow (goRow d ty) - go d (ForAll _ vis v mbK ty _) = goForAll d [(vis, v, fmap (go (d-1)) mbK)] ty + go d (ForAll _ vis v mbK ty _) = goForAll d [(vis, v, go (d-1) mbK)] ty go d (TypeApp _ a b) = goTypeApp d a b go d (KindApp _ a b) = PPTypeApp (go (d-1) a) (PPKindArg (go (d-1) b)) - goForAll d vs (ForAll _ vis v mbK ty _) = goForAll d ((vis, v, fmap (go (d-1)) mbK) : vs) ty + goForAll d vs (ForAll _ vis v mbK ty _) = goForAll d ((vis, v, go (d-1) mbK) : vs) ty goForAll d vs ty = PPForAll (reverse vs) (go (d-1) ty) goRow d ty = @@ -222,8 +222,8 @@ matchType tro = buildPrettyPrinter operators (matchTypeAtom tro) where forall' = if troUnicode tro then "∀" else "forall" doubleColon = if troUnicode tro then "∷" else "::" - printMbKindedType (vis, v, Nothing) = text (T.unpack $ typeVarVisibilityPrefix vis) <> text v - printMbKindedType (vis, v, Just k) = text ("(" ++ T.unpack (typeVarVisibilityPrefix vis) ++ v ++ " " ++ doubleColon ++ " ") <> typeAsBox' k <> text ")" + + printMbKindedType (vis, v, k) = text ("(" ++ T.unpack (typeVarVisibilityPrefix vis) ++ v ++ " " ++ doubleColon ++ " ") <> typeAsBox' k <> text ")" -- If both boxes span a single line, keep them on the same line, or else -- use the specified function to modify the second box, then combine vertically. @@ -232,7 +232,7 @@ matchType tro = buildPrettyPrinter operators (matchTypeAtom tro) where | rows b1 > 1 || rows b2 > 1 = vcat left [ b1, f b2 ] | otherwise = hcat top [ b1, text " ", b2] -forall_ :: Pattern () PrettyPrintType ([(TypeVarVisibility, String, Maybe PrettyPrintType)], PrettyPrintType) +forall_ :: Pattern () PrettyPrintType ([(TypeVarVisibility, String, PrettyPrintType)], PrettyPrintType) forall_ = mkPattern match where match (PPForAll idents ty) = Just ((_2 %~ T.unpack) <$> idents, ty) diff --git a/src/Language/PureScript/Sugar/CaseDeclarations.hs b/src/Language/PureScript/Sugar/CaseDeclarations.hs index 1d2d0e4c8..d190bdb17 100644 --- a/src/Language/PureScript/Sugar/CaseDeclarations.hs +++ b/src/Language/PureScript/Sugar/CaseDeclarations.hs @@ -21,7 +21,7 @@ import Control.Monad.Supply.Class (MonadSupply, freshName) import Language.PureScript.AST import Language.PureScript.Crash (internalError) -import Language.PureScript.Environment (NameKind(..), function) +import Language.PureScript.Environment (NameKind(..), function, kindType) import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors(..), SimpleErrorMessage(..), addHint, errorMessage', parU, rethrow, withPosition) import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), Qualified(..), freshIdent') import Language.PureScript.TypeChecker.Monad (guardWith) @@ -239,7 +239,7 @@ desugarGuardedExprs ss (Case scrut alternatives) = freshTyVar <- freshName let - remTy = quantify $ function (TypeVar (ss,[]) freshTyVar) (unsafeExprType desugared) + remTy = quantify $ function (TypeVar (ss,[]) freshTyVar kindType) (unsafeExprType desugared) mkType e = TypedValue False e remTy goto_rem_case :: Expr diff --git a/src/Language/PureScript/Sugar/Names.hs b/src/Language/PureScript/Sugar/Names.hs index d081764d7..43deb7780 100644 --- a/src/Language/PureScript/Sugar/Names.hs +++ b/src/Language/PureScript/Sugar/Names.hs @@ -345,9 +345,9 @@ renameInModule imports (Module modSS coms mn decls exps) = a updateTypeArguments - :: (Traversable f, Traversable g) - => f (a, g SourceType) -> m (f (a, g SourceType)) - updateTypeArguments = traverse (sndM (traverse updateTypesEverywhere)) + :: (Traversable f) + => f (a, SourceType) -> m (f (a, SourceType)) + updateTypeArguments = traverse (traverse updateTypesEverywhere) updateTypesEverywhere :: SourceType -> m SourceType updateTypesEverywhere = everywhereOnTypesM updateType diff --git a/src/Language/PureScript/Sugar/Operators.hs b/src/Language/PureScript/Sugar/Operators.hs index bb06486e8..a01ac7545 100644 --- a/src/Language/PureScript/Sugar/Operators.hs +++ b/src/Language/PureScript/Sugar/Operators.hs @@ -372,13 +372,13 @@ updateTypes goType = (goDecl, goExpr, goBinder) goDecl :: Declaration -> m Declaration goDecl (DataDeclaration sa@(ss, _) ddt name args dctors) = DataDeclaration sa ddt name - <$> traverse (traverse (traverse (goType' ss))) args + <$> traverse (traverse (goType' ss)) args <*> traverse (traverseDataCtorFields (traverse (sndM (goType' ss)))) dctors goDecl (ExternDeclaration sa@(ss, _) name ty) = ExternDeclaration sa name <$> goType' ss ty goDecl (TypeClassDeclaration sa@(ss, _) name args implies deps decls) = do implies' <- traverse (overConstraintArgs (traverse (goType' ss))) implies - args' <- traverse (traverse (traverse (goType' ss))) args + args' <- traverse (traverse (goType' ss)) args return $ TypeClassDeclaration sa name args' implies' deps decls goDecl (TypeInstanceDeclaration sa@(ss, _) na ch idx name cs className tys impls) = do cs' <- traverse (overConstraintArgs (traverse (goType' ss))) cs @@ -386,7 +386,7 @@ updateTypes goType = (goDecl, goExpr, goBinder) return $ TypeInstanceDeclaration sa na ch idx name cs' className tys' impls goDecl (TypeSynonymDeclaration sa@(ss, _) name args ty) = TypeSynonymDeclaration sa name - <$> traverse (traverse (traverse (goType' ss))) args + <$> traverse (traverse (goType' ss)) args <*> goType' ss ty goDecl (TypeDeclaration (TypeDeclarationData sa@(ss, _) expr ty)) = TypeDeclaration . TypeDeclarationData sa expr <$> goType' ss ty diff --git a/src/Language/PureScript/Sugar/TypeClasses.hs b/src/Language/PureScript/Sugar/TypeClasses.hs index ccb699db2..a9a74bfe6 100644 --- a/src/Language/PureScript/Sugar/TypeClasses.hs +++ b/src/Language/PureScript/Sugar/TypeClasses.hs @@ -273,7 +273,7 @@ memberToNameAndType _ = internalError "Invalid declaration in type class definit typeClassDictionaryDeclaration :: SourceAnn -> ProperName 'ClassName - -> [(Text, Maybe SourceType)] + -> [(Text, SourceType)] -> [SourceConstraint] -> [Declaration] -> Declaration @@ -292,7 +292,7 @@ typeClassDictionaryDeclaration sa name args implies members = typeClassMemberToDictionaryAccessor :: ModuleName -> ProperName 'ClassName - -> [(Text, Maybe SourceType)] + -> [(Text, SourceType)] -> Declaration -> Declaration typeClassMemberToDictionaryAccessor mn name args (TypeDeclaration (TypeDeclarationData sa@(ss, _) ident ty)) = @@ -306,7 +306,7 @@ typeClassMemberToDictionaryAccessor mn name args (TypeDeclaration (TypeDeclarati in ValueDecl sa ident Public [] [MkUnguarded ( TypedValue False (Abs (VarBinder ss dictIdent) (Case [Var ss $ Qualified ByNullSourcePos dictIdent] [CaseAlternative [ctor] [MkUnguarded acsr]])) $ - addVisibility visibility (moveQuantifiersToFront NullSourceAnn (quantify (srcConstrainedType (srcConstraint className [] (map (srcTypeVar . fst) args) Nothing) ty))) + addVisibility visibility (moveQuantifiersToFront NullSourceAnn (quantify (srcConstrainedType (srcConstraint className [] (map (uncurry srcTypeVar) args) Nothing) ty))) )] typeClassMemberToDictionaryAccessor _ _ _ _ = internalError "Invalid declaration in type class definition" diff --git a/src/Language/PureScript/TypeChecker.hs b/src/Language/PureScript/TypeChecker.hs index fde27f1ef..2eb35ddbb 100644 --- a/src/Language/PureScript/TypeChecker.hs +++ b/src/Language/PureScript/TypeChecker.hs @@ -53,7 +53,7 @@ addDataType => ModuleName -> DataDeclType -> ProperName 'TypeName - -> [(Text, Maybe SourceType, Role)] + -> [(Text, SourceType, Role)] -> [(DataConstructorDeclaration, SourceType)] -> SourceType -> m () @@ -108,7 +108,7 @@ addTypeSynonym :: (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => ModuleName -> ProperName 'TypeName - -> [(Text, Maybe SourceType)] + -> [(Text, SourceType)] -> SourceType -> SourceType -> m () @@ -149,7 +149,7 @@ addTypeClass . (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => ModuleName -> Qualified (ProperName 'ClassName) - -> [(Text, Maybe SourceType)] + -> [(Text, SourceType)] -> [SourceConstraint] -> [FunctionalDependency] -> [Declaration] @@ -214,7 +214,7 @@ checkTypeClassInstance cls i = check where -- row types are allowed in determined type class arguments. isFunDepDetermined = S.member i (typeClassDeterminedArguments cls) check = \case - TypeVar _ _ -> return () + TypeVar _ _ _ -> return () TypeLevelString _ _ -> return () TypeLevelInt _ _ -> return () TypeConstructor _ _ -> return () @@ -299,7 +299,7 @@ typeCheckAll moduleName = traverse go let qualifiedClassName = Qualified (ByModuleName moduleName) pn guardWith (errorMessage (DuplicateTypeClass pn (fst sa))) $ not (M.member qualifiedClassName (typeClasses env)) - addTypeClass moduleName qualifiedClassName (fmap Just <$> args') implies' deps tys' kind + addTypeClass moduleName qualifiedClassName args' implies' deps tys' kind return d where toTypeSynonym (TypeSynonymDeclaration sa nm args ty) = Just (sa, nm, args, ty) @@ -385,7 +385,7 @@ typeCheckAll moduleName = traverse go guardWith (errorMessage (DuplicateTypeClass pn ss)) $ not (M.member qualifiedClassName (typeClasses env)) (args', implies', tys', kind) <- kindOfClass moduleName (sa, pn, args, implies, tys) - addTypeClass moduleName qualifiedClassName (fmap Just <$> args') implies' deps tys' kind + addTypeClass moduleName qualifiedClassName args' implies' deps tys' kind return d go (TypeInstanceDeclaration _ _ _ _ (Left _) _ _ _ _) = internalError "typeCheckAll: type class instance generated name should have been desugared" go d@(TypeInstanceDeclaration sa@(ss, _) _ ch idx (Right dictName) deps className tys body) = @@ -449,7 +449,7 @@ typeCheckAll moduleName = traverse go nonOrphanModules = S.insert mn' nonOrphanModules' typeModule :: SourceType -> Maybe ModuleName - typeModule (TypeVar _ _) = Nothing + typeModule (TypeVar _ _ _) = Nothing typeModule (TypeLevelString _ _) = Nothing typeModule (TypeLevelInt _ _) = Nothing typeModule (TypeConstructor _ (Qualified (ByModuleName mn'') _)) = Just mn'' @@ -523,8 +523,8 @@ typeCheckAll moduleName = traverse go -- TUnknown, Skolem, etc. typeHeadsApart :: SourceType -> SourceType -> Bool typeHeadsApart l r | eqType l r = False - typeHeadsApart (TypeVar _ _) _ = False - typeHeadsApart _ (TypeVar _ _) = False + typeHeadsApart (TypeVar _ _ _) _ = False + typeHeadsApart _ (TypeVar _ _ _) = False typeHeadsApart (KindedType _ t1 _) t2 = typeHeadsApart t1 t2 typeHeadsApart t1 (KindedType _ t2 _) = typeHeadsApart t1 t2 typeHeadsApart (TypeApp _ h1 t1) (TypeApp _ h2 t2) = typeHeadsApart h1 h2 || typeHeadsApart t1 t2 @@ -543,14 +543,13 @@ typeCheckAll moduleName = traverse go -- This function adds the argument kinds for a type constructor so that they may appear in the externs file, -- extracted from the kind of the type constructor itself. -- - withKinds :: [(Text, Maybe SourceType)] -> SourceType -> [(Text, Maybe SourceType)] + withKinds :: [(Text, SourceType)] -> SourceType -> [(Text, SourceType)] withKinds [] _ = [] withKinds ss (ForAll _ _ _ _ k _) = withKinds ss k - withKinds (s@(_, Just _):ss) (TypeApp _ (TypeApp _ tyFn _) k2) | eqType tyFn tyFunction = s : withKinds ss k2 - withKinds ((s, Nothing):ss) (TypeApp _ (TypeApp _ tyFn k1) k2) | eqType tyFn tyFunction = (s, Just k1) : withKinds ss k2 + withKinds (s@(_, _):ss) (TypeApp _ (TypeApp _ tyFn _) k2) | eqType tyFn tyFunction = s : withKinds ss k2 withKinds _ _ = internalError "Invalid arguments to withKinds" - withRoles :: [(Text, Maybe SourceType)] -> [Role] -> [(Text, Maybe SourceType, Role)] + withRoles :: [(Text, SourceType)] -> [Role] -> [(Text, SourceType, Role)] withRoles = zipWith $ \(v, k) r -> (v, k, r) replaceTypeSynonymsInDataConstructor :: DataConstructorDeclaration -> m DataConstructorDeclaration diff --git a/src/Language/PureScript/TypeChecker/Deriving.hs b/src/Language/PureScript/TypeChecker/Deriving.hs index 8d5dcde9b..037b668cc 100644 --- a/src/Language/PureScript/TypeChecker/Deriving.hs +++ b/src/Language/PureScript/TypeChecker/Deriving.hs @@ -120,6 +120,7 @@ deriveNewtypeInstance className tys (UnwrappedTypeConstructor mn tyConNm dkargs (dtype, tyKindNames, tyArgNames, ctors) <- lookupTypeDecl mn tyConNm go dtype tyKindNames tyArgNames ctors where + go :: Maybe DataDeclType -> [Text] -> [(Text, SourceType)] -> [(ProperName 'ConstructorName, [SourceType])] -> m Expr go (Just Newtype) tyKindNames tyArgNames [(_, [wrapped])] = do -- The newtype might not be applied to all type arguments. -- This is okay as long as the newtype wraps something which ends with @@ -143,9 +144,9 @@ deriveNewtypeInstance className tys (UnwrappedTypeConstructor mn tyConNm dkargs takeReverse :: Int -> [a] -> [a] takeReverse n = take n . reverse - stripRight :: [(Text, Maybe kind)] -> SourceType -> Maybe SourceType + stripRight :: [(Text, SourceType)] -> SourceType -> Maybe SourceType stripRight [] ty = Just ty - stripRight ((arg, _) : args) (TypeApp _ t (TypeVar _ arg')) + stripRight ((arg, _) : args) (TypeApp _ t (TypeVar _ arg' _)) | arg == arg' = stripRight args t stripRight _ _ = Nothing @@ -158,14 +159,14 @@ deriveNewtypeInstance className tys (UnwrappedTypeConstructor mn tyConNm dkargs for_ (M.lookup constraintClass (typeClasses env)) $ \TypeClassData{ typeClassDependencies = deps } -> -- We need to check whether the newtype is mentioned, because of classes like MonadWriter -- with its Monoid superclass constraint. - when (not (null args) && any ((fst (last args) `elem`) . usedTypeVariables) constraintArgs) $ do + when (not (null args) && any ((last args `elem`) . usedTypeVariables) constraintArgs) $ do -- For now, we only verify superclasses where the newtype is the only argument, -- or for which all other arguments are determined by functional dependencies. -- Everything else raises a UnverifiableSuperclassInstance warning. -- This covers pretty much all cases we're interested in, but later we might want to do -- more work to extend this to other superclass relationships. - let determined = map (srcTypeVar . fst . (args !!)) . ordNub . concatMap fdDetermined . filter ((== [length args - 1]) . fdDeterminers) $ deps - if eqType (last constraintArgs) (srcTypeVar . fst $ last args) && all (`elem` determined) (init constraintArgs) + let determined = map (uncurry srcTypeVar . (args !!)) . ordNub . concatMap fdDetermined . filter ((== [length args - 1]) . fdDeterminers) $ deps + if eqType (last constraintArgs) (uncurry srcTypeVar $ last args) && all (`elem` determined) (init constraintArgs) then do -- Now make sure that a superclass instance was derived. Again, this is not a complete -- check, since the superclass might have multiple type arguments, so overlaps might still @@ -359,7 +360,7 @@ lookupTypeDecl => MonadState CheckState m => ModuleName -> ProperName 'TypeName - -> m (Maybe DataDeclType, [Text], [(Text, Maybe SourceType)], [(ProperName 'ConstructorName, [SourceType])]) + -> m (Maybe DataDeclType, [Text], [(Text, SourceType)], [(ProperName 'ConstructorName, [SourceType])]) lookupTypeDecl mn typeName = do env <- getEnv note (errorMessage $ CannotFindDerivingType typeName) $ do @@ -372,7 +373,7 @@ lookupTypeDecl mn typeName = do pure (dtype, fst . snd <$> kargs, map (\(v, k, _) -> (v, k)) args, dctors) isAppliedVar :: Type a -> Bool -isAppliedVar (TypeApp _ (TypeVar _ _) _) = True +isAppliedVar (TypeApp _ (TypeVar _ _ _) _) = True isAppliedVar _ = False objectType :: Type a -> Maybe (Type a) @@ -473,7 +474,7 @@ validateParamsInTypeConstructors derivingClass utc isBi CovariantClasses{..} con assertParamNotUsedIn :: Text -> SourceType -> Writer [SourceSpan] () assertParamNotUsedIn param = everythingOnTypes (*>) $ \case - TypeVar (ss, _) name | name == param -> tell [ss] + TypeVar (ss, _) name _ | name == param -> tell [ss] _ -> pure () tryBiClasses ht tyLArg tyArg @@ -515,7 +516,7 @@ validateParamsInTypeConstructors derivingClass utc isBi CovariantClasses{..} con TypeApp _ tyFn tyArg -> assertNoParamUsedIn tyFn *> tryMonoClasses (headOfTypeWithSubst tyFn) tyArg - TypeVar (ss, _) name -> mergeTheseWith (checkName lparamIsContra IsLParam) (checkName paramIsContra IsParam) (liftA2 (<|>)) params + TypeVar (ss, _) name _ -> mergeTheseWith (checkName lparamIsContra IsLParam) (checkName paramIsContra IsParam) (liftA2 (<|>)) params where checkName thisParamIsContra usage param | name == param = when (thisParamIsContra /= isNegative) (tell [ss]) $> Just usage @@ -543,7 +544,7 @@ validateParamsInTypeConstructors derivingClass utc isBi CovariantClasses{..} con headOfType = fix $ \go -> \case TypeApp _ ty _ -> go ty KindApp _ ty _ -> go ty - TypeVar _ nm -> Qualified ByNullSourcePos (Left nm) + TypeVar _ nm _ -> Qualified ByNullSourcePos (Left nm) Skolem _ nm _ _ _ -> Qualified ByNullSourcePos (Left nm) TypeConstructor _ (Qualified qb nm) -> Qualified qb (Right nm) ty -> internalError $ "headOfType missing a case: " <> show (void ty) diff --git a/src/Language/PureScript/TypeChecker/Entailment.hs b/src/Language/PureScript/TypeChecker/Entailment.hs index 7dc100ffe..f29f74b9d 100644 --- a/src/Language/PureScript/TypeChecker/Entailment.hs +++ b/src/Language/PureScript/TypeChecker/Entailment.hs @@ -36,7 +36,7 @@ import Data.List.NonEmpty qualified as NEL import Language.PureScript.AST (Binder(..), ErrorMessageHint(..), Expr(..), Literal(..), pattern NullSourceSpan, everywhereOnValuesTopDownM, nullSourceSpan, everythingOnValues, nullSourceAnn) import Language.PureScript.AST.Declarations (UnknownsHint(..)) import Language.PureScript.Crash (internalError) -import Language.PureScript.Environment (Environment(..), FunctionalDependency(..), TypeClassData(..), dictTypeName, kindRow, tyBoolean, tyInt, tyString, mkRecordT) +import Language.PureScript.Environment (Environment(..), FunctionalDependency(..), TypeClassData(..), dictTypeName, kindRow, tyBoolean, tyInt, tyString, mkRecordT, kindType) import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, addHints, errorMessage, rethrow) import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), byMaybeModuleName, coerceProperName, disqualify, freshIdent, getQual) import Language.PureScript.TypeChecker.Entailment.Coercible (GivenSolverState(..), WantedSolverState(..), initialGivenSolverState, initialWantedSolverState, insoluble, solveGivens, solveWanteds) @@ -630,7 +630,7 @@ entails SolverOptions{..} constraint context hints = where (fixed, rest) = rowToList l - rowVar = srcTypeVar "r" + rowVar = srcTypeVar "r" (kindRow kindType) (canMakeProgress, lOut, rOut, uOut, cons, vars) = case rest of @@ -779,7 +779,7 @@ matches deps TypeClassDictionaryInScope{..} tys = typeHeadsAreEqual t1 (KindedType _ t2 _) = typeHeadsAreEqual t1 t2 typeHeadsAreEqual (TUnknown _ u1) (TUnknown _ u2) | u1 == u2 = (Match (), M.empty) typeHeadsAreEqual (Skolem _ _ _ s1 _) (Skolem _ _ _ s2 _) | s1 == s2 = (Match (), M.empty) - typeHeadsAreEqual t (TypeVar _ v) = (Match (), M.singleton v [t]) + typeHeadsAreEqual t (TypeVar _ v _) = (Match (), M.singleton v [t]) typeHeadsAreEqual (TypeConstructor _ c1) (TypeConstructor _ c2) | c1 == c2 = (Match (), M.empty) typeHeadsAreEqual (TypeLevelString _ s1) (TypeLevelString _ s2) | s1 == s2 = (Match (), M.empty) typeHeadsAreEqual (TypeLevelInt _ n1) (TypeLevelInt _ n2) | n1 == n2 = (Match (), M.empty) @@ -799,10 +799,10 @@ matches deps TypeClassDictionaryInScope{..} tys = go (l, KindApp _ t1 k1) (r, KindApp _ t2 k2) | eqType k1 k2 = go (l, t1) (r, t2) go ([], REmpty _) ([], REmpty _) = (Match (), M.empty) go ([], TUnknown _ u1) ([], TUnknown _ u2) | u1 == u2 = (Match (), M.empty) - go ([], TypeVar _ v1) ([], TypeVar _ v2) | v1 == v2 = (Match (), M.empty) + go ([], TypeVar _ v1 _) ([], TypeVar _ v2 _) | v1 == v2 = (Match (), M.empty) go ([], Skolem _ _ _ sk1 _) ([], Skolem _ _ _ sk2 _) | sk1 == sk2 = (Match (), M.empty) go ([], TUnknown _ _) _ = (Unknown, M.empty) - go (sd, r) ([], TypeVar _ v) = (Match (), M.singleton v [rowFromList (sd, r)]) + go (sd, r) ([], TypeVar _ v _) = (Match (), M.singleton v [rowFromList (sd, r)]) go _ _ = (Apart, M.empty) typeHeadsAreEqual (TUnknown _ _) _ = (Unknown, M.empty) typeHeadsAreEqual Skolem{} _ = (Unknown, M.empty) @@ -828,7 +828,7 @@ matches deps TypeClassDictionaryInScope{..} tys = typesAreEqual (Skolem _ _ _ s1 _) (Skolem _ _ _ s2 _) | s1 == s2 = Match () typesAreEqual (Skolem _ _ _ s1 _) t2 = if t2 `containsSkolem` s1 then Apart else Unknown typesAreEqual t1 (Skolem _ _ _ s2 _) = if t1 `containsSkolem` s2 then Apart else Unknown - typesAreEqual (TypeVar _ v1) (TypeVar _ v2) | v1 == v2 = Match () + typesAreEqual (TypeVar _ v1 _) (TypeVar _ v2 _) | v1 == v2 = Match () typesAreEqual (TypeLevelString _ s1) (TypeLevelString _ s2) | s1 == s2 = Match () typesAreEqual (TypeLevelInt _ n1) (TypeLevelInt _ n2) | n1 == n2 = Match () typesAreEqual (TypeConstructor _ c1) (TypeConstructor _ c2) | c1 == c2 = Match () @@ -850,7 +850,7 @@ matches deps TypeClassDictionaryInScope{..} tys = go ([], Skolem _ _ _ _ _) _ = Unknown go _ ([], Skolem _ _ _ _ _) = Unknown go ([], REmpty _) ([], REmpty _) = Match () - go ([], TypeVar _ v1) ([], TypeVar _ v2) | v1 == v2 = Match () + go ([], TypeVar _ v1 _) ([], TypeVar _ v2 _) | v1 == v2 = Match () go _ _ = Apart typesAreEqual _ _ = Apart diff --git a/src/Language/PureScript/TypeChecker/Kinds.hs b/src/Language/PureScript/TypeChecker/Kinds.hs index 5be87c005..e9f48eb01 100644 --- a/src/Language/PureScript/TypeChecker/Kinds.hs +++ b/src/Language/PureScript/TypeChecker/Kinds.hs @@ -56,23 +56,26 @@ import Language.PureScript.TypeChecker.Skolems (newSkolemConstant, newSkolemScop import Language.PureScript.TypeChecker.Synonyms (replaceAllTypeSynonyms) import Language.PureScript.Types import Language.PureScript.Pretty.Types (prettyPrintType) +import Language.PureScript.CST.Types (Comment) +-- TODO/REVIEW/HACK: ----------------------------------- +-- NO CLUE IF THE CHANGES I MADE HERE ARE CORRECT generalizeUnknowns :: [(Unknown, SourceType)] -> SourceType -> SourceType generalizeUnknowns unks ty = - generalizeUnknownsWithVars (unknownVarNames (usedTypeVariables ty) unks) ty + generalizeUnknownsWithVars (unknownVarNames (fst <$> usedTypeVariables ty) unks) ty generalizeUnknownsWithVars :: [(Unknown, (Text, SourceType))] -> SourceType -> SourceType generalizeUnknownsWithVars binders ty = - mkForAll ((getAnnForType ty,) . fmap (Just . replaceUnknownsWithVars binders) . snd <$> binders) . replaceUnknownsWithVars binders $ ty + mkForAll ((getAnnForType ty,) . fmap (replaceUnknownsWithVars binders) . snd <$> binders) . replaceUnknownsWithVars binders $ ty -replaceUnknownsWithVars :: [(Unknown, (Text, a))] -> SourceType -> SourceType +replaceUnknownsWithVars :: [(Unknown, (Text, SourceType))] -> SourceType -> SourceType replaceUnknownsWithVars binders ty | null binders = ty | otherwise = go ty where go :: SourceType -> SourceType go = everywhereOnTypes $ \case - TUnknown ann unk | Just (name, _) <- lookup unk binders -> TypeVar ann name + TUnknown ann unk | Just (name, ki) <- lookup unk binders -> TypeVar ann name ki other -> other unknownVarNames :: [Text] -> [(Unknown, SourceType)] -> [(Unknown, (Text, SourceType))] @@ -187,12 +190,12 @@ inferKind = \tyToInfer -> pure (ty, E.kindSymbol $> ann) ty@(TypeLevelInt ann _) -> pure (ty, E.tyInt $> ann) - ty@(TypeVar ann v) -> do + ty@(TypeVar ann v ki) -> do moduleName <- unsafeCheckCurrentModule kind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos $ ProperName v) pure (ty, kind $> ann) ty@(Skolem ann _ mbK _ _) -> do - kind <- apply $ fromMaybe (internalError "Skolem has no kind") mbK + kind <- apply $ mbK pure (ty, kind $> ann) ty@(TUnknown ann u) -> do kind <- apply . snd =<< lookupUnsolved u @@ -215,7 +218,7 @@ inferKind = \tyToInfer -> KindApp ann t1 t2 -> do (t1', kind) <- bitraverse pure apply =<< go t1 case kind of - ForAll _ _ arg (Just argKind) resKind _ -> do + ForAll _ _ arg (argKind) resKind _ -> do t2' <- checkKind t2 argKind pure (KindApp ann t1' t2', replaceTypeVars arg t2' resKind) _ -> @@ -225,17 +228,16 @@ inferKind = \tyToInfer -> t1' <- checkKind t1 t2' t2'' <- apply t2' pure (t1', t2'') - ForAll ann vis arg mbKind ty sc -> do + ForAll ann vis arg k ty sc -> do moduleName <- unsafeCheckCurrentModule - kind <- case mbKind of - Just k -> replaceAllTypeSynonyms =<< checkIsSaturatedType k - Nothing -> freshKind (fst ann) + kind <- replaceAllTypeSynonyms =<< checkIsSaturatedType k + (ty', unks) <- bindLocalTypeVariables moduleName [(ProperName arg, kind)] $ do ty' <- apply =<< checkIsSaturatedType ty unks <- unknownsWithKinds . IS.toList $ unknowns ty' pure (ty', unks) for_ unks . uncurry $ addUnsolved Nothing - pure (ForAll ann vis arg (Just kind) ty' sc, E.kindType $> ann) + pure (ForAll ann vis arg kind ty' sc, E.kindType $> ann) ParensInType _ ty -> go ty ty -> @@ -261,7 +263,7 @@ inferAppKind ann (fn, fnKind) arg = case fnKind of solve u $ (TUnknown ann u1 E.-:> TUnknown ann u2) $> ann arg' <- checkKind arg $ TUnknown ann u1 pure (TypeApp ann fn arg', TUnknown ann u2) - ForAll _ _ a (Just k) ty _ -> do + ForAll _ _ a k ty _ -> do u <- freshUnknown addUnsolved Nothing u k inferAppKind ann (KindApp ann fn (TUnknown ann u), replaceTypeVars a (TUnknown ann u) ty) arg @@ -292,7 +294,7 @@ cannotApplyKindToType cannotApplyKindToType poly arg = do let ann = getAnnForType arg argKind <- snd <$> inferKind arg - _ <- checkKind poly . mkForAll [(ann, ("k", Just argKind))] =<< freshKind nullSourceSpan + _ <- checkKind poly . mkForAll [(ann, ("k", argKind))] =<< freshKind nullSourceSpan internalCompilerError . T.pack $ "Cannot apply kind to type: " <> debugType (srcKindApp poly arg) checkKind @@ -336,7 +338,7 @@ instantiateKind -> SourceType -> m SourceType instantiateKind (ty, kind1) kind2 = case kind1 of - ForAll _ _ a (Just k) t _ | shouldInstantiate kind2 -> do + ForAll _ _ a ( k) t _ | shouldInstantiate kind2 -> do let ann = getAnnForType ty u <- freshKindWithKind (fst ann) k instantiateKind (KindApp ann ty u, replaceTypeVars a u t) kind2 @@ -365,7 +367,7 @@ subsumesKind = go scope <- maybe newSkolemScope pure mbScope skolc <- newSkolemConstant go a $ skolemize ann var mbKind skolc scope b - (ForAll ann _ var (Just kind) a _, b) -> do + (ForAll ann _ var ( kind) a _, b) -> do a' <- freshKindWithKind (fst ann) kind go (replaceTypeVars var a' a) b (TUnknown ann u, b@(TypeApp _ (TypeApp _ arr _) _)) @@ -527,12 +529,13 @@ elaborateKind = \case throwError . errorMessage' (fst ann) . UnknownName . fmap TyName $ v Just (kind, _) -> ($> ann) <$> apply kind - TypeVar ann a -> do + TypeVar ann a ki -> do moduleName <- unsafeCheckCurrentModule kind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos $ ProperName a) + unifyKinds ki kind -- TODO/REVIEW/HACK: I DO NOT KNOW WHETHER THIS IS WHAT WE WANT pure (kind $> ann) (Skolem ann _ mbK _ _) -> do - kind <- apply $ fromMaybe (internalError "Skolem has no kind") mbK + kind <- apply $ mbK pure $ kind $> ann TUnknown ann a' -> do kind <- snd <$> lookupUnsolved a' @@ -616,7 +619,7 @@ kindOfWithScopedVars ty = do type DataDeclarationArgs = ( SourceAnn , ProperName 'TypeName - , [(Text, Maybe SourceType)] + , [(Text, SourceType)] , [DataConstructorDeclaration] ) @@ -644,13 +647,13 @@ inferDataDeclaration moduleName (ann, tyName, tyArgs, ctors) = do tyKind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos tyName) let (sigBinders, tyKind') = fromJust . completeBinderList $ tyKind bindLocalTypeVariables moduleName (first ProperName . snd <$> sigBinders) $ do - tyArgs' <- for tyArgs . traverse . maybe (freshKind (fst ann)) $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType + tyArgs' <- for tyArgs . traverse $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType subsumesKind (foldr ((E.-:>) . snd) E.kindType tyArgs') tyKind' bindLocalTypeVariables moduleName (first ProperName <$> tyArgs') $ do let tyCtorName = srcTypeConstructor $ mkQualified tyName moduleName - tyCtor = foldl (\ty -> srcKindApp ty . srcTypeVar . fst . snd) tyCtorName sigBinders - tyCtor' = foldl (\ty -> srcTypeApp ty . srcTypeVar . fst) tyCtor tyArgs' - ctorBinders = fmap (fmap (fmap Just)) $ sigBinders <> fmap (nullSourceAnn,) tyArgs' + tyCtor = foldl (\ty -> srcKindApp ty . uncurry srcTypeVar . snd) tyCtorName sigBinders + tyCtor' = foldl (\ty -> srcTypeApp ty . uncurry srcTypeVar) tyCtor tyArgs' + ctorBinders = sigBinders <> fmap (nullSourceAnn,) tyArgs' visibility = second (const TypeVarVisible) <$> tyArgs for ctors $ fmap (fmap (addVisibility visibility . mkForAll ctorBinders)) . inferDataConstructor tyCtor' @@ -668,7 +671,7 @@ inferDataConstructor tyCtor DataConstructorDeclaration{..} = do type TypeDeclarationArgs = ( SourceAnn , ProperName 'TypeName - , [(Text, Maybe SourceType)] + , [(Text, SourceType)] , SourceType ) @@ -697,12 +700,14 @@ inferTypeSynonym moduleName (ann, tyName, tyArgs, tyBody) = do let (sigBinders, tyKind') = fromJust . completeBinderList $ tyKind bindLocalTypeVariables moduleName (first ProperName . snd <$> sigBinders) $ do kindRes <- freshKind (fst ann) - tyArgs' <- for tyArgs . traverse . maybe (freshKind (fst ann)) $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType + tyArgs' <- for tyArgs . traverse $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType unifyKinds tyKind' $ foldr ((E.-:>) . snd) kindRes tyArgs' bindLocalTypeVariables moduleName (first ProperName <$> tyArgs') $ do tyBodyAndKind <- traverse apply =<< inferKind tyBody instantiateKind tyBodyAndKind =<< apply kindRes + +type BinderList = [(SourceAnn, (Text, Type SourceAnn))] -- | Checks that a particular generalization is valid and well-scoped. -- | Implicitly generalized kinds are always elaborated before explicitly -- | quantified type variables. It's possible that such a kind can be @@ -713,24 +718,25 @@ checkQuantification :: forall m. (MonadError MultipleErrors m) => SourceType -> m () -checkQuantification = - collectErrors . go [] [] . fst . fromJust . completeBinderList +checkQuantification = collectErrors . go [] [] . fst . fromJust . completeBinderList where + collectErrors vars = unless (null vars) . throwError - . foldMap (\(ann, arg) -> errorMessage' (fst ann) $ QuantificationCheckFailureInKind arg) + . foldMap (\(ann, (arg,_)) -> errorMessage' (fst ann) $ QuantificationCheckFailureInKind arg) $ vars - + go :: BinderList -> [(Text,SourceType)] -> BinderList -> BinderList go acc _ [] = reverse acc go acc sco ((_, (arg, k)) : rest) - | not . all (flip elem sco) $ freeTypeVariables k = goDeps acc arg rest - | otherwise = go acc (arg : sco) rest + | not . all (flip elem sco) $ freeTypeVariables k = goDeps acc (arg,k) rest + | otherwise = go acc ((arg,k) : sco) rest + goDeps :: BinderList -> (Text,SourceType) -> BinderList -> BinderList goDeps acc _ [] = acc goDeps acc karg ((ann, (arg, k)) : rest) - | isDep && arg == karg = (ann, arg) : acc - | isDep = goDeps ((ann, arg) : acc) karg rest + | isDep && (arg,k) == karg = (ann, (arg,k)) : acc + | isDep = goDeps ((ann, (arg,k)) : acc) karg rest | otherwise = goDeps acc karg rest where isDep = @@ -746,7 +752,7 @@ checkVisibleTypeQuantification = collectErrors vars = unless (null vars) . throwError - . foldMap (errorMessage . VisibleQuantificationCheckFailureInType) + . foldMap (errorMessage . VisibleQuantificationCheckFailureInType . fst) $ vars -- | Checks that there are no remaining unknowns in a type, and if so @@ -780,7 +786,7 @@ checkTypeQuantification = type ClassDeclarationArgs = ( SourceAnn , ProperName 'ClassName - , [(Text, Maybe SourceType)] + , [(Text, SourceType)] , [SourceConstraint] , [Declaration] ) @@ -813,7 +819,7 @@ inferClassDeclaration moduleName (ann, clsName, clsArgs, superClasses, decls) = clsKind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos $ coerceProperName clsName) let (sigBinders, clsKind') = fromJust . completeBinderList $ clsKind bindLocalTypeVariables moduleName (first ProperName . snd <$> sigBinders) $ do - clsArgs' <- for clsArgs . traverse . maybe (freshKind (fst ann)) $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType + clsArgs' <- for clsArgs . traverse $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType unifyKinds clsKind' $ foldr ((E.-:>) . snd) E.kindConstraint clsArgs' bindLocalTypeVariables moduleName (first ProperName <$> clsArgs') $ do (clsArgs',,) @@ -885,14 +891,14 @@ checkInstanceDeclaration checkInstanceDeclaration moduleName (ann, constraints, clsName, args) = do let ty = foldl (TypeApp ann) (TypeConstructor ann (fmap coerceProperName clsName)) args tyWithConstraints = foldr srcConstrainedType ty constraints - freeVars = freeTypeVariables tyWithConstraints + freeVars = fst <$> freeTypeVariables tyWithConstraints freeVarsDict <- for freeVars $ \v -> (ProperName v,) <$> freshKind (fst ann) bindLocalTypeVariables moduleName freeVarsDict $ do ty' <- checkKind ty E.kindConstraint constraints' <- for constraints checkConstraint allTy <- apply $ foldr srcConstrainedType ty' constraints' allUnknowns <- unknownsWithKinds . IS.toList . foldMap unknowns . (allTy :) =<< traverse (apply . snd) freeVarsDict - let unknownVars = unknownVarNames (usedTypeVariables allTy) allUnknowns + let unknownVars = unknownVarNames (fst <$> usedTypeVariables allTy) allUnknowns let allWithVars = replaceUnknownsWithVars unknownVars allTy let (allConstraints, (_, allKinds, allArgs)) = unapplyTypes <$> unapplyConstraints allWithVars varKinds <- traverse (traverse (fmap (replaceUnknownsWithVars unknownVars) . apply)) $ (snd <$> unknownVars) <> (first runProperName <$> freeVarsDict) @@ -924,7 +930,7 @@ checkKindDeclaration _ ty = do go = \case ForAll a' vis v' k' ty' sc' -> do v'' <- freshVar v' - ty'' <- go (replaceTypeVars v' (TypeVar a' v'') ty') + ty'' <- go (replaceTypeVars v' (TypeVar a' v'' k') ty') pure $ ForAll a' vis v'' k' ty'' sc' other -> pure other @@ -997,20 +1003,20 @@ kindsOfAll moduleName syns dats clss = withFreshSubstitution $ do <> foldMap (usedTypeVariables . snd) args <> foldMap (foldMap usedTypeVariables . (\c -> constraintKindArgs c <> constraintArgs c)) supers <> foldMap usedTypeVariablesInDecls decls - unkBinders = unknownVarNames usedVars tyUnks + unkBinders = unknownVarNames (fst <$> usedVars) tyUnks args' = fmap (replaceUnknownsWithVars unkBinders . replaceTypeCtors) <$> args supers' = mapConstraintArgsAll (fmap (replaceUnknownsWithVars unkBinders . replaceTypeCtors)) <$> supers decls' = mapTypeDeclaration (replaceUnknownsWithVars unkBinders . replaceTypeCtors) <$> decls (args', supers', decls', generalizeUnknownsWithVars unkBinders clsKind) datResultsWithKinds <- for datResultsWithUnks $ \(((datName, datKind), ctors), _) -> do let tyUnks = snd . fromJust $ lookup (mkQualified datName moduleName) tySubs - replaceDataCtorField ty = replaceUnknownsWithVars (unknownVarNames (usedTypeVariables ty) tyUnks) $ replaceTypeCtors ty + replaceDataCtorField ty = replaceUnknownsWithVars (unknownVarNames (fst <$> usedTypeVariables ty) tyUnks) $ replaceTypeCtors ty ctors' = fmap (mapDataCtorFields (fmap (fmap replaceDataCtorField)) *** generalizeUnknowns tyUnks . replaceTypeCtors) ctors traverse_ (traverse_ checkTypeQuantification) ctors' pure (ctors', generalizeUnknowns tyUnks datKind) synResultsWithKinds <- for synResultsWithUnks $ \(((synName, synKind), synBody), _) -> do let tyUnks = snd . fromJust $ lookup (mkQualified synName moduleName) tySubs - unkBinders = unknownVarNames (usedTypeVariables synKind <> usedTypeVariables synBody) tyUnks + unkBinders = unknownVarNames (fst <$> usedTypeVariables synKind <> usedTypeVariables synBody) tyUnks genBody = replaceUnknownsWithVars unkBinders $ replaceTypeCtors synBody genSig = generalizeUnknownsWithVars unkBinders synKind checkEscapedSkolems genBody diff --git a/src/Language/PureScript/TypeChecker/Monad.hs b/src/Language/PureScript/TypeChecker/Monad.hs index 46be3f3e1..8c6f07590 100644 --- a/src/Language/PureScript/TypeChecker/Monad.hs +++ b/src/Language/PureScript/TypeChecker/Monad.hs @@ -431,8 +431,7 @@ debugTypeSynonyms = fmap go . M.toList . typeSynonyms go (qual, (binders, subTy)) = do let vars = unwords $ flip fmap binders $ \case - (v, Just k) -> "(" <> unpack v <> " :: " <> init (prettyPrintType 100 k) <> ")" - (v, Nothing) -> unpack v + (v, k) -> "(" <> unpack v <> " :: " <> init (prettyPrintType 100 k) <> ")" ppTy = prettyPrintType 100 subTy name = showQualified runProperName qual "type " <> unpack name <> " " <> vars <> " = " <> init ppTy @@ -458,7 +457,7 @@ debugTypeClasses = fmap go . M.toList . typeClasses go (className, tc) = do let className' = showQualified runProperName className - args = unwords $ (\(a, b) -> "(" <> debugType (maybe (srcTypeVar a) (srcKindedType (srcTypeVar a)) b) <> ")") <$> typeClassArguments tc + args = unwords $ (\(a, b) -> "(" <> debugType (srcTypeVar a b) <> ")") <$> typeClassArguments tc "class " <> unpack className' <> " " <> args debugValue :: Expr -> String diff --git a/src/Language/PureScript/TypeChecker/Roles.hs b/src/Language/PureScript/TypeChecker/Roles.hs index 7b38a317b..3b0dcfb62 100644 --- a/src/Language/PureScript/TypeChecker/Roles.hs +++ b/src/Language/PureScript/TypeChecker/Roles.hs @@ -92,7 +92,7 @@ lookupRoles env tyName = checkRoles :: forall m . (MonadError MultipleErrors m) - => [(Text, Maybe SourceType, Role)] + => [(Text, SourceType, Role)] -- ^ type parameters for the data type whose roles we are checking -> [Role] -- ^ roles declared for the data type @@ -123,7 +123,7 @@ inferRoles -> ModuleName -> ProperName 'TypeName -- ^ The name of the data type whose roles we are checking - -> [(Text, Maybe SourceType)] + -> [(Text, SourceType)] -- ^ type parameters for the data type whose roles we are checking -> [DataConstructorDeclaration] -- ^ constructors of the data type whose roles we are checking @@ -137,7 +137,7 @@ inferDataBindingGroupRoles -> [RoleDeclarationData] -> [DataDeclaration] -> ProperName 'TypeName - -> [(Text, Maybe SourceType)] + -> [(Text, SourceType)] -> [Role] inferDataBindingGroupRoles env moduleName roleDeclarations group = let declaredRoleEnv = M.fromList $ map (Qualified (ByModuleName moduleName) . rdeclIdent &&& rdeclRoles) roleDeclarations @@ -151,7 +151,7 @@ inferDataBindingGroupRoles env moduleName roleDeclarations group = type DataDeclaration = ( ProperName 'TypeName - , [(Text, Maybe SourceType)] + , [(Text, SourceType)] , [DataConstructorDeclaration] ) @@ -186,7 +186,7 @@ inferDataDeclarationRoles moduleName (tyName, tyArgs, ctors) roleEnv = -- "Role inference" section of the paper "Safe Zero-cost Coercions for -- Haskell". walk :: S.Set Text -> SourceType -> RoleMap - walk btvs (TypeVar _ v) + walk btvs (TypeVar _ v _) -- A type variable standing alone (e.g. @a@ in @data D a b = D a@) is -- representational, _unless_ it has been bound by a quantifier, in which -- case it is not actually a parameter to the type (e.g. @z@ in @@ -259,5 +259,5 @@ inferDataDeclarationRoles moduleName (tyName, tyArgs, ctors) roleEnv = -- ascribing a nominal role to each of those variables. freeNominals :: S.Set Text -> SourceType -> RoleMap freeNominals btvs x = - let ftvs = filter (flip S.notMember btvs) (freeTypeVariables x) + let ftvs = filter (flip S.notMember btvs) (fst <$> freeTypeVariables x) in RoleMap (M.fromList $ map (, Nominal) ftvs) diff --git a/src/Language/PureScript/TypeChecker/Skolems.hs b/src/Language/PureScript/TypeChecker/Skolems.hs index aa49997fd..5ffdb8bc4 100644 --- a/src/Language/PureScript/TypeChecker/Skolems.hs +++ b/src/Language/PureScript/TypeChecker/Skolems.hs @@ -45,13 +45,13 @@ newSkolemScope = do return $ SkolemScope s -- | Skolemize a type variable by replacing its instances with fresh skolem constants -skolemize :: a -> Text -> Maybe (Type a) -> Int -> SkolemScope -> Type a -> Type a +skolemize :: a -> Text -> (Type a) -> Int -> SkolemScope -> Type a -> Type a skolemize ann ident mbK sko scope = replaceTypeVars ident (Skolem ann ident mbK sko scope) -- | This function skolemizes type variables appearing in any type signatures or -- 'DeferredDictionary' placeholders. These type variables are the only places -- where scoped type variables can appear in expressions. -skolemizeTypesInValue :: SourceAnn -> Text -> Maybe SourceType -> Int -> SkolemScope -> Expr -> Expr +skolemizeTypesInValue :: SourceAnn -> Text -> SourceType -> Int -> SkolemScope -> Expr -> Expr skolemizeTypesInValue ann ident mbK sko scope = runIdentity . onExpr' where diff --git a/src/Language/PureScript/TypeChecker/Subsumption.hs b/src/Language/PureScript/TypeChecker/Subsumption.hs index 26da5e980..51725adfb 100644 --- a/src/Language/PureScript/TypeChecker/Subsumption.hs +++ b/src/Language/PureScript/TypeChecker/Subsumption.hs @@ -75,7 +75,7 @@ subsumes' -> SourceType -> m (Coercion mode) subsumes' mode (ForAll _ _ ident mbK ty1 _) ty2 = do - u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK + u <- freshTypeWithKind mbK let replaced = replaceTypeVars ident u ty1 subsumes' mode replaced ty2 subsumes' mode ty1 (ForAll _ _ ident mbK ty2 sco) = diff --git a/src/Language/PureScript/TypeChecker/Synonyms.hs b/src/Language/PureScript/TypeChecker/Synonyms.hs index 567ae415e..79dd52d6d 100644 --- a/src/Language/PureScript/TypeChecker/Synonyms.hs +++ b/src/Language/PureScript/TypeChecker/Synonyms.hs @@ -23,7 +23,7 @@ import Language.PureScript.TypeChecker.Monad (CheckState, getEnv) import Language.PureScript.Types (SourceType, Type(..), completeBinderList, everywhereOnTypesTopDownM, getAnnForType, replaceAllTypeVars) -- | Type synonym information (arguments with kinds, aliased type), indexed by name -type SynonymMap = M.Map (Qualified (ProperName 'TypeName)) ([(Text, Maybe SourceType)], SourceType) +type SynonymMap = M.Map (Qualified (ProperName 'TypeName)) ([(Text, SourceType)], SourceType) type KindMap = M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind) diff --git a/src/Language/PureScript/TypeChecker/Types.hs b/src/Language/PureScript/TypeChecker/Types.hs index 9faf7830d..93df377d8 100644 --- a/src/Language/PureScript/TypeChecker/Types.hs +++ b/src/Language/PureScript/TypeChecker/Types.hs @@ -339,7 +339,7 @@ instantiatePolyTypeWithUnknowns -> SourceType -> m (Expr, SourceType) instantiatePolyTypeWithUnknowns val (ForAll _ _ ident mbK ty _) = do - u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK + u <- freshTypeWithKind mbK insertUnkName' u ident instantiatePolyTypeWithUnknowns val $ replaceTypeVars ident u ty instantiatePolyTypeWithUnknowns val (ConstrainedType _ con ty) = do @@ -354,7 +354,7 @@ instantiatePolyTypeWithUnknownsUntilVisible -> SourceType -> m (Expr, SourceType) instantiatePolyTypeWithUnknownsUntilVisible val (ForAll _ TypeVarInvisible ident mbK ty _) = do - u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK + u <- freshTypeWithKind mbK insertUnkName' u ident instantiatePolyTypeWithUnknownsUntilVisible val $ replaceTypeVars ident u ty instantiatePolyTypeWithUnknownsUntilVisible val ty = return (val, ty) @@ -485,7 +485,7 @@ infer' (VisibleTypeApp valFn tyArg) = do tyArg' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ tyArg (valFn'', valTy') <- instantiatePolyTypeWithUnknownsUntilVisible valFn' valTy case valTy' of - ForAll _ _ qName (Just qKind) qBody _ -> do + ForAll _ _ qName qKind qBody _ -> do tyArg'' <- replaceAllTypeSynonyms <=< checkKind tyArg' $ qKind let resTy = replaceTypeVars qName tyArg'' qBody (valFn''', resTy') <- instantiateConstraint valFn'' resTy @@ -1006,7 +1006,7 @@ checkFunctionApplication' fn (TypeApp _ (TypeApp _ tyFunction' argTy) retTy) arg arg' <- tvToExpr <$> check arg argTy return (retTy, App fn arg') checkFunctionApplication' fn (ForAll _ _ ident mbK ty _) arg = do - u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK + u <- freshTypeWithKind mbK insertUnkName' u ident let replaced = replaceTypeVars ident u ty checkFunctionApplication fn replaced arg diff --git a/src/Language/PureScript/TypeChecker/Unify.hs b/src/Language/PureScript/TypeChecker/Unify.hs index e4f1040eb..d3194f09a 100644 --- a/src/Language/PureScript/TypeChecker/Unify.hs +++ b/src/Language/PureScript/TypeChecker/Unify.hs @@ -128,7 +128,7 @@ unifyTypes t1 t2 = do sk `unifyTypes` ty2 unifyTypes' ForAll{} _ = internalError "unifyTypes: unspecified skolem scope" unifyTypes' ty f@ForAll{} = f `unifyTypes` ty - unifyTypes' (TypeVar _ v1) (TypeVar _ v2) | v1 == v2 = return () + unifyTypes' (TypeVar _ v1 k1) (TypeVar _ v2 k2) | v1 == v2 = unifyTypes k1 k2 -- REVIEW/HACK: Not sure if this is right... unifyTypes' ty1@(TypeConstructor _ c1) ty2@(TypeConstructor _ c2) = guardWith (errorMessage (TypesDoNotUnify ty1 ty2)) (c1 == c2) unifyTypes' (TypeLevelString _ s1) (TypeLevelString _ s2) | s1 == s2 = return () @@ -170,7 +170,7 @@ unifyRows r1 r2 = sequence_ matches *> uncurry unifyTails rest where unifyTails ([], TUnknown _ u) (sd, r) = solveType u (rowFromList (sd, r)) unifyTails (sd, r) ([], TUnknown _ u) = solveType u (rowFromList (sd, r)) unifyTails ([], REmptyKinded _ _) ([], REmptyKinded _ _) = return () - unifyTails ([], TypeVar _ v1) ([], TypeVar _ v2) | v1 == v2 = return () + unifyTails ([], TypeVar _ v1 k1) ([], TypeVar _ v2 k2) | v1 == v2 && k1 == k2 = return () unifyTails ([], Skolem _ _ _ s1 _) ([], Skolem _ _ _ s2 _) | s1 == s2 = return () unifyTails (sd1, TUnknown a u1) (sd2, TUnknown _ u2) | u1 /= u2 = do forM_ sd1 $ occursCheck u2 . rowListType @@ -204,20 +204,29 @@ replaceTypeWildcards = everywhereOnTypesM replace varIfUnknown :: forall m. (MonadState CheckState m) => [(Unknown, SourceType)] -> SourceType -> m SourceType varIfUnknown unks ty = do bn' <- traverse toBinding unks + -- This *should* be a map from TyVar names to their kinds. ugh + let bindings = M.fromList $ snd <$> bn' ty' <- go ty - pure $ mkForAll bn' ty' + pure $ mkForAll bn' $ cleanup bindings ty' where toName :: Unknown -> m T.Text toName u = (<> T.pack (show u)) . fromMaybe "t" <$> lookupUnkName u - toBinding :: (Unknown, SourceType) -> m (SourceAnn, (T.Text, Maybe SourceType)) + toBinding :: (Unknown, SourceType) -> m (SourceAnn, (T.Text, SourceType)) toBinding (u, k) = do u' <- toName u k' <- go k - pure (getAnnForType ty, (u', Just k')) + pure (getAnnForType ty, (u', k')) + + cleanup :: M.Map T.Text SourceType -> SourceType -> SourceType + cleanup dict = everywhereOnTypes $ \case + tv@(TypeVar ann nm _) -> case M.lookup nm dict of + Nothing -> tv + Just k' -> TypeVar ann nm k' + other -> other go :: SourceType -> m SourceType go = everywhereOnTypesM $ \case - (TUnknown ann u) -> - TypeVar ann <$> toName u + tu@(TUnknown ann u) -> + (\nm -> TypeVar ann nm tu) <$> toName u t -> pure t diff --git a/src/Language/PureScript/Types.hs b/src/Language/PureScript/Types.hs index 12b7198ed..bb9e0d089 100644 --- a/src/Language/PureScript/Types.hs +++ b/src/Language/PureScript/Types.hs @@ -72,8 +72,8 @@ typeVarVisibilityPrefix = \case data Type a -- | A unification variable of type Type = TUnknown a Int - -- | A named type variable - | TypeVar a Text + -- | A named type variable with a kind annotation + | TypeVar a Text (Type a) -- | A type-level string | TypeLevelString a PSString -- | A type-level natural @@ -91,11 +91,11 @@ data Type a | KindApp a (Type a) (Type a) -- | Forall quantifier -- \/ TODO: Remove the maybe - | ForAll a TypeVarVisibility Text (Maybe (Type a)) (Type a) (Maybe SkolemScope) + | ForAll a TypeVarVisibility Text (Type a) (Type a) (Maybe SkolemScope) -- | A type with a set of type class constraints | ConstrainedType a (Constraint a) (Type a) -- | A skolem constant - | Skolem a Text (Maybe (Type a)) Int SkolemScope + | Skolem a Text (Type a) Int SkolemScope -- | An empty row | REmpty a -- | A non-empty row @@ -119,7 +119,7 @@ instance Serialise a => Serialise (Type a) srcTUnknown :: Int -> SourceType srcTUnknown = TUnknown NullSourceAnn -srcTypeVar :: Text -> SourceType +srcTypeVar :: Text -> SourceType -> SourceType srcTypeVar = TypeVar NullSourceAnn srcTypeLevelString :: PSString -> SourceType @@ -140,7 +140,7 @@ srcTypeApp = TypeApp NullSourceAnn srcKindApp :: SourceType -> SourceType -> SourceType srcKindApp = KindApp NullSourceAnn -srcForAll :: TypeVarVisibility -> Text -> Maybe SourceType -> SourceType -> Maybe SkolemScope -> SourceType +srcForAll :: TypeVarVisibility -> Text -> SourceType -> SourceType -> Maybe SkolemScope -> SourceType srcForAll = ForAll NullSourceAnn srcConstrainedType :: SourceConstraint -> SourceType -> SourceType @@ -243,8 +243,11 @@ typeToJSON annToJSON ty = case ty of TUnknown a b -> variant "TUnknown" a b - TypeVar a b -> - variant "TypeVar" a b + TypeVar a b k -> + variant "TypeVar" a $ A.object [ + "var" .= b, + "kind" .= typeToJSON annToJSON k ] + TypeLevelString a b -> variant "TypeLevelString" a b TypeLevelInt a b -> @@ -263,14 +266,14 @@ typeToJSON annToJSON ty = variant "ForAll" a $ A.object [ "visibility" .= b , "identifier" .= c - , "kind" .= fmap go d + , "kind" .= go d , "type" .= go e , "skolem" .= f ] ConstrainedType a b c -> variant "ConstrainedType" a (constraintToJSON annToJSON b, go c) Skolem a b c d e -> - variant "Skolem" a (b, go <$> c, d, e) + variant "Skolem" a (b, go c, d, e) REmpty a -> nullary "REmpty" a RCons a b c d -> @@ -350,8 +353,11 @@ typeFromJSON defaultAnn annFromJSON = A.withObject "Type" $ \o -> do case tag of "TUnknown" -> TUnknown a <$> contents - "TypeVar" -> - TypeVar a <$> contents + "TypeVar" -> do + tv <- contents + var <- tv .: "var" + ki <- A.explicitParseField (typeFromJSON defaultAnn annFromJSON) tv "kind" + pure $ TypeVar a var ki "TypeLevelString" -> TypeLevelString a <$> contents "TypeLevelInt" -> @@ -375,25 +381,22 @@ typeFromJSON defaultAnn annFromJSON = A.withObject "Type" $ \o -> do f <- contents v <- f .: "visibility" i <- f .: "identifier" - k <- f .:? "kind" + k <- f .: "kind" t <- f .: "type" s <- f .: "skolem" - ForAll a v i <$> traverse go k <*> go t <*> pure s + ForAll a v i <$> go k <*> go t <*> pure s - withoutMbKind = do - (b, c, d) <- contents - ForAll a TypeVarInvisible b Nothing <$> go c <*> pure d withMbKind = do (b, c, d, e) <- contents - ForAll a TypeVarInvisible b <$> (Just <$> go c) <*> go d <*> pure e - asObject <|> withMbKind <|> withoutMbKind + ForAll a TypeVarInvisible b <$> (go c) <*> go d <*> pure e + asObject <|> withMbKind "ConstrainedType" -> do (b, c) <- contents ConstrainedType a <$> constraintFromJSON defaultAnn annFromJSON b <*> go c "Skolem" -> do (b, c, d, e) <- contents - c' <- traverse go c + c' <- go c pure $ Skolem a b c' d e "REmpty" -> pure $ REmpty a @@ -514,7 +517,7 @@ isMonoType (KindedType _ t _) = isMonoType t isMonoType _ = True -- | Universally quantify a type -mkForAll :: [(a, (Text, Maybe (Type a)))] -> Type a -> Type a +mkForAll :: [(a, (Text, Type a))] -> Type a -> Type a mkForAll args ty = foldr (\(ann, (arg, mbK)) t -> ForAll ann TypeVarInvisible arg mbK t Nothing) ty args -- | Replace a type variable, taking into account variable shadowing @@ -525,18 +528,18 @@ replaceTypeVars v r = replaceAllTypeVars [(v, r)] replaceAllTypeVars :: [(Text, Type a)] -> Type a -> Type a replaceAllTypeVars = go [] where go :: [Text] -> [(Text, Type a)] -> Type a -> Type a - go _ m (TypeVar ann v) = fromMaybe (TypeVar ann v) (v `lookup` m) + go _ m (TypeVar ann v k) = fromMaybe (TypeVar ann v k) (v `lookup` m) go bs m (TypeApp ann t1 t2) = TypeApp ann (go bs m t1) (go bs m t2) go bs m (KindApp ann t1 t2) = KindApp ann (go bs m t1) (go bs m t2) go bs m (ForAll ann vis v mbK t sco) | v `elem` keys = go bs (filter ((/= v) . fst) m) $ ForAll ann vis v mbK' t sco - | v `elem` usedVars = - let v' = genPureName v (keys ++ bs ++ usedVars) - t' = go bs [(v, TypeVar ann v')] t + | (v,mbK) `elem` usedVars = + let v' = genPureName v (keys ++ bs ++ (fst <$> usedVars)) + t' = go bs [(v, TypeVar ann v' mbK)] t in ForAll ann vis v' mbK' (go (v' : bs) m t') sco | otherwise = ForAll ann vis v mbK' (go (v : bs) m t) sco where - mbK' = go bs m <$> mbK + mbK' = go bs m mbK keys = map fst m usedVars = concatMap (usedTypeVariables . snd) m go bs m (ConstrainedType ann c t) = ConstrainedType ann (mapConstraintArgsAll (map (go bs m)) c) (go bs m t) @@ -565,20 +568,20 @@ addVisibility v = go where go ty = ty -- | Collect all type variables appearing in a type -usedTypeVariables :: Type a -> [Text] +usedTypeVariables :: Type a -> [(Text,Type a)] usedTypeVariables = ordNub . everythingOnTypes (++) go where - go (TypeVar _ v) = [v] + go (TypeVar _ v k) = [(v,k)] go _ = [] -- | Collect all free type variables appearing in a type -freeTypeVariables :: Type a -> [Text] +freeTypeVariables :: Type a -> [(Text, Type a)] freeTypeVariables = ordNub . fmap snd . sortOn fst . go 0 [] where -- Tracks kind levels so that variables appearing in kind annotations are listed first. - go :: Int -> [Text] -> Type a -> [(Int, Text)] - go lvl bound (TypeVar _ v) | v `notElem` bound = [(lvl, v)] + go :: Int -> [Text] -> Type a -> [(Int, (Text, Type a))] + go lvl bound (TypeVar _ v k) | v `notElem` bound = [(lvl, (v,k))] go lvl bound (TypeApp _ t1 t2) = go lvl bound t1 ++ go lvl bound t2 go lvl bound (KindApp _ t1 t2) = go lvl bound t1 ++ go (lvl - 1) bound t2 - go lvl bound (ForAll _ _ v mbK t _) = foldMap (go (lvl - 1) bound) mbK ++ go lvl (v : bound) t + go lvl bound (ForAll _ _ v mbK t _) = go (lvl - 1) bound mbK ++ go lvl (v : bound) t go lvl bound (ConstrainedType _ c t) = foldMap (go (lvl - 1) bound) (constraintKindArgs c) ++ foldMap (go lvl bound) (constraintArgs c) ++ go lvl bound t go lvl bound (RCons _ _ t r) = go lvl bound t ++ go lvl bound r go lvl bound (KindedType _ t k) = go lvl bound t ++ go (lvl - 1) bound k @@ -591,26 +594,25 @@ completeBinderList :: Type a -> Maybe ([(a, (Text, Type a))], Type a) completeBinderList = go [] where go acc = \case - ForAll _ _ _ Nothing _ _ -> Nothing - ForAll ann _ var (Just k) ty _ -> go ((ann, (var, k)) : acc) ty + ForAll ann _ var k ty _ -> go ((ann, (var, k)) : acc) ty ty -> Just (reverse acc, ty) -- | Universally quantify over all type variables appearing free in a type quantify :: Type a -> Type a -quantify ty = foldr (\arg t -> ForAll (getAnnForType ty) TypeVarInvisible arg Nothing t Nothing) ty $ freeTypeVariables ty +quantify ty = foldr (\(arg,argKind) t -> ForAll (getAnnForType ty) TypeVarInvisible arg argKind t Nothing) ty $ freeTypeVariables ty -- | Move all universal quantifiers to the front of a type -moveQuantifiersToFront :: a -> Type a -> Type a +moveQuantifiersToFront :: forall a. a -> Type a -> Type a moveQuantifiersToFront syntheticAnn = go [] [] where go qs cs = \case ForAll ann vis q mbK ty sco -> do let - cArgs :: [Text] = cs >>= constraintArgs . snd >>= freeTypeVariables + cArgs :: [(Text, Type a)] = cs >>= constraintArgs . snd >>= freeTypeVariables (q'', ty') - | q `elem` cArgs = do - let q' = genPureName q $ cArgs <> freeTypeVariables ty - (q', replaceTypeVars q (TypeVar syntheticAnn q') ty) + | q `elem` (fst <$> cArgs) = do + let q' = genPureName q $ (fst <$> cArgs) <> (fst <$> freeTypeVariables ty) + (q', replaceTypeVars q (TypeVar syntheticAnn q' mbK) ty) | otherwise = (q, ty) go ((ann, q'', sco, mbK, vis) : qs) cs ty' @@ -645,23 +647,8 @@ eraseKindApps = everywhereOnTypes $ \case KindApp _ ty _ -> ty ConstrainedType ann con ty -> ConstrainedType ann (con { constraintKindArgs = [] }) ty - Skolem ann name _ i sc -> - Skolem ann name Nothing i sc other -> other -eraseForAllKindAnnotations :: Type a -> Type a -eraseForAllKindAnnotations = removeAmbiguousVars . removeForAllKinds - where - removeForAllKinds = everywhereOnTypes $ \case - ForAll ann vis arg _ ty sco -> - ForAll ann vis arg Nothing ty sco - other -> other - - removeAmbiguousVars = everywhereOnTypes $ \case - fa@(ForAll _ _ arg _ ty _) - | arg `elem` freeTypeVariables ty -> fa - | otherwise -> ty - other -> other unapplyTypes :: Type a -> (Type a, [Type a], [Type a]) unapplyTypes = goTypes [] @@ -688,7 +675,7 @@ srcInstanceType -> SourceType srcInstanceType ss vars className tys = setAnnForType (ss, []) - . flip (foldr $ \(tv, k) ty -> srcForAll TypeVarInvisible tv (Just k) ty Nothing) vars + . flip (foldr $ \(tv, k) ty -> srcForAll TypeVarInvisible tv k ty Nothing) vars . flip (foldl' srcTypeApp) tys $ srcTypeConstructor $ coerceProperName <$> className @@ -696,9 +683,9 @@ everywhereOnTypes :: (Type a -> Type a) -> Type a -> Type a everywhereOnTypes f = go where go (TypeApp ann t1 t2) = f (TypeApp ann (go t1) (go t2)) go (KindApp ann t1 t2) = f (KindApp ann (go t1) (go t2)) - go (ForAll ann vis arg mbK ty sco) = f (ForAll ann vis arg (go <$> mbK) (go ty) sco) + go (ForAll ann vis arg mbK ty sco) = f (ForAll ann vis arg (go mbK) (go ty) sco) go (ConstrainedType ann c ty) = f (ConstrainedType ann (mapConstraintArgsAll (map go) c) (go ty)) - go (Skolem ann name mbK i sc) = f (Skolem ann name (go <$> mbK) i sc) + go (Skolem ann name mbK i sc) = f (Skolem ann name (go mbK) i sc) go (RCons ann name ty rest) = f (RCons ann name (go ty) (go rest)) go (KindedType ann ty k) = f (KindedType ann (go ty) (go k)) go (BinaryNoParensType ann t1 t2 t3) = f (BinaryNoParensType ann (go t1) (go t2) (go t3)) @@ -709,9 +696,9 @@ everywhereOnTypesM :: Monad m => (Type a -> m (Type a)) -> Type a -> m (Type a) everywhereOnTypesM f = go where go (TypeApp ann t1 t2) = (TypeApp ann <$> go t1 <*> go t2) >>= f go (KindApp ann t1 t2) = (KindApp ann <$> go t1 <*> go t2) >>= f - go (ForAll ann vis arg mbK ty sco) = (ForAll ann vis arg <$> traverse go mbK <*> go ty <*> pure sco) >>= f + go (ForAll ann vis arg mbK ty sco) = (ForAll ann vis arg <$> go mbK <*> go ty <*> pure sco) >>= f go (ConstrainedType ann c ty) = (ConstrainedType ann <$> overConstraintArgsAll (mapM go) c <*> go ty) >>= f - go (Skolem ann name mbK i sc) = (Skolem ann name <$> traverse go mbK <*> pure i <*> pure sc) >>= f + go (Skolem ann name mbK i sc) = (Skolem ann name <$> go mbK <*> pure i <*> pure sc) >>= f go (RCons ann name ty rest) = (RCons ann name <$> go ty <*> go rest) >>= f go (KindedType ann ty k) = (KindedType ann <$> go ty <*> go k) >>= f go (BinaryNoParensType ann t1 t2 t3) = (BinaryNoParensType ann <$> go t1 <*> go t2 <*> go t3) >>= f @@ -722,9 +709,9 @@ everywhereOnTypesTopDownM :: Monad m => (Type a -> m (Type a)) -> Type a -> m (T everywhereOnTypesTopDownM f = go <=< f where go (TypeApp ann t1 t2) = TypeApp ann <$> (f t1 >>= go) <*> (f t2 >>= go) go (KindApp ann t1 t2) = KindApp ann <$> (f t1 >>= go) <*> (f t2 >>= go) - go (ForAll ann vis arg mbK ty sco) = ForAll ann vis arg <$> traverse (f >=> go) mbK <*> (f ty >>= go) <*> pure sco + go (ForAll ann vis arg mbK ty sco) = ForAll ann vis arg <$> (f >=> go) mbK <*> (f ty >>= go) <*> pure sco go (ConstrainedType ann c ty) = ConstrainedType ann <$> overConstraintArgsAll (mapM (go <=< f)) c <*> (f ty >>= go) - go (Skolem ann name mbK i sc) = Skolem ann name <$> traverse (f >=> go) mbK <*> pure i <*> pure sc + go (Skolem ann name mbK i sc) = Skolem ann name <$> (f >=> go) mbK <*> pure i <*> pure sc go (RCons ann name ty rest) = RCons ann name <$> (f ty >>= go) <*> (f rest >>= go) go (KindedType ann ty k) = KindedType ann <$> (f ty >>= go) <*> (f k >>= go) go (BinaryNoParensType ann t1 t2 t3) = BinaryNoParensType ann <$> (f t1 >>= go) <*> (f t2 >>= go) <*> (f t3 >>= go) @@ -735,10 +722,9 @@ everythingOnTypes :: (r -> r -> r) -> (Type a -> r) -> Type a -> r everythingOnTypes (<+>) f = go where go t@(TypeApp _ t1 t2) = f t <+> go t1 <+> go t2 go t@(KindApp _ t1 t2) = f t <+> go t1 <+> go t2 - go t@(ForAll _ _ _ (Just k) ty _) = f t <+> go k <+> go ty - go t@(ForAll _ _ _ _ ty _) = f t <+> go ty + go t@(ForAll _ _ _ (k) ty _) = f t <+> go k <+> go ty go t@(ConstrainedType _ c ty) = foldl (<+>) (f t) (map go (constraintKindArgs c) ++ map go (constraintArgs c)) <+> go ty - go t@(Skolem _ _ (Just k) _ _) = f t <+> go k + go t@(Skolem _ _ ( k) _ _) = f t <+> go k go t@(RCons _ _ ty rest) = f t <+> go ty <+> go rest go t@(KindedType _ ty k) = f t <+> go ty <+> go k go t@(BinaryNoParensType _ t1 t2 t3) = f t <+> go t1 <+> go t2 <+> go t3 @@ -750,10 +736,9 @@ everythingWithContextOnTypes s0 r0 (<+>) f = go' s0 where go' s t = let (s', r) = f s t in r <+> go s' t go s (TypeApp _ t1 t2) = go' s t1 <+> go' s t2 go s (KindApp _ t1 t2) = go' s t1 <+> go' s t2 - go s (ForAll _ _ _ (Just k) ty _) = go' s k <+> go' s ty - go s (ForAll _ _ _ _ ty _) = go' s ty + go s (ForAll _ _ _ (k) ty _) = go' s k <+> go' s ty go s (ConstrainedType _ c ty) = foldl (<+>) r0 (map (go' s) (constraintKindArgs c) ++ map (go' s) (constraintArgs c)) <+> go' s ty - go s (Skolem _ _ (Just k) _ _) = go' s k + go s (Skolem _ _ ( k) _ _) = go' s k go s (RCons _ _ ty rest) = go' s ty <+> go' s rest go s (KindedType _ ty k) = go' s ty <+> go' s k go s (BinaryNoParensType _ t1 t2 t3) = go' s t1 <+> go' s t2 <+> go' s t3 @@ -762,7 +747,7 @@ everythingWithContextOnTypes s0 r0 (<+>) f = go' s0 where annForType :: Lens' (Type a) a annForType k (TUnknown a b) = (\z -> TUnknown z b) <$> k a -annForType k (TypeVar a b) = (\z -> TypeVar z b) <$> k a +annForType k (TypeVar a b ki) = (\z -> TypeVar z b ki) <$> k a annForType k (TypeLevelString a b) = (\z -> TypeLevelString z b) <$> k a annForType k (TypeLevelInt a b) = (\z -> TypeLevelInt z b) <$> k a annForType k (TypeWildcard a b) = (\z -> TypeWildcard z b) <$> k a @@ -793,7 +778,7 @@ instance Ord (Type a) where eqType :: Type a -> Type b -> Bool eqType (TUnknown _ a) (TUnknown _ a') = a == a' -eqType (TypeVar _ a) (TypeVar _ a') = a == a' +eqType (TypeVar _ a k) (TypeVar _ a' k') = a == a' && eqType k k' eqType (TypeLevelString _ a) (TypeLevelString _ a') = a == a' eqType (TypeLevelInt _ a) (TypeLevelInt _ a') = a == a' eqType (TypeWildcard _ a) (TypeWildcard _ a') = a == a' @@ -801,9 +786,9 @@ eqType (TypeConstructor _ a) (TypeConstructor _ a') = a == a' eqType (TypeOp _ a) (TypeOp _ a') = a == a' eqType (TypeApp _ a b) (TypeApp _ a' b') = eqType a a' && eqType b b' eqType (KindApp _ a b) (KindApp _ a' b') = eqType a a' && eqType b b' -eqType (ForAll _ _ a b c d) (ForAll _ _ a' b' c' d') = a == a' && eqMaybeType b b' && eqType c c' && d == d' +eqType (ForAll _ _ a b c d) (ForAll _ _ a' b' c' d') = a == a' && eqType b b' && eqType c c' && d == d' eqType (ConstrainedType _ a b) (ConstrainedType _ a' b') = eqConstraint a a' && eqType b b' -eqType (Skolem _ a b c d) (Skolem _ a' b' c' d') = a == a' && eqMaybeType b b' && c == c' && d == d' +eqType (Skolem _ a b c d) (Skolem _ a' b' c' d') = a == a' && eqType b b' && c == c' && d == d' eqType (REmpty _) (REmpty _) = True eqType (RCons _ a b c) (RCons _ a' b' c') = a == a' && eqType b b' && eqType c c' eqType (KindedType _ a b) (KindedType _ a' b') = eqType a a' && eqType b b' @@ -818,7 +803,7 @@ eqMaybeType _ _ = False compareType :: Type a -> Type b -> Ordering compareType (TUnknown _ a) (TUnknown _ a') = compare a a' -compareType (TypeVar _ a) (TypeVar _ a') = compare a a' +compareType (TypeVar _ a k) (TypeVar _ a' k') = compare a a' <> compareType k k' -- is that right? compareType (TypeLevelString _ a) (TypeLevelString _ a') = compare a a' compareType (TypeLevelInt _ a) (TypeLevelInt _ a') = compare a a' compareType (TypeWildcard _ a) (TypeWildcard _ a') = compare a a' @@ -826,9 +811,9 @@ compareType (TypeConstructor _ a) (TypeConstructor _ a') = compare a a' compareType (TypeOp _ a) (TypeOp _ a') = compare a a' compareType (TypeApp _ a b) (TypeApp _ a' b') = compareType a a' <> compareType b b' compareType (KindApp _ a b) (KindApp _ a' b') = compareType a a' <> compareType b b' -compareType (ForAll _ _ a b c d) (ForAll _ _ a' b' c' d') = compare a a' <> compareMaybeType b b' <> compareType c c' <> compare d d' +compareType (ForAll _ _ a b c d) (ForAll _ _ a' b' c' d') = compare a a' <> compareType b b' <> compareType c c' <> compare d d' compareType (ConstrainedType _ a b) (ConstrainedType _ a' b') = compareConstraint a a' <> compareType b b' -compareType (Skolem _ a b c d) (Skolem _ a' b' c' d') = compare a a' <> compareMaybeType b b' <> compare c c' <> compare d d' +compareType (Skolem _ a b c d) (Skolem _ a' b' c' d') = compare a a' <> compareType b b' <> compare c c' <> compare d d' compareType (REmpty _) (REmpty _) = EQ compareType (RCons _ a b c) (RCons _ a' b' c') = compare a a' <> compareType b b' <> compareType c c' compareType (KindedType _ a b) (KindedType _ a' b') = compareType a a' <> compareType b b' diff --git a/tests/TestAst.hs b/tests/TestAst.hs index bb2e88044..c36491366 100644 --- a/tests/TestAst.hs +++ b/tests/TestAst.hs @@ -80,7 +80,7 @@ genTypeAnnotatedWith genTypeAnn genConstraintAnn = genType where genSkolemScope = SkolemScope <$> arbitrary genType :: Gen (Type a) - genType = genericArbitraryRecG (genTypeAnn :+ generatorEnvironment) uniform `withBaseCase` (TypeVar <$> genTypeAnn <*> genText) + genType = genericArbitraryRecG (genTypeAnn :+ generatorEnvironment) uniform `withBaseCase` (TypeVar <$> genTypeAnn <*> genText <*> genType) -- FIXME: generate "real" kinds genWildcardData :: Gen WildcardData genWildcardData = genericArbitraryUG genText diff --git a/tests/TestDocs.hs b/tests/TestDocs.hs index d2b805ff0..0882610f6 100644 --- a/tests/TestDocs.hs +++ b/tests/TestDocs.hs @@ -945,7 +945,7 @@ testCases = hasTypeVar varName = getAny . P.everythingOnTypes (<>) (Any . isVar varName) - isVar varName (P.TypeVar _ name) | varName == T.unpack name = True + isVar varName (P.TypeVar _ name _) | varName == T.unpack name = True isVar _ _ = False renderedType expected ty = diff --git a/tests/purus/passing/4035/Other.purs b/tests/purus/passing/4035/Other.purs index 055b3c783..2cf1990c5 100644 --- a/tests/purus/passing/4035/Other.purs +++ b/tests/purus/passing/4035/Other.purs @@ -1,4 +1,4 @@ module Other where -type Id :: forall k. k -> k -type Id a = a +type Id :: forall (k :: Type). (k :: Type) -> (k :: Type) +type Id a = (a :: Type) diff --git a/tests/purus/passing/4035/output/Other/externs.cbor b/tests/purus/passing/4035/output/Other/externs.cbor deleted file mode 100644 index d0912d785..000000000 Binary files a/tests/purus/passing/4035/output/Other/externs.cbor and /dev/null differ diff --git a/tests/purus/passing/4035/output/Other/index.cfn b/tests/purus/passing/4035/output/Other/index.cfn deleted file mode 100644 index 2eff1f313..000000000 --- a/tests/purus/passing/4035/output/Other/index.cfn +++ /dev/null @@ -1 +0,0 @@ -{"builtWith":"0.0.1","comments":[],"dataTypes":{},"decls":[],"exports":[],"foreign":[],"imports":[{"annotation":{"meta":null,"sourceSpan":{"end":[4,14],"start":[1,1]}},"moduleName":["Builtin"]},{"annotation":{"meta":null,"sourceSpan":{"end":[4,14],"start":[1,1]}},"moduleName":["Prim"]}],"moduleName":["Other"],"modulePath":"tests/purus/passing/4035/Other.purs","reExports":{},"sourceSpan":{"end":[4,14],"start":[1,1]}} \ No newline at end of file diff --git a/tests/purus/passing/4035/output/Other/index.cfn.pretty b/tests/purus/passing/4035/output/Other/index.cfn.pretty deleted file mode 100644 index 86bd3cdf3..000000000 --- a/tests/purus/passing/4035/output/Other/index.cfn.pretty +++ /dev/null @@ -1,11 +0,0 @@ -Other (tests/purus/passing/4035/Other.purs) -Imported Modules: - Builtin, - Prim -Exports: - -Re-Exports: - -Foreign: - -Declarations: