packages feed

rzk 0.4.1.1 → 0.5

raw patch · 14 files changed

+2478/−1887 lines, 14 filesdep +aesondep +bytestringdep +text

Dependencies added: aeson, bytestring, text

Files

ChangeLog.md view
@@ -6,6 +6,14 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v0.5 — 2022-06-20++This version contains the following changes:++- `Unit` type (with `unit` value) (see [ede02611]( https://github.com/fizruk/rzk/commit/ede02611 ) and [bf9d6cd9]( https://github.com/fizruk/rzk/commit/bf9d6cd9 );+- Add basic tokenizer support via `rzk tokenize` (see [#53]( https://github.com/fizruk/rzk/pull/53 ));+- Add location information for shadowing warnings and duplicate definition errors (see [bf9d6cd9]( https://github.com/fizruk/rzk/commit/bf9d6cd9 )).+ ## v0.4.1 — 2022-06-16  This is version contains minor changes, primarily in tools around rzk:
rzk.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           rzk-version:        0.4.1.1+version:        0.5 synopsis:       An experimental proof assistant for synthetic ∞-categories description:    Please see the README on GitHub at <https://github.com/fizruk/rzk#readme> category:       Dependent Types@@ -36,6 +36,8 @@       Language.Rzk.Syntax.Lex       Language.Rzk.Syntax.Par       Language.Rzk.Syntax.Print+      Language.Rzk.VSCode.Tokenize+      Language.Rzk.VSCode.Tokens       Rzk       Rzk.Main       Rzk.TypeCheck@@ -45,12 +47,15 @@       src   ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints   build-depends:-      array+      aeson+    , array     , base >=4.7 && <5     , bifunctors+    , bytestring     , mtl     , optparse-generic     , template-haskell+    , text   default-language: Haskell2010  executable rzk@@ -61,13 +66,16 @@       app   ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N   build-depends:-      array+      aeson+    , array     , base >=4.7 && <5     , bifunctors+    , bytestring     , mtl     , optparse-generic     , rzk     , template-haskell+    , text   default-language: Haskell2010  test-suite rzk-test@@ -79,11 +87,14 @@       test   ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N   build-depends:-      array+      aeson+    , array     , base >=4.7 && <5     , bifunctors+    , bytestring     , mtl     , optparse-generic     , rzk     , template-haskell+    , text   default-language: Haskell2010
src/Language/Rzk/Free/Syntax.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE DeriveTraversable    #-} {-# LANGUAGE FlexibleInstances    #-} {-# LANGUAGE LambdaCase           #-}+{-# LANGUAGE OverloadedStrings    #-} {-# LANGUAGE PatternSynonyms      #-} {-# LANGUAGE RecordWildCards      #-} {-# LANGUAGE TemplateHaskell      #-}@@ -13,7 +14,10 @@ import           Data.Bifunctor.TH import           Data.Char           (chr, ord) import           Data.Coerce-import           Data.List           (nub, (\\))+import           Data.Function       (on)+import           Data.Functor        (void)+import           Data.List           (intercalate, nub, (\\))+import           Data.Maybe          (fromMaybe) import           Data.String  import           Free.Scoped@@ -21,6 +25,37 @@  import qualified Language.Rzk.Syntax as Rzk +data RzkPosition = RzkPosition+  { rzkFilePath :: Maybe FilePath+  , rzkLineCol  :: Rzk.BNFC'Position+  }++ppRzkPosition :: RzkPosition -> String+ppRzkPosition RzkPosition{..} = intercalate ":" $ concat+  [ [fromMaybe "<stdin>" rzkFilePath]+  , foldMap (\(row, col) -> map show [row, col]) rzkLineCol]++newtype VarIdent = VarIdent { getVarIdent :: Rzk.VarIdent' RzkPosition }++instance Eq VarIdent where+  (==) = (==) `on` (void . getVarIdent)++instance IsString VarIdent where+  fromString s = VarIdent (Rzk.VarIdent (RzkPosition Nothing Nothing) (fromString s))++ppVarIdentWithLocation :: VarIdent -> String+ppVarIdentWithLocation (VarIdent var@(Rzk.VarIdent pos _ident)) =+  Rzk.printTree var <> " (" <> ppRzkPosition pos <> ")"++varIdent :: Rzk.VarIdent -> VarIdent+varIdent = varIdentAt Nothing++varIdentAt :: Maybe FilePath -> Rzk.VarIdent -> VarIdent+varIdentAt path (Rzk.VarIdent pos ident) = VarIdent (Rzk.VarIdent (RzkPosition path pos) ident)++fromVarIdent :: VarIdent -> Rzk.VarIdent+fromVarIdent (VarIdent (Rzk.VarIdent (RzkPosition _file pos) ident)) = Rzk.VarIdent pos ident+ data TermF scope term     = UniverseF     | UniverseCubeF@@ -39,16 +74,18 @@     | TopeOrF term term     | RecBottomF     | RecOrF [(term, term)]-    | TypeFunF (Maybe Rzk.VarIdent) term (Maybe scope) scope-    | TypeSigmaF (Maybe Rzk.VarIdent) term scope+    | TypeFunF (Maybe VarIdent) term (Maybe scope) scope+    | TypeSigmaF (Maybe VarIdent) term scope     | TypeIdF term (Maybe term) term     | AppF term term-    | LambdaF (Maybe Rzk.VarIdent) (Maybe (term, Maybe scope)) scope+    | LambdaF (Maybe VarIdent) (Maybe (term, Maybe scope)) scope     | PairF term term     | FirstF term     | SecondF term     | ReflF (Maybe (term, Maybe term))     | IdJF term term term term term term+    | UnitF+    | TypeUnitF     | TypeAscF term term     | TypeRestrictedF term [(term, term)]     deriving (Eq)@@ -88,8 +125,8 @@ substituteT :: TermT var -> Scope TermT var -> TermT var substituteT x = substitute x . invalidateWHNF -type Term' = Term Rzk.VarIdent-type TermT' = TermT Rzk.VarIdent+type Term' = Term VarIdent+type TermT' = TermT VarIdent  freeVars :: Term a -> [a] freeVars = foldMap pure@@ -117,24 +154,25 @@ toTerm' :: Rzk.Term -> Term' toTerm' = toTerm Pure -toScope :: Rzk.VarIdent -> (Rzk.VarIdent -> Term a) -> Rzk.Term -> Scope Term a+toScope :: VarIdent -> (VarIdent -> Term a) -> Rzk.Term -> Scope Term a toScope x bvars = toTerm $ \z -> if x == z then Pure Z else S <$> bvars z -toScopePattern :: Rzk.Pattern -> (Rzk.VarIdent -> Term a) -> Rzk.Term -> Scope Term a+toScopePattern :: Rzk.Pattern -> (VarIdent -> Term a) -> Rzk.Term -> Scope Term a toScopePattern pat bvars = toTerm $ \z ->   case lookup z (bindings pat (Pure Z)) of     Just t  -> t     Nothing -> S <$> bvars z   where-    bindings (Rzk.PatternWildcard _loc)   _ = []-    bindings (Rzk.PatternVar _loc x)    t = [(x, t)]+    bindings (Rzk.PatternWildcard _loc) _ = []+    bindings (Rzk.PatternUnit _loc)     _ = []+    bindings (Rzk.PatternVar _loc x)    t = [(varIdent x, t)]     bindings (Rzk.PatternPair _loc l r) t = bindings l (First t) <> bindings r (Second t) -toTerm :: (Rzk.VarIdent -> Term a) -> Rzk.Term -> Term a+toTerm :: (VarIdent -> Term a) -> Rzk.Term -> Term a toTerm bvars = go   where     go = \case-      Rzk.Var _loc x -> bvars x+      Rzk.Var _loc x -> bvars (varIdent x)       Rzk.Universe _loc -> Universe        Rzk.UniverseCube _loc -> UniverseCube@@ -155,6 +193,8 @@       Rzk.RecOr _loc rs -> RecOr [ (go tope, go term) | Rzk.Restriction _loc tope term <- rs ]       Rzk.TypeId _loc x tA y -> TypeId (go x) (Just (go tA)) (go y)       Rzk.TypeIdSimple _loc x y -> TypeId (go x) Nothing (go y)+      Rzk.TypeUnit _loc -> TypeUnit+      Rzk.Unit _loc -> Unit       Rzk.App _loc f x -> App (go f) (go x)       Rzk.Pair _loc l r -> Pair (go l) (go r)       Rzk.First _loc term -> First (go term)@@ -195,20 +235,20 @@       Rzk.Hole _loc _ident -> error "holes are not supported"  -    patternVar (Rzk.PatternVar _loc x) = Just x+    patternVar (Rzk.PatternVar _loc x) = Just (varIdent x)     patternVar _                       = Nothing  fromTerm' :: Term' -> Rzk.Term fromTerm' t = fromTermWith' vars (defaultVarIdents \\ vars) t   where vars = freeVars t -fromScope' :: Rzk.VarIdent -> [Rzk.VarIdent] -> [Rzk.VarIdent] -> Scope Term Rzk.VarIdent -> Rzk.Term+fromScope' :: VarIdent -> [VarIdent] -> [VarIdent] -> Scope Term VarIdent -> Rzk.Term fromScope' x used xs = fromTermWith' (x : used) xs . (>>= f)   where     f Z     = Pure x     f (S z) = Pure z -fromTermWith' :: [Rzk.VarIdent] -> [Rzk.VarIdent] -> Term' -> Rzk.Term+fromTermWith' :: [VarIdent] -> [VarIdent] -> Term' -> Rzk.Term fromTermWith' used vars = go   where     withFresh Nothing f =@@ -220,8 +260,10 @@         z' = refreshVar used z      loc = Nothing++    go :: Term' -> Rzk.Term     go = \case-      Pure z -> Rzk.Var loc z+      Pure z -> Rzk.Var loc (fromVarIdent z)        Universe -> Rzk.Universe loc       UniverseCube -> Rzk.UniverseCube loc@@ -242,27 +284,29 @@       RecOr rs -> Rzk.RecOr loc [ Rzk.Restriction loc (go tope) (go term) | (tope, term) <- rs ]        TypeFun z arg Nothing ret -> withFresh z $ \(x, xs) ->-        Rzk.TypeFun loc (Rzk.ParamVarType loc (Rzk.PatternVar loc x) (go arg)) (fromScope' x used xs ret)+        Rzk.TypeFun loc (Rzk.ParamVarType loc (Rzk.PatternVar loc (fromVarIdent x)) (go arg)) (fromScope' x used xs ret)       TypeFun z arg (Just tope) ret -> withFresh z $ \(x, xs) ->-        Rzk.TypeFun loc (Rzk.ParamVarShape loc (Rzk.PatternVar loc x) (go arg) (fromScope' x used xs tope)) (fromScope' x used xs ret)+        Rzk.TypeFun loc (Rzk.ParamVarShape loc (Rzk.PatternVar loc (fromVarIdent x)) (go arg) (fromScope' x used xs tope)) (fromScope' x used xs ret)        TypeSigma z a b -> withFresh z $ \(x, xs) ->-        Rzk.TypeSigma loc (Rzk.PatternVar loc x) (go a) (fromScope' x used xs b)+        Rzk.TypeSigma loc (Rzk.PatternVar loc (fromVarIdent x)) (go a) (fromScope' x used xs b)       TypeId l (Just tA) r -> Rzk.TypeId loc (go l) (go tA) (go r)       TypeId l Nothing r -> Rzk.TypeIdSimple loc (go l) (go r)       App l r -> Rzk.App loc (go l) (go r)        Lambda z Nothing scope -> withFresh z $ \(x, xs) ->-        Rzk.Lambda loc [Rzk.ParamPattern loc (Rzk.PatternVar loc x)] (fromScope' x used xs scope)+        Rzk.Lambda loc [Rzk.ParamPattern loc (Rzk.PatternVar loc (fromVarIdent x))] (fromScope' x used xs scope)       Lambda z (Just (ty, Nothing)) scope -> withFresh z $ \(x, xs) ->-        Rzk.Lambda loc [Rzk.ParamPatternType loc [Rzk.PatternVar loc x] (go ty)] (fromScope' x used xs scope)+        Rzk.Lambda loc [Rzk.ParamPatternType loc [Rzk.PatternVar loc (fromVarIdent x)] (go ty)] (fromScope' x used xs scope)       Lambda z (Just (cube, Just tope)) scope -> withFresh z $ \(x, xs) ->-        Rzk.Lambda loc [Rzk.ParamPatternShape loc (Rzk.PatternVar loc x) (go cube) (fromScope' x used xs tope)] (fromScope' x used xs scope)+        Rzk.Lambda loc [Rzk.ParamPatternShape loc (Rzk.PatternVar loc (fromVarIdent x)) (go cube) (fromScope' x used xs tope)] (fromScope' x used xs scope)       -- Lambda (Maybe (term, Maybe scope)) scope -> Rzk.Lambda loc (Maybe (term, Maybe scope)) scope        Pair l r -> Rzk.Pair loc (go l) (go r)       First term -> Rzk.First loc (go term)       Second term -> Rzk.Second loc (go term)+      TypeUnit -> Rzk.TypeUnit loc+      Unit -> Rzk.Unit loc       Refl Nothing -> Rzk.Refl loc       Refl (Just (t, Nothing)) -> Rzk.ReflTerm loc (go t)       Refl (Just (t, Just ty)) -> Rzk.ReflTermType loc (go t) (go ty)@@ -271,8 +315,11 @@       TypeRestricted ty rs ->         Rzk.TypeRestricted loc (go ty) (map (\(tope, term) -> (Rzk.Restriction loc (go tope) (go term))) rs) -defaultVarIdents :: [Rzk.VarIdent]-defaultVarIdents = coerce [ "x" <> map digitToSub (show n) | n <- [1..] ]+defaultVarIdents :: [VarIdent]+defaultVarIdents =+  [ fromString name+  | n <- [1..]+  , let name = "x" <> map digitToSub (show n) ]   where     digitToSub c = chr ((ord c - ord '0') + ord '₀') @@ -281,10 +328,14 @@ -- -- >>> refreshVar ["x", "y", "x₁", "z"] "x" -- x₂-refreshVar :: [Rzk.VarIdent] -> Rzk.VarIdent -> Rzk.VarIdent+refreshVar :: [VarIdent] -> VarIdent -> VarIdent refreshVar vars x-  | x `elem` vars = refreshVar vars (coerce incIndex x)+  | x `elem` vars = refreshVar vars (incVarIdentIndex x)   | otherwise     = x++incVarIdentIndex :: VarIdent -> VarIdent+incVarIdentIndex (VarIdent (Rzk.VarIdent loc token)) =+  VarIdent (Rzk.VarIdent loc (coerce incIndex token))  -- | Increment the subscript number at the end of the indentifier. --
src/Language/Rzk/Syntax/Abs.hs view
@@ -27,6 +27,14 @@ data Module' a = Module a (LanguageDecl' a) [Command' a]   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) +type HoleIdent = HoleIdent' BNFC'Position+data HoleIdent' a = HoleIdent a HoleIdentToken+  deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic)++type VarIdent = VarIdent' BNFC'Position+data VarIdent' a = VarIdent a VarIdentToken+  deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic)+ type LanguageDecl = LanguageDecl' BNFC'Position data LanguageDecl' a = LanguageDecl a (Language' a)   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic)@@ -43,24 +51,26 @@     | CommandCompute a (Term' a)     | CommandComputeWHNF a (Term' a)     | CommandComputeNF a (Term' a)-    | CommandPostulate a VarIdent (DeclUsedVars' a) [Param' a] (Term' a)-    | CommandAssume a [VarIdent] (Term' a)+    | CommandPostulate a (VarIdent' a) (DeclUsedVars' a) [Param' a] (Term' a)+    | CommandAssume a [VarIdent' a] (Term' a)     | CommandSection a (SectionName' a) [Command' a] (SectionName' a)-    | CommandDefine a VarIdent (DeclUsedVars' a) [Param' a] (Term' a) (Term' a)+    | CommandDefine a (VarIdent' a) (DeclUsedVars' a) [Param' a] (Term' a) (Term' a)   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic)  type DeclUsedVars = DeclUsedVars' BNFC'Position-data DeclUsedVars' a = DeclUsedVars a [VarIdent]+data DeclUsedVars' a = DeclUsedVars a [VarIdent' a]   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic)  type SectionName = SectionName' BNFC'Position-data SectionName' a = NoSectionName a | SomeSectionName a VarIdent+data SectionName' a+    = NoSectionName a | SomeSectionName a (VarIdent' a)   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic)  type Pattern = Pattern' BNFC'Position data Pattern' a     = PatternWildcard a-    | PatternVar a VarIdent+    | PatternUnit a+    | PatternVar a (VarIdent' a)     | PatternPair a (Pattern' a) (Pattern' a)   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) @@ -104,6 +114,7 @@     | RecOr a [Restriction' a]     | TypeFun a (ParamDecl' a) (Term' a)     | TypeSigma a (Pattern' a) (Term' a) (Term' a)+    | TypeUnit a     | TypeId a (Term' a) (Term' a) (Term' a)     | TypeIdSimple a (Term' a) (Term' a)     | TypeRestricted a (Term' a) [Restriction' a]@@ -112,37 +123,38 @@     | Pair a (Term' a) (Term' a)     | First a (Term' a)     | Second a (Term' a)+    | Unit a     | Refl a     | ReflTerm a (Term' a)     | ReflTermType a (Term' a) (Term' a)     | IdJ a (Term' a) (Term' a) (Term' a) (Term' a) (Term' a) (Term' a)-    | Hole a HoleIdent-    | Var a VarIdent+    | Hole a (HoleIdent' a)+    | Var a (VarIdent' a)     | TypeAsc a (Term' a) (Term' a)   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) -commandPostulateNoParams :: a -> VarIdent -> DeclUsedVars' a -> Term' a -> Command' a+commandPostulateNoParams :: a -> VarIdent' a -> DeclUsedVars' a -> Term' a -> Command' a commandPostulateNoParams = \ _a x vars ty -> CommandPostulate _a x vars [] ty -commandVariable :: a -> VarIdent -> Term' a -> Command' a+commandVariable :: a -> VarIdent' a -> Term' a -> Command' a commandVariable = \ _a name term -> CommandAssume _a [name] term -commandVariables :: a -> [VarIdent] -> Term' a -> Command' a+commandVariables :: a -> [VarIdent' a] -> Term' a -> Command' a commandVariables = \ _a names term -> CommandAssume _a names term -commandDefineNoParams :: a -> VarIdent -> DeclUsedVars' a -> Term' a -> Term' a -> Command' a+commandDefineNoParams :: a -> VarIdent' a -> DeclUsedVars' a -> Term' a -> Term' a -> Command' a commandDefineNoParams = \ _a x vars ty term -> CommandDefine _a x vars [] ty term -commandDef :: a -> VarIdent -> DeclUsedVars' a -> [Param' a] -> Term' a -> Term' a -> Command' a+commandDef :: a -> VarIdent' a -> DeclUsedVars' a -> [Param' a] -> Term' a -> Term' a -> Command' a commandDef = \ _a x vars params ty term -> CommandDefine _a x vars params ty term -commandDefNoParams :: a -> VarIdent -> DeclUsedVars' a -> Term' a -> Term' a -> Command' a+commandDefNoParams :: a -> VarIdent' a -> DeclUsedVars' a -> Term' a -> Term' a -> Command' a commandDefNoParams = \ _a x vars ty term -> CommandDefine _a x vars [] ty term  noDeclUsedVars :: a -> DeclUsedVars' a noDeclUsedVars = \ _a -> DeclUsedVars _a [] -paramVarType :: a -> VarIdent -> Term' a -> ParamDecl' a+paramVarType :: a -> VarIdent' a -> Term' a -> ParamDecl' a paramVarType = \ _a var cube -> ParamVarType _a (PatternVar _a var) cube  paramVarShape :: a -> Pattern' a -> Term' a -> Term' a -> ParamDecl' a@@ -163,10 +175,10 @@ unicode_TypeSigmaAlt :: a -> Pattern' a -> Term' a -> Term' a -> Term' a unicode_TypeSigmaAlt = \ _a pat fst snd -> TypeSigma _a pat fst snd -newtype VarIdent = VarIdent String+newtype VarIdentToken = VarIdentToken String   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString) -newtype HoleIdent = HoleIdent String+newtype HoleIdentToken = HoleIdentToken String   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)  -- | Start position (line, column) of something.@@ -188,6 +200,14 @@   hasPosition = \case     Module p _ _ -> p +instance HasPosition HoleIdent where+  hasPosition = \case+    HoleIdent p _ -> p++instance HasPosition VarIdent where+  hasPosition = \case+    VarIdent p _ -> p+ instance HasPosition LanguageDecl where   hasPosition = \case     LanguageDecl p _ -> p@@ -221,6 +241,7 @@ instance HasPosition Pattern where   hasPosition = \case     PatternWildcard p -> p+    PatternUnit p -> p     PatternVar p _ -> p     PatternPair p _ _ -> p @@ -262,6 +283,7 @@     RecOr p _ -> p     TypeFun p _ _ -> p     TypeSigma p _ _ _ -> p+    TypeUnit p -> p     TypeId p _ _ _ -> p     TypeIdSimple p _ _ -> p     TypeRestricted p _ _ -> p@@ -270,6 +292,7 @@     Pair p _ _ -> p     First p _ -> p     Second p _ -> p+    Unit p -> p     Refl p -> p     ReflTerm p _ -> p     ReflTermType p _ _ -> p
src/Language/Rzk/Syntax/Layout.hs view
@@ -42,11 +42,11 @@ parenOpen, parenClose :: [TokSymbol] parenOpen  =   [ TokSymbol "(" 16-  , TokSymbol "[" 42+  , TokSymbol "[" 43   ] parenClose =   [ TokSymbol ")" 17-  , TokSymbol "]" 45+  , TokSymbol "]" 46   ]  -- | Report an error during layout resolution.
src/Language/Rzk/Syntax/Lex.hs view
@@ -229,8 +229,8 @@   | TV !String                    -- ^ Identifier.   | TD !String                    -- ^ Float literal.   | TC !String                    -- ^ Character literal.-  | T_VarIdent !String-  | T_HoleIdent !String+  | T_VarIdentToken !String+  | T_HoleIdentToken !String   deriving (Eq, Show, Ord)  -- | Smart constructor for 'Tok' for the sake of backwards compatibility.@@ -293,8 +293,8 @@   PT _ (TD s)   -> s   PT _ (TC s)   -> s   Err _         -> "#error"-  PT _ (T_VarIdent s) -> s-  PT _ (T_HoleIdent s) -> s+  PT _ (T_VarIdentToken s) -> s+  PT _ (T_HoleIdentToken s) -> s  -- | Convert a token to a string. prToken :: Token -> String@@ -321,38 +321,38 @@ -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords =-  b "=" 32-    (b "(" 16-       (b "#end" 8-          (b "#compute-nf" 4-             (b "#check" 2 (b "#assume" 1 N N) (b "#compute" 3 N N))-             (b "#def" 6 (b "#compute-whnf" 5 N N) (b "#define" 7 N N)))-          (b "#set-option" 12-             (b "#postulate" 10 (b "#lang" 9 N N) (b "#section" 11 N N))-             (b "#variable" 14-                (b "#unset-option" 13 N N) (b "#variables" 15 N N))))-       (b "1" 24-          (b "," 20-             (b "*" 18 (b ")" 17 N N) (b "*_1" 19 N N))-             (b "/\\" 22 (b "->" 21 N N) (b "0_2" 23 N N)))-          (b ":=" 28-             (b "2" 26 (b "1_2" 25 N N) (b ":" 27 N N))-             (b "<" 30 (b ";" 29 N N) (b "<=" 31 N N)))))-    (b "first" 48-       (b "TOPE" 40-          (b "BOT" 36-             (b "=_{" 34 (b "===" 33 N N) (b ">" 35 N N))-             (b "Sigma" 38 (b "CUBE" 37 N N) (b "TOP" 39 N N)))-          (b "\\/" 44-             (b "[" 42 (b "U" 41 N N) (b "\\" 43 N N))-             (b "_" 46 (b "]" 45 N N) (b "as" 47 N N))))-       (b "uses" 56-          (b "refl" 52-             (b "recBOT" 50 (b "idJ" 49 N N) (b "recOR" 51 N N))-             (b "rzk-1" 54 (b "refl_{" 53 N N) (b "second" 55 N N)))-          (b "}" 60-             (b "|" 58 (b "{" 57 N N) (b "|->" 59 N N))-             (b "\8594" 62 (b "\931" 61 N N) (b "\8721" 63 N N)))))+  b "===" 33+    (b ")" 17+       (b "#lang" 9+          (b "#compute-whnf" 5+             (b "#compute" 3+                (b "#check" 2 (b "#assume" 1 N N) N) (b "#compute-nf" 4 N N))+             (b "#define" 7 (b "#def" 6 N N) (b "#end" 8 N N)))+          (b "#unset-option" 13+             (b "#section" 11 (b "#postulate" 10 N N) (b "#set-option" 12 N N))+             (b "#variables" 15 (b "#variable" 14 N N) (b "(" 16 N N))))+       (b "1_2" 25+          (b "->" 21+             (b "*_1" 19 (b "*" 18 N N) (b "," 20 N N))+             (b "0_2" 23 (b "/\\" 22 N N) (b "1" 24 N N)))+          (b ";" 29+             (b ":" 27 (b "2" 26 N N) (b ":=" 28 N N))+             (b "<=" 31 (b "<" 30 N N) (b "=" 32 N N)))))+    (b "idJ" 50+       (b "Unit" 42+          (b "Sigma" 38+             (b "BOT" 36 (b ">" 35 (b "=_{" 34 N N) N) (b "CUBE" 37 N N))+             (b "TOPE" 40 (b "TOP" 39 N N) (b "U" 41 N N)))+          (b "]" 46+             (b "\\" 44 (b "[" 43 N N) (b "\\/" 45 N N))+             (b "as" 48 (b "_" 47 N N) (b "first" 49 N N))))+       (b "uses" 58+          (b "refl_{" 54+             (b "recOR" 52 (b "recBOT" 51 N N) (b "refl" 53 N N))+             (b "second" 56 (b "rzk-1" 55 N N) (b "unit" 57 N N)))+          (b "}" 62+             (b "|" 60 (b "{" 59 N N) (b "|->" 61 N N))+             (b "\8594" 64 (b "\931" 63 N N) (b "\8721" 65 N N)))))   where   b s n = B bs (TS bs n)     where@@ -440,8 +440,8 @@                         , 0x80 + oc Data.Bits..&. 0x3f                         ] alex_action_3 = tok (eitherResIdent TV)-alex_action_4 = tok (eitherResIdent T_VarIdent)-alex_action_5 = tok (eitherResIdent T_HoleIdent)+alex_action_4 = tok (eitherResIdent T_VarIdentToken)+alex_action_5 = tok (eitherResIdent T_HoleIdentToken) alex_action_6 = tok (eitherResIdent TV) alex_action_7 = tok (TL . unescapeInitTail) 
src/Language/Rzk/Syntax/Lex.x view
@@ -45,13 +45,13 @@ @rsyms     { tok (eitherResIdent TV) } --- token VarIdent+-- token VarIdentToken [$u # [\t \n \r \  \! \" \# \( \) \, \- \. \; \< \> \? \[ \\ \] \{ \| \}]] [$u # [\t \n \r \  \" \# \( \) \, \; \< \> \[ \\ \] \{ \| \}]] *-    { tok (eitherResIdent T_VarIdent) }+    { tok (eitherResIdent T_VarIdentToken) } --- token HoleIdent+-- token HoleIdentToken \?-    { tok (eitherResIdent T_HoleIdent) }+    { tok (eitherResIdent T_HoleIdentToken) }  -- Keywords and Ident $l $i*@@ -74,8 +74,8 @@   | TV !String                    -- ^ Identifier.   | TD !String                    -- ^ Float literal.   | TC !String                    -- ^ Character literal.-  | T_VarIdent !String-  | T_HoleIdent !String+  | T_VarIdentToken !String+  | T_HoleIdentToken !String   deriving (Eq, Show, Ord)  -- | Smart constructor for 'Tok' for the sake of backwards compatibility.@@ -138,8 +138,8 @@   PT _ (TD s)   -> s   PT _ (TC s)   -> s   Err _         -> "#error"-  PT _ (T_VarIdent s) -> s-  PT _ (T_HoleIdent s) -> s+  PT _ (T_VarIdentToken s) -> s+  PT _ (T_HoleIdentToken s) -> s  -- | Convert a token to a string. prToken :: Token -> String@@ -166,38 +166,38 @@ -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords =-  b "=" 32-    (b "(" 16-       (b "#end" 8-          (b "#compute-nf" 4-             (b "#check" 2 (b "#assume" 1 N N) (b "#compute" 3 N N))-             (b "#def" 6 (b "#compute-whnf" 5 N N) (b "#define" 7 N N)))-          (b "#set-option" 12-             (b "#postulate" 10 (b "#lang" 9 N N) (b "#section" 11 N N))-             (b "#variable" 14-                (b "#unset-option" 13 N N) (b "#variables" 15 N N))))-       (b "1" 24-          (b "," 20-             (b "*" 18 (b ")" 17 N N) (b "*_1" 19 N N))-             (b "/\\" 22 (b "->" 21 N N) (b "0_2" 23 N N)))-          (b ":=" 28-             (b "2" 26 (b "1_2" 25 N N) (b ":" 27 N N))-             (b "<" 30 (b ";" 29 N N) (b "<=" 31 N N)))))-    (b "first" 48-       (b "TOPE" 40-          (b "BOT" 36-             (b "=_{" 34 (b "===" 33 N N) (b ">" 35 N N))-             (b "Sigma" 38 (b "CUBE" 37 N N) (b "TOP" 39 N N)))-          (b "\\/" 44-             (b "[" 42 (b "U" 41 N N) (b "\\" 43 N N))-             (b "_" 46 (b "]" 45 N N) (b "as" 47 N N))))-       (b "uses" 56-          (b "refl" 52-             (b "recBOT" 50 (b "idJ" 49 N N) (b "recOR" 51 N N))-             (b "rzk-1" 54 (b "refl_{" 53 N N) (b "second" 55 N N)))-          (b "}" 60-             (b "|" 58 (b "{" 57 N N) (b "|->" 59 N N))-             (b "\8594" 62 (b "\931" 61 N N) (b "\8721" 63 N N)))))+  b "===" 33+    (b ")" 17+       (b "#lang" 9+          (b "#compute-whnf" 5+             (b "#compute" 3+                (b "#check" 2 (b "#assume" 1 N N) N) (b "#compute-nf" 4 N N))+             (b "#define" 7 (b "#def" 6 N N) (b "#end" 8 N N)))+          (b "#unset-option" 13+             (b "#section" 11 (b "#postulate" 10 N N) (b "#set-option" 12 N N))+             (b "#variables" 15 (b "#variable" 14 N N) (b "(" 16 N N))))+       (b "1_2" 25+          (b "->" 21+             (b "*_1" 19 (b "*" 18 N N) (b "," 20 N N))+             (b "0_2" 23 (b "/\\" 22 N N) (b "1" 24 N N)))+          (b ";" 29+             (b ":" 27 (b "2" 26 N N) (b ":=" 28 N N))+             (b "<=" 31 (b "<" 30 N N) (b "=" 32 N N)))))+    (b "idJ" 50+       (b "Unit" 42+          (b "Sigma" 38+             (b "BOT" 36 (b ">" 35 (b "=_{" 34 N N) N) (b "CUBE" 37 N N))+             (b "TOPE" 40 (b "TOP" 39 N N) (b "U" 41 N N)))+          (b "]" 46+             (b "\\" 44 (b "[" 43 N N) (b "\\/" 45 N N))+             (b "as" 48 (b "_" 47 N N) (b "first" 49 N N))))+       (b "uses" 58+          (b "refl_{" 54+             (b "recOR" 52 (b "recBOT" 51 N N) (b "refl" 53 N N))+             (b "second" 56 (b "rzk-1" 55 N N) (b "unit" 57 N N)))+          (b "}" 62+             (b "|" 60 (b "{" 59 N N) (b "|->" 61 N N))+             (b "\8594" 64 (b "\931" 63 N N) (b "\8721" 65 N N)))))   where   b s n = B bs (TS bs n)     where
src/Language/Rzk/Syntax/Par.hs view
@@ -10,1600 +10,1670 @@   ( happyError   , myLexer   , pModule-  , pListVarIdent-  , pLanguageDecl-  , pLanguage-  , pCommand-  , pListCommand-  , pDeclUsedVars-  , pSectionName-  , pPattern-  , pListPattern-  , pParam-  , pListParam-  , pParamDecl-  , pRestriction-  , pListRestriction-  , pTerm7-  , pTerm5-  , pTerm4-  , pTerm3-  , pTerm2-  , pTerm1-  , pTerm6-  , pTerm-  , pListTerm-  ) where--import Prelude--import qualified Language.Rzk.Syntax.Abs-import Language.Rzk.Syntax.Lex-import qualified Data.Array as Happy_Data_Array-import qualified Data.Bits as Bits-import qualified GHC.Exts as Happy_GHC_Exts-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.20.1.1--newtype HappyAbsSyn  = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-newtype HappyWrap27 = HappyWrap27 ((Language.Rzk.Syntax.Abs.BNFC'Position, String))-happyIn27 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -> (HappyAbsSyn )-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap27 x)-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> HappyWrap27-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut27 #-}-newtype HappyWrap28 = HappyWrap28 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent))-happyIn28 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -> (HappyAbsSyn )-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap28 x)-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn ) -> HappyWrap28-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut28 #-}-newtype HappyWrap29 = HappyWrap29 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent))-happyIn29 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -> (HappyAbsSyn )-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap29 x)-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> HappyWrap29-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut29 #-}-newtype HappyWrap30 = HappyWrap30 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module))-happyIn30 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (HappyAbsSyn )-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap30 x)-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> HappyWrap30-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut30 #-}-newtype HappyWrap31 = HappyWrap31 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent]))-happyIn31 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) -> (HappyAbsSyn )-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap31 x)-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> HappyWrap31-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut31 #-}-newtype HappyWrap32 = HappyWrap32 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl))-happyIn32 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (HappyAbsSyn )-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap32 x)-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> HappyWrap32-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut32 #-}-newtype HappyWrap33 = HappyWrap33 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language))-happyIn33 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (HappyAbsSyn )-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap33 x)-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> HappyWrap33-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut33 #-}-newtype HappyWrap34 = HappyWrap34 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command))-happyIn34 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (HappyAbsSyn )-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap34 x)-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> HappyWrap34-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut34 #-}-newtype HappyWrap35 = HappyWrap35 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command]))-happyIn35 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (HappyAbsSyn )-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap35 x)-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> HappyWrap35-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut35 #-}-newtype HappyWrap36 = HappyWrap36 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars))-happyIn36 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) -> (HappyAbsSyn )-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap36 x)-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> HappyWrap36-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut36 #-}-newtype HappyWrap37 = HappyWrap37 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName))-happyIn37 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) -> (HappyAbsSyn )-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap37 x)-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> HappyWrap37-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut37 #-}-newtype HappyWrap38 = HappyWrap38 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern))-happyIn38 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn )-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap38 x)-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> HappyWrap38-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut38 #-}-newtype HappyWrap39 = HappyWrap39 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern]))-happyIn39 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn )-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap39 x)-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> HappyWrap39-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut39 #-}-newtype HappyWrap40 = HappyWrap40 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param))-happyIn40 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn )-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap40 x)-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> HappyWrap40-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut40 #-}-newtype HappyWrap41 = HappyWrap41 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param]))-happyIn41 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn )-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap41 x)-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> HappyWrap41-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut41 #-}-newtype HappyWrap42 = HappyWrap42 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl))-happyIn42 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn )-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap42 x)-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> HappyWrap42-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut42 #-}-newtype HappyWrap43 = HappyWrap43 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction))-happyIn43 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn )-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap43 x)-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> HappyWrap43-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut43 #-}-newtype HappyWrap44 = HappyWrap44 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction]))-happyIn44 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn )-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap44 x)-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> HappyWrap44-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut44 #-}-newtype HappyWrap45 = HappyWrap45 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn45 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap45 x)-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> HappyWrap45-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut45 #-}-newtype HappyWrap46 = HappyWrap46 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn46 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap46 x)-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> HappyWrap46-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut46 #-}-newtype HappyWrap47 = HappyWrap47 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn47 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap47 x)-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> HappyWrap47-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut47 #-}-newtype HappyWrap48 = HappyWrap48 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn48 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap48 x)-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> HappyWrap48-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut48 #-}-newtype HappyWrap49 = HappyWrap49 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn49 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap49 x)-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> HappyWrap49-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut49 #-}-newtype HappyWrap50 = HappyWrap50 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn50 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap50 x)-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> HappyWrap50-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut50 #-}-newtype HappyWrap51 = HappyWrap51 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn51 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap51 x)-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn ) -> HappyWrap51-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut51 #-}-newtype HappyWrap52 = HappyWrap52 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))-happyIn52 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x)-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> HappyWrap52-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut52 #-}-newtype HappyWrap53 = HappyWrap53 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term]))-happyIn53 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -> (HappyAbsSyn )-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap53 x)-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn ) -> HappyWrap53-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut53 #-}-happyInTok :: (Token) -> (HappyAbsSyn )-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (Token)-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyExpList :: HappyAddr-happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x2b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf4\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x2b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =-    token_strs_expected-  where token_strs = ["error","%dummy","%start_pModule_internal","%start_pListVarIdent_internal","%start_pLanguageDecl_internal","%start_pLanguage_internal","%start_pCommand_internal","%start_pListCommand_internal","%start_pDeclUsedVars_internal","%start_pSectionName_internal","%start_pPattern_internal","%start_pListPattern_internal","%start_pParam_internal","%start_pListParam_internal","%start_pParamDecl_internal","%start_pRestriction_internal","%start_pListRestriction_internal","%start_pTerm7_internal","%start_pTerm5_internal","%start_pTerm4_internal","%start_pTerm3_internal","%start_pTerm2_internal","%start_pTerm1_internal","%start_pTerm6_internal","%start_pTerm_internal","%start_pListTerm_internal","String","VarIdent","HoleIdent","Module","ListVarIdent","LanguageDecl","Language","Command","ListCommand","DeclUsedVars","SectionName","Pattern","ListPattern","Param","ListParam","ParamDecl","Restriction","ListRestriction","Term7","Term5","Term4","Term3","Term2","Term1","Term6","Term","ListTerm","'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'('","')'","'*'","'*_1'","','","'->'","'/\\\\'","'0_2'","'1'","'1_2'","'2'","':'","':='","';'","'<'","'<='","'='","'==='","'=_{'","'>'","'BOT'","'CUBE'","'Sigma'","'TOP'","'TOPE'","'U'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'uses'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdent","L_HoleIdent","%eof"]-        bit_start = st Prelude.* 120-        bit_end = (st Prelude.+ 1) Prelude.* 120-        read_bit = readArrayBit happyExpList-        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]-        bits_indexed = Prelude.zip bits [0..119]-        token_strs_expected = Prelude.concatMap f bits_indexed-        f (Prelude.False, _) = []-        f (Prelude.True, nr) = [token_strs Prelude.!! nr]--happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\xfa\xff\xd1\xff\x0a\x00\x60\x00\x26\x05\x26\x05\x6a\x00\x59\x00\x27\x00\x27\x00\x53\x00\x53\x00\x77\x00\x47\x00\x47\x00\x4b\x01\xff\x00\xff\x00\xff\x00\xff\x00\x47\x00\xff\x00\x47\x00\x47\x00\x66\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x52\x00\x97\x00\x9e\x00\x3b\x00\x00\x00\xa7\x00\xa0\x00\x8f\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x53\x00\x4b\x01\x01\x01\x00\x00\x0c\x01\x00\x00\x47\x00\x4b\x01\x34\x00\x12\x01\x15\x01\x00\x00\x00\x00\xbf\x00\xf1\xff\x47\x00\x31\x00\xbf\x00\xbf\x00\x25\x01\xbf\x00\xbf\x00\xf3\xff\xbf\x00\x30\x01\xf6\x00\x19\x01\x1c\x01\x1c\x01\x25\x01\x00\x00\x00\x00\x53\x00\x1c\x01\x57\x00\x00\x00\x57\x00\x1c\x01\x57\x00\x1c\x01\x57\x00\x1c\x01\x00\x00\x1c\x01\x1c\x01\x5a\x01\x58\x01\x44\x01\x7a\x01\x47\x00\x47\x00\x47\x00\x47\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5b\x01\x5b\x01\x7b\x01\x7b\x01\x74\x01\x74\x01\x00\x00\x74\x01\x83\x01\x7c\x01\x77\x01\x77\x01\x26\x05\x00\x00\x00\x00\xa1\x01\xa4\x01\xc0\x01\x00\x00\xbc\x01\xc1\x01\xa5\x01\xa5\x01\xa5\x01\x00\x00\x00\x00\x00\x00\xc4\x01\xc5\x01\x26\x05\xa0\x01\xce\x01\x00\x00\xc8\x01\x0c\x00\xcb\x01\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\xff\x00\xff\x00\x47\x00\x18\x00\x57\x00\x57\x00\xd9\x01\x57\x00\x00\x00\xec\xff\x47\x00\x47\x00\x00\x00\xea\x01\x57\x00\xeb\x01\xe6\x01\xe7\x01\x47\x00\x47\x00\xff\x00\xff\x00\xff\x00\xff\x00\x47\x00\x47\x00\x00\x00\x00\x00\xf1\x01\xf1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\xe9\x01\x47\x00\xf2\x01\xf4\x01\xf2\xff\x47\x00\x00\x00\x62\x00\x47\x00\xec\x01\xef\x01\x00\x00\x47\x00\xd0\x01\x00\x00\x25\x01\x00\x00\x00\x00\xe0\x01\x47\x00\x57\x00\x47\x00\x10\x02\x00\x00\x47\x00\x47\x00\x64\x00\x94\x00\x27\x01\x26\x05\xe4\x01\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x0c\x02\x47\x00\x20\x02\x47\x00\x23\x02\x47\x00\x00\x00\x00\x00\x00\x00\x06\x02\x44\x02\x47\x02\x00\x00\xff\x00\x49\x02\x47\x00\x47\x00\x0b\x01\x47\x00\x05\x02\x47\x00\x00\x00\x47\x00\x00\x00\x47\x00\x38\x02\x5e\x02\x61\x02\x00\x00\x00\x00\x00\x00\x63\x02\x75\x02\x78\x02\x00\x00\x7d\x02\x47\x00\x00\x00\x92\x02\x95\x02\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x59\x02\x47\x00\x73\x02\x47\x00\x00\x00\x47\x00\x67\x02\x00\x00\x00\x00\x8d\x02\x47\x00\xa1\x02\x47\x00\x84\x02\xae\x02\xaf\x02\x9b\x02\xa0\x02\x47\x00\x47\x00\xc8\x02\x47\x00\xc9\x02\xdd\x02\x47\x00\x00\x00\x47\x00\x47\x00\x00\x00\x00\x00\x47\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x47\x00\x47\x00\x00\x00\xe2\x02\xfa\x02\x00\x00\x00\x00\x47\x00\xe3\x02\x47\x00\xfd\x02\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x88\x00\x65\x00\x0c\x03\x0a\x03\x1e\x03\xd9\x00\x1f\x03\x0d\x00\x38\x00\x13\x00\x96\x00\xf2\x00\x39\x01\xe3\x01\x9b\x01\x0b\x00\xb1\x00\xdc\x00\x76\x01\xd0\x04\x6c\x04\x81\x00\xfc\x01\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x02\xd2\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x21\x02\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x1e\x01\x00\x00\xbc\x00\x00\x00\xb0\x00\x00\x00\x0f\x01\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x30\x02\x3b\x02\x4a\x02\x55\x02\x29\x03\x2a\x03\x3e\x03\x37\x00\x42\x03\x44\x03\x58\x03\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\xf5\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x03\x55\x03\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x01\x1d\x01\x00\x00\x00\x00\x00\x00\x0f\x01\x00\x00\x00\x00\x00\x00\xb4\x01\x64\x02\xbf\x01\xde\x04\xd9\x04\x6f\x02\x00\x00\x1f\x01\x6b\x01\x00\x00\x70\x01\x00\x00\x00\x00\xd8\x01\x7e\x02\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x8f\x01\x76\x04\xe8\x04\x00\x05\x0c\x05\x0e\x05\x85\x04\x8f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x98\x02\xa3\x02\x00\x00\x9e\x04\x00\x00\x00\x00\x00\x00\xb2\x02\x00\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\xcc\x02\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x00\x00\xd7\x02\xb7\x01\xe6\x02\x00\x00\x00\x00\xf1\x02\x00\x03\x45\x01\x60\x01\x78\x01\x98\x01\x5f\x03\x0b\x03\x1a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x03\x00\x00\x34\x03\x00\x00\x3f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x04\x00\x00\x4e\x03\x59\x03\x00\x00\x68\x03\x00\x00\x73\x03\x00\x00\x82\x03\x00\x00\x8d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x03\x00\x00\xb6\x03\x00\x00\xc1\x03\x00\x00\xd0\x03\x45\x00\x00\x00\x00\x00\x00\x00\xdb\x03\x00\x00\xea\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x03\x04\x04\x00\x00\xa8\x04\x00\x00\x00\x00\x0f\x04\x00\x00\xb7\x04\xc1\x04\x00\x00\x00\x00\x1e\x04\x00\x00\x29\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x04\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x04\x00\x00\x5d\x04\x00\x00\x00\x00\x00\x00"#--happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#-happyAdjustOffset off = off--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\xcc\xff\xcb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xa2\xff\xa3\xff\x00\x00\x8a\xff\x9c\xff\x9a\xff\x98\xff\x92\xff\x88\xff\x9f\xff\x87\xff\x00\x00\x00\x00\xb2\xff\xb0\xff\xb3\xff\xaf\xff\xb1\xff\x00\x00\xad\xff\xb5\xff\x00\x00\xae\xff\xb4\xff\xb6\xff\x00\x00\x00\x00\x00\x00\xac\xff\x00\x00\xa7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xe5\xff\x00\x00\x00\x00\x00\x00\x92\xff\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbf\xff\xc8\xff\xc4\xff\xc1\xff\x00\x00\x00\x00\xc9\xff\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x00\x00\x00\x00\xe3\xff\x00\x00\x00\x00\xcf\xff\xe4\xff\xe2\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x00\x00\xcc\xff\xcc\xff\xcc\xff\xdb\xff\xda\xff\xdc\xff\x00\x00\x00\x00\xcf\xff\x00\x00\x00\x00\xc5\xff\x00\x00\xc6\xff\x00\x00\xc0\xff\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\x00\x00\x00\x00\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xff\x97\xff\x9e\xff\x9d\xff\x9b\xff\x99\xff\x89\xff\x86\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa1\xff\x00\x00\x00\x00\x94\xff\xa0\xff\xb7\xff\xb9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\x00\x00\x00\x00\x00\x00\xe1\xff\xd5\xff\xd6\xff\xdf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xd7\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x8e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\xff\x00\x00\x93\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbe\xff\xbc\xff\xa9\xff\x00\x00\x00\x00\x00\x00\xa5\xff\x00\x00\x00\x00\xbd\xff\x00\x00\x00\x00\xa8\xff\x95\xff\xc3\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\xff\x00\x00\xcb\xff\xd4\xff\xd9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\x00\x00\x00\x00\xc2\xff\xd0\xff\x00\x00\xd2\xff\x00\x00\xd3\xff\xd1\xff\x8f\xff\x90\xff\x00\x00\x00\x00\x00\x00\x96\xff\x00\x00\x00\x00\xbb\xff\xaa\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x10\x00\x15\x00\x09\x00\x13\x00\x12\x00\x14\x00\x1b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\x01\x00\x1e\x00\x01\x00\x02\x00\x41\x00\x09\x00\x01\x00\x24\x00\x25\x00\x0a\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x10\x00\x12\x00\x0b\x00\x0c\x00\x14\x00\x12\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x3c\x00\x11\x00\x13\x00\x3e\x00\x14\x00\x3b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x43\x00\x1e\x00\x43\x00\x10\x00\x01\x00\x01\x00\x2e\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x0a\x00\x2b\x00\x0b\x00\x10\x00\x2e\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x41\x00\x37\x00\x0a\x00\x39\x00\x20\x00\x01\x00\x22\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x20\x00\x0b\x00\x22\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x10\x00\x12\x00\x1e\x00\x01\x00\x10\x00\x41\x00\x04\x00\x2f\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1f\x00\x2b\x00\x21\x00\x10\x00\x41\x00\x14\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x1b\x00\x37\x00\x1b\x00\x39\x00\x2e\x00\x01\x00\x02\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x03\x00\x39\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x12\x00\x41\x00\x1e\x00\x36\x00\x01\x00\x41\x00\x18\x00\x41\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x38\x00\x0d\x00\x10\x00\x41\x00\x40\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x16\x00\x37\x00\x1b\x00\x39\x00\x01\x00\x01\x00\x02\x00\x14\x00\x01\x00\x02\x00\x10\x00\x41\x00\x42\x00\x13\x00\x0b\x00\x15\x00\x01\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x12\x00\x13\x00\x1e\x00\x12\x00\x0b\x00\x0c\x00\x18\x00\x2c\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x43\x00\x01\x00\x02\x00\x41\x00\x01\x00\x02\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x01\x00\x07\x00\x08\x00\x04\x00\x10\x00\x12\x00\x3e\x00\x13\x00\x12\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x12\x00\x13\x00\x14\x00\x1e\x00\x01\x00\x01\x00\x18\x00\x04\x00\x01\x00\x24\x00\x25\x00\x04\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x10\x00\x0d\x00\x0e\x00\x01\x00\x43\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x37\x00\x0b\x00\x39\x00\x0d\x00\x0e\x00\x10\x00\x01\x00\x10\x00\x13\x00\x0b\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x0b\x00\x0c\x00\x10\x00\x1e\x00\x01\x00\x01\x00\x01\x00\x04\x00\x10\x00\x24\x00\x25\x00\x10\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x0b\x00\x0d\x00\x0e\x00\x07\x00\x08\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x37\x00\x10\x00\x13\x00\x43\x00\x01\x00\x02\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x1b\x00\x1e\x00\x14\x00\x3a\x00\x01\x00\x3c\x00\x0f\x00\x24\x00\x25\x00\x12\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0b\x00\x18\x00\x0d\x00\x0e\x00\x3b\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x07\x00\x08\x00\x13\x00\x43\x00\x39\x00\x01\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x41\x00\x1e\x00\x10\x00\x0b\x00\x01\x00\x0d\x00\x0e\x00\x24\x00\x25\x00\x01\x00\x27\x00\x28\x00\x29\x00\x1d\x00\x0b\x00\x01\x00\x02\x00\x01\x00\x01\x00\x0b\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x0b\x00\x0b\x00\x0d\x00\x0e\x00\x43\x00\x12\x00\x13\x00\x14\x00\x15\x00\x41\x00\x42\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x40\x00\x01\x00\x02\x00\x0f\x00\x07\x00\x08\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\x43\x00\x01\x00\x36\x00\x43\x00\x41\x00\x41\x00\x41\x00\x1d\x00\x1b\x00\x01\x00\x02\x00\x0b\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\x1b\x00\x20\x00\x38\x00\x1d\x00\x1b\x00\x1b\x00\x41\x00\x14\x00\x1b\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x10\x00\x1b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\x15\x00\x15\x00\x1b\x00\x1b\x00\x12\x00\x1b\x00\x11\x00\x14\x00\x1b\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x3c\x00\x2d\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x40\x00\x0f\x00\x08\x00\x1b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1b\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x3a\x00\x3c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x11\x00\x23\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x11\x00\x1c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x14\x00\x01\x00\x02\x00\x14\x00\x0f\x00\x11\x00\x1c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x41\x00\x1c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1c\x00\x01\x00\x02\x00\x3c\x00\x0f\x00\x14\x00\x14\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x3c\x00\x01\x00\x02\x00\x3a\x00\x0f\x00\x14\x00\x14\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x14\x00\x01\x00\x02\x00\x3c\x00\x0f\x00\x14\x00\x14\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x06\x00\x05\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x07\x00\x01\x00\x02\x00\x09\x00\x0f\x00\x01\x00\x01\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x01\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x09\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x01\x00\x02\x00\x06\x00\x0f\x00\x09\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x09\x00\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x12\x00\x18\x00\x01\x00\x02\x00\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x01\x00\x02\x00\x01\x00\x02\x00\x01\x00\x02\x00\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x18\x00\x0f\x00\xff\xff\xff\xff\x12\x00\xff\xff\x12\x00\x13\x00\x12\x00\x13\x00\x18\x00\xff\xff\x18\x00\xff\xff\x18\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\x43\x00\xae\x00\x75\x00\x28\x00\x96\x00\xf5\x00\xc0\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x1a\x00\x1b\x00\x5d\x00\x2d\x00\x1a\x00\x1b\x00\x3f\x00\x75\x00\x51\x00\x2e\x00\x2f\x00\x5e\x00\x31\x00\x32\x00\x33\x00\x93\x00\x5c\x00\x4a\x00\x59\x00\x5a\x00\xcf\x00\x91\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x27\x00\xc1\x00\xc6\x00\x28\x00\xaf\x00\xc7\x00\x94\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x3f\x00\x40\x00\xff\xff\x2d\x00\xff\xff\x5c\x00\x5d\x00\x51\x00\x57\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x80\x00\x34\x00\x5c\x00\x9d\x00\xa7\x00\x5d\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3f\x00\x3b\x00\x14\x01\x3c\x00\x97\x00\x51\x00\x98\x00\x3d\x00\x57\x00\x3e\x00\x27\x00\x3f\x00\x40\x00\x28\x00\x97\x00\x9b\x00\x98\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x57\x00\x56\x00\x96\x00\x2d\x00\x75\x00\x5c\x00\x3f\x00\x76\x00\xa9\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xac\x00\x34\x00\xad\x00\x56\x00\x3f\x00\xcf\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xf3\x00\x3b\x00\xe6\x00\x3c\x00\x57\x00\x1a\x00\x1b\x00\x3d\x00\x57\x00\x3e\x00\x27\x00\x3f\x00\x40\x00\x28\x00\x77\x00\x58\x00\x78\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x57\x00\x1d\x00\x3f\x00\x2d\x00\x73\x00\x51\x00\x3f\x00\x41\x00\x3f\x00\x2e\x00\x2f\x00\x58\x00\x31\x00\x32\x00\x33\x00\x52\x00\x61\x00\x58\x00\x56\x00\x3f\x00\x1a\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xab\x00\x3b\x00\xe4\x00\x3c\x00\x51\x00\x1a\x00\x1b\x00\xa8\x00\x1a\x00\x1b\x00\x43\x00\x3f\x00\x40\x00\x28\x00\x8d\x00\xbf\xff\x51\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x57\x00\x1d\x00\x49\x00\x2d\x00\xa1\x00\x8e\x00\x8f\x00\x46\x00\xaa\x00\x2e\x00\x2f\x00\x58\x00\x31\x00\x32\x00\x33\x00\x93\x00\xff\xff\x1a\x00\x1b\x00\x3f\x00\x1a\x00\x1b\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x1a\x00\x1b\x00\x75\x00\x61\x00\x62\x00\x88\x00\x27\x00\x9d\x00\xbf\xff\x28\x00\x91\x00\x3f\x00\x40\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x1d\x00\x1e\x00\x48\x00\x2d\x00\x75\x00\x51\x00\x46\x00\x7c\x00\x75\x00\x2e\x00\x2f\x00\x7a\x00\x31\x00\x32\x00\x33\x00\x52\x00\xa4\x00\x53\x00\x54\x00\x51\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x51\x00\x3b\x00\x52\x00\x3c\x00\x53\x00\xa2\x00\x43\x00\x51\x00\xa1\x00\x28\x00\x8b\x00\x3f\x00\x40\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x59\x00\x8c\x00\xa0\x00\x2d\x00\x75\x00\x51\x00\x51\x00\xd0\x00\x9b\x00\x2e\x00\x2f\x00\x9a\x00\x31\x00\x32\x00\x33\x00\x52\x00\xc4\x00\x53\x00\x90\x00\x61\x00\x79\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x43\x00\x3b\x00\x56\x00\x28\x00\xff\xff\x1a\x00\x1b\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x3f\x00\x40\x00\xe2\x00\x2d\x00\x95\x00\x05\x01\x51\x00\x06\x01\x4f\x00\x2e\x00\x2f\x00\x1d\x00\x31\x00\x32\x00\x33\x00\x93\x00\x52\x00\x50\x00\x53\x00\xe4\x00\x94\x00\x57\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x43\x00\x61\x00\xd1\x00\x28\x00\xff\xff\x58\x00\x51\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x3f\x00\x40\x00\x3f\x00\x2d\x00\x8b\x00\x52\x00\x51\x00\x53\x00\xe2\x00\x2e\x00\x2f\x00\x51\x00\x31\x00\x32\x00\x33\x00\x8a\x00\xc3\x00\x1a\x00\x1b\x00\x51\x00\x51\x00\xc1\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x1a\x00\x1b\x00\x52\x00\xba\x00\x53\x00\xe0\x00\xff\xff\x1d\x00\x1e\x00\x1f\x00\x47\x00\x3f\x00\x40\x00\x46\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1a\x00\x1a\x00\x1b\x00\x1c\x00\x61\x00\xdf\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\xb6\x00\x1c\x00\x4b\x00\x4c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1a\x00\x1b\x00\xff\xff\x51\x00\x73\x00\xff\xff\x3f\x00\x3f\x00\x3f\x00\xdc\x00\xdb\x00\x1a\x00\x1b\x00\xea\x00\x1c\x00\x4b\x00\xcc\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1c\x00\x4b\x00\xca\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1a\x00\x1b\x00\xda\x00\xd9\x00\x61\x00\xd8\x00\xd4\x00\xd3\x00\x3f\x00\xcf\x00\xd0\x00\x1a\x00\x1b\x00\xce\x00\x1c\x00\x4b\x00\xbd\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xbe\x00\x1c\x00\x4e\x00\xc3\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1a\x00\x1b\x00\xbc\x00\xba\x00\xb9\x00\xb8\x00\x96\x00\xf9\x00\xf6\x00\xf7\x00\xf1\x00\xa5\x00\x1b\x00\xf0\x00\x1c\x00\xee\x00\xed\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x40\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x98\x00\xe9\x00\x1a\x00\x1b\x00\x1a\x00\x1c\x00\x14\x01\x13\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x9e\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x98\x00\x11\x01\x1a\x00\x1b\x00\x0f\x01\x1c\x00\x0d\x01\x03\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x87\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x86\x00\x0c\x01\x1a\x00\x1b\x00\x0b\x01\x1c\x00\x09\x01\xff\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x85\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x84\x00\xfe\x00\x1a\x00\x1b\x00\xfd\x00\x1c\x00\x22\x01\x1a\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xcb\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xc7\x00\x21\x01\x1a\x00\x1b\x00\x20\x01\x1c\x00\x1f\x01\x18\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xbc\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xfb\x00\x1d\x01\x1a\x00\x1b\x00\x1c\x01\x1c\x00\x3f\x00\x2e\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xfa\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xf9\x00\x2c\x01\x1a\x00\x1b\x00\x2a\x01\x1c\x00\x29\x01\x28\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xf3\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xf1\x00\x27\x01\x1a\x00\x1b\x00\x26\x01\x1c\x00\x23\x01\x35\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xee\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xeb\x00\x34\x01\x1a\x00\x1b\x00\x39\x01\x1c\x00\x3b\x01\x3d\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xe9\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xe7\x00\x3a\x01\x1a\x00\x1b\x00\x3f\x01\x1c\x00\x71\x00\x73\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xe6\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xdd\x00\x70\x00\x1a\x00\x1b\x00\x5f\x00\x1c\x00\x83\x00\x82\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xdc\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x11\x01\x81\x00\x1a\x00\x1b\x00\x7f\x00\x1c\x00\x7e\x00\xd6\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0d\x01\x7d\x00\x1a\x00\x1b\x00\x7b\x00\x1c\x00\xd5\x00\xde\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x07\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x06\x01\xd4\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x03\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x01\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1d\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1a\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x18\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x16\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x15\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2c\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2a\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x23\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x32\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2f\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2e\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x37\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x36\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3b\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3d\x01\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x44\x00\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xb5\x00\x23\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xb0\x00\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xaf\x00\x23\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xf7\x00\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x35\x01\x23\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x31\x01\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x30\x01\x23\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x45\x00\x00\x00\x46\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xc8\x00\x1d\x00\x46\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xb4\x00\x00\x00\x46\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x09\x01\x00\x00\x46\x00\x00\x00\x1a\x00\x1b\x00\x1a\x00\x1b\x00\x1a\x00\x1b\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\xb3\x00\x00\x00\x00\x00\x46\x00\xa4\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x1d\x00\xb2\x00\x1d\x00\xb1\x00\x50\x00\x00\x00\x46\x00\x00\x00\x46\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyReduceArr = Happy_Data_Array.array (24, 121) [-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87),-	(88 , happyReduce_88),-	(89 , happyReduce_89),-	(90 , happyReduce_90),-	(91 , happyReduce_91),-	(92 , happyReduce_92),-	(93 , happyReduce_93),-	(94 , happyReduce_94),-	(95 , happyReduce_95),-	(96 , happyReduce_96),-	(97 , happyReduce_97),-	(98 , happyReduce_98),-	(99 , happyReduce_99),-	(100 , happyReduce_100),-	(101 , happyReduce_101),-	(102 , happyReduce_102),-	(103 , happyReduce_103),-	(104 , happyReduce_104),-	(105 , happyReduce_105),-	(106 , happyReduce_106),-	(107 , happyReduce_107),-	(108 , happyReduce_108),-	(109 , happyReduce_109),-	(110 , happyReduce_110),-	(111 , happyReduce_111),-	(112 , happyReduce_112),-	(113 , happyReduce_113),-	(114 , happyReduce_114),-	(115 , happyReduce_115),-	(116 , happyReduce_116),-	(117 , happyReduce_117),-	(118 , happyReduce_118),-	(119 , happyReduce_119),-	(120 , happyReduce_120),-	(121 , happyReduce_121)-	]--happy_n_terms = 68 :: Prelude.Int-happy_n_nonterms = 27 :: Prelude.Int--happyReduce_24 = happySpecReduce_1  0# happyReduction_24-happyReduction_24 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn27-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), ((\(PT _ (TL s)) -> s) happy_var_1))-	)}--happyReduce_25 = happySpecReduce_1  1# happyReduction_25-happyReduction_25 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn28-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.VarIdent (tokenText happy_var_1))-	)}--happyReduce_26 = happySpecReduce_1  2# happyReduction_26-happyReduction_26 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn29-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.HoleIdent (tokenText happy_var_1))-	)}--happyReduce_27 = happySpecReduce_2  3# happyReduction_27-happyReduction_27 happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> -	case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> -	happyIn30-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Module (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))-	)}}--happyReduce_28 = happySpecReduce_1  4# happyReduction_28-happyReduction_28 happy_x_1-	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> -	happyIn31-		 ((fst happy_var_1, (:[]) (snd happy_var_1))-	)}--happyReduce_29 = happySpecReduce_2  4# happyReduction_29-happyReduction_29 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	happyIn31-		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))-	)}}--happyReduce_30 = happySpecReduce_3  5# happyReduction_30-happyReduction_30 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut33 happy_x_2 of { (HappyWrap33 happy_var_2) -> -	happyIn32-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LanguageDecl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_31 = happySpecReduce_1  6# happyReduction_31-happyReduction_31 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn33-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Rzk1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_32 = happyReduce 4# 7# happyReduction_32-happyReduction_32 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { (HappyWrap27 happy_var_2) -> -	case happyOut27 happy_x_4 of { (HappyWrap27 happy_var_4) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_33 = happySpecReduce_2  7# happyReduction_33-happyReduction_33 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { (HappyWrap27 happy_var_2) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_34 = happyReduce 4# 7# happyReduction_34-happyReduction_34 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_35 = happySpecReduce_2  7# happyReduction_35-happyReduction_35 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_36 = happySpecReduce_2  7# happyReduction_36-happyReduction_36 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_37 = happySpecReduce_2  7# happyReduction_37-happyReduction_37 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_38 = happyReduce 6# 7# happyReduction_38-happyReduction_38 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> -	case happyOut41 happy_x_4 of { (HappyWrap41 happy_var_4) -> -	case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))-	) `HappyStk` happyRest}}}}}--happyReduce_39 = happyReduce 5# 7# happyReduction_39-happyReduction_39 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5))-	) `HappyStk` happyRest}}}}--happyReduce_40 = happyReduce 4# 7# happyReduction_40-happyReduction_40 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandAssume (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_41 = happyReduce 4# 7# happyReduction_41-happyReduction_41 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariable (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_42 = happyReduce 4# 7# happyReduction_42-happyReduction_42 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariables (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_43 = happyReduce 6# 7# happyReduction_43-happyReduction_43 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_2 of { (HappyWrap37 happy_var_2) -> -	case happyOut35 happy_x_4 of { (HappyWrap35 happy_var_4) -> -	case happyOut37 happy_x_6 of { (HappyWrap37 happy_var_6) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSection (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))-	) `HappyStk` happyRest}}}}--happyReduce_44 = happyReduce 8# 7# happyReduction_44-happyReduction_44 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> -	case happyOut41 happy_x_4 of { (HappyWrap41 happy_var_4) -> -	case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> -	case happyOut52 happy_x_8 of { (HappyWrap52 happy_var_8) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))-	) `HappyStk` happyRest}}}}}}--happyReduce_45 = happyReduce 7# 7# happyReduction_45-happyReduction_45 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))-	) `HappyStk` happyRest}}}}}--happyReduce_46 = happyReduce 8# 7# happyReduction_46-happyReduction_46 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> -	case happyOut41 happy_x_4 of { (HappyWrap41 happy_var_4) -> -	case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> -	case happyOut52 happy_x_8 of { (HappyWrap52 happy_var_8) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))-	) `HappyStk` happyRest}}}}}}--happyReduce_47 = happyReduce 7# 7# happyReduction_47-happyReduction_47 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> -	happyIn34-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))-	) `HappyStk` happyRest}}}}}--happyReduce_48 = happySpecReduce_0  8# happyReduction_48-happyReduction_48  =  happyIn35-		 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])-	)--happyReduce_49 = happySpecReduce_3  8# happyReduction_49-happyReduction_49 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> -	case happyOut35 happy_x_3 of { (HappyWrap35 happy_var_3) -> -	happyIn35-		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_50 = happyReduce 4# 9# happyReduction_50-happyReduction_50 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut31 happy_x_3 of { (HappyWrap31 happy_var_3) -> -	happyIn36-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DeclUsedVars (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))-	) `HappyStk` happyRest}}--happyReduce_51 = happySpecReduce_0  9# happyReduction_51-happyReduction_51  =  happyIn36-		 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.noDeclUsedVars Language.Rzk.Syntax.Abs.BNFC'NoPosition)-	)--happyReduce_52 = happySpecReduce_0  10# happyReduction_52-happyReduction_52  =  happyIn37-		 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoSectionName Language.Rzk.Syntax.Abs.BNFC'NoPosition)-	)--happyReduce_53 = happySpecReduce_1  10# happyReduction_53-happyReduction_53 happy_x_1-	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> -	happyIn37-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SomeSectionName (fst happy_var_1) (snd happy_var_1))-	)}--happyReduce_54 = happySpecReduce_1  11# happyReduction_54-happyReduction_54 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn38-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternWildcard (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_55 = happySpecReduce_1  11# happyReduction_55-happyReduction_55 happy_x_1-	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> -	happyIn38-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.PatternVar (fst happy_var_1) (snd happy_var_1))-	)}--happyReduce_56 = happyReduce 5# 11# happyReduction_56-happyReduction_56 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> -	happyIn38-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_57 = happySpecReduce_1  12# happyReduction_57-happyReduction_57 happy_x_1-	 =  case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> -	happyIn39-		 ((fst happy_var_1, (:[]) (snd happy_var_1))-	)}--happyReduce_58 = happySpecReduce_2  12# happyReduction_58-happyReduction_58 happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> -	case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> -	happyIn39-		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))-	)}}--happyReduce_59 = happySpecReduce_1  13# happyReduction_59-happyReduction_59 happy_x_1-	 =  case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> -	happyIn40-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamPattern (fst happy_var_1) (snd happy_var_1))-	)}--happyReduce_60 = happyReduce 5# 13# happyReduction_60-happyReduction_60 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn40-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_61 = happyReduce 7# 13# happyReduction_61-happyReduction_61 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> -	happyIn40-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))-	) `HappyStk` happyRest}}}}--happyReduce_62 = happySpecReduce_1  14# happyReduction_62-happyReduction_62 happy_x_1-	 =  case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> -	happyIn41-		 ((fst happy_var_1, (:[]) (snd happy_var_1))-	)}--happyReduce_63 = happySpecReduce_2  14# happyReduction_63-happyReduction_63 happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> -	case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> -	happyIn41-		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))-	)}}--happyReduce_64 = happySpecReduce_1  15# happyReduction_64-happyReduction_64 happy_x_1-	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> -	happyIn42-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamType (fst happy_var_1) (snd happy_var_1))-	)}--happyReduce_65 = happyReduce 5# 15# happyReduction_65-happyReduction_65 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn42-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamWildcardType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_4))-	) `HappyStk` happyRest}}--happyReduce_66 = happyReduce 5# 15# happyReduction_66-happyReduction_66 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn42-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamVarType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_67 = happyReduce 5# 15# happyReduction_67-happyReduction_67 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn42-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.paramVarType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_68 = happyReduce 9# 15# happyReduction_68-happyReduction_68 (happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut52 happy_x_8 of { (HappyWrap52 happy_var_8) -> -	happyIn42-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamVarShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))-	) `HappyStk` happyRest}}}}--happyReduce_69 = happyReduce 7# 15# happyReduction_69-happyReduction_69 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> -	happyIn42-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.paramVarShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))-	) `HappyStk` happyRest}}}}--happyReduce_70 = happySpecReduce_3  16# happyReduction_70-happyReduction_70 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> -	case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> -	happyIn43-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_71 = happySpecReduce_1  17# happyReduction_71-happyReduction_71 happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	happyIn44-		 ((fst happy_var_1, (:[]) (snd happy_var_1))-	)}--happyReduce_72 = happySpecReduce_3  17# happyReduction_72-happyReduction_72 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> -	case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> -	happyIn44-		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_73 = happySpecReduce_1  18# happyReduction_73-happyReduction_73 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_74 = happySpecReduce_1  18# happyReduction_74-happyReduction_74 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_75 = happySpecReduce_1  18# happyReduction_75-happyReduction_75 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_76 = happySpecReduce_1  18# happyReduction_76-happyReduction_76 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_77 = happySpecReduce_1  18# happyReduction_77-happyReduction_77 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_78 = happySpecReduce_1  18# happyReduction_78-happyReduction_78 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_79 = happySpecReduce_1  18# happyReduction_79-happyReduction_79 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_80 = happySpecReduce_1  18# happyReduction_80-happyReduction_80 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_81 = happySpecReduce_1  18# happyReduction_81-happyReduction_81 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_82 = happySpecReduce_1  18# happyReduction_82-happyReduction_82 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_83 = happySpecReduce_1  18# happyReduction_83-happyReduction_83 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_84 = happyReduce 4# 18# happyReduction_84-happyReduction_84 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))-	) `HappyStk` happyRest}}--happyReduce_85 = happyReduce 10# 18# happyReduction_85-happyReduction_85 (happy_x_10 `HappyStk`-	happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> -	case happyOut52 happy_x_9 of { (HappyWrap52 happy_var_9) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.recOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))-	) `HappyStk` happyRest}}}}}--happyReduce_86 = happyReduce 5# 18# happyReduction_86-happyReduction_86 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.typeExtension (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_87 = happyReduce 5# 18# happyReduction_87-happyReduction_87 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_88 = happySpecReduce_1  18# happyReduction_88-happyReduction_88 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))-	)}--happyReduce_89 = happySpecReduce_3  18# happyReduction_89-happyReduction_89 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_90 = happyReduce 5# 18# happyReduction_90-happyReduction_90 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_91 = happyReduce 14# 18# happyReduction_91-happyReduction_91 (happy_x_14 `HappyStk`-	happy_x_13 `HappyStk`-	happy_x_12 `HappyStk`-	happy_x_11 `HappyStk`-	happy_x_10 `HappyStk`-	happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> -	case happyOut52 happy_x_9 of { (HappyWrap52 happy_var_9) -> -	case happyOut52 happy_x_11 of { (HappyWrap52 happy_var_11) -> -	case happyOut52 happy_x_13 of { (HappyWrap52 happy_var_13) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.IdJ (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11) (snd happy_var_13))-	) `HappyStk` happyRest}}}}}}}--happyReduce_92 = happySpecReduce_1  18# happyReduction_92-happyReduction_92 happy_x_1-	 =  case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> -	happyIn45-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1))-	)}--happyReduce_93 = happySpecReduce_1  18# happyReduction_93-happyReduction_93 happy_x_1-	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> -	happyIn45-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1))-	)}--happyReduce_94 = happySpecReduce_3  18# happyReduction_94-happyReduction_94 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> -	happyIn45-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2))-	)}}--happyReduce_95 = happySpecReduce_3  19# happyReduction_95-happyReduction_95 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> -	case happyOut51 happy_x_3 of { (HappyWrap51 happy_var_3) -> -	happyIn46-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_96 = happySpecReduce_1  19# happyReduction_96-happyReduction_96 happy_x_1-	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> -	happyIn46-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_97 = happySpecReduce_3  20# happyReduction_97-happyReduction_97 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> -	case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> -	happyIn47-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_98 = happySpecReduce_3  20# happyReduction_98-happyReduction_98 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> -	case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> -	happyIn47-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_99 = happySpecReduce_1  20# happyReduction_99-happyReduction_99 happy_x_1-	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> -	happyIn47-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_100 = happySpecReduce_3  21# happyReduction_100-happyReduction_100 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> -	case happyOut48 happy_x_3 of { (HappyWrap48 happy_var_3) -> -	happyIn48-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_101 = happySpecReduce_1  21# happyReduction_101-happyReduction_101 happy_x_1-	 =  case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> -	happyIn48-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_102 = happySpecReduce_3  22# happyReduction_102-happyReduction_102 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> -	case happyOut49 happy_x_3 of { (HappyWrap49 happy_var_3) -> -	happyIn49-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_103 = happySpecReduce_1  22# happyReduction_103-happyReduction_103 happy_x_1-	 =  case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> -	happyIn49-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_104 = happySpecReduce_3  23# happyReduction_104-happyReduction_104 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> -	case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> -	happyIn50-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_105 = happyReduce 8# 23# happyReduction_105-happyReduction_105 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut50 happy_x_8 of { (HappyWrap50 happy_var_8) -> -	happyIn50-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))-	) `HappyStk` happyRest}}}}--happyReduce_106 = happyReduce 5# 23# happyReduction_106-happyReduction_106 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> -	case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> -	case happyOut49 happy_x_5 of { (HappyWrap49 happy_var_5) -> -	happyIn50-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeId (fst happy_var_1) (snd happy_var_1) (snd happy_var_3) (snd happy_var_5))-	) `HappyStk` happyRest}}}--happyReduce_107 = happySpecReduce_3  23# happyReduction_107-happyReduction_107 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> -	case happyOut49 happy_x_3 of { (HappyWrap49 happy_var_3) -> -	happyIn50-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_108 = happyReduce 4# 23# happyReduction_108-happyReduction_108 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> -	case happyOut50 happy_x_4 of { (HappyWrap50 happy_var_4) -> -	happyIn50-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))-	) `HappyStk` happyRest}}}--happyReduce_109 = happySpecReduce_1  23# happyReduction_109-happyReduction_109 happy_x_1-	 =  case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> -	happyIn50-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_110 = happySpecReduce_3  23# happyReduction_110-happyReduction_110 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> -	case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> -	happyIn50-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.unicode_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_111 = happyReduce 8# 23# happyReduction_111-happyReduction_111 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut50 happy_x_8 of { (HappyWrap50 happy_var_8) -> -	happyIn50-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))-	) `HappyStk` happyRest}}}}--happyReduce_112 = happyReduce 8# 23# happyReduction_112-happyReduction_112 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> -	case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> -	case happyOut50 happy_x_8 of { (HappyWrap50 happy_var_8) -> -	happyIn50-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))-	) `HappyStk` happyRest}}}}--happyReduce_113 = happyReduce 4# 24# happyReduction_113-happyReduction_113 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> -	case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> -	happyIn51-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	) `HappyStk` happyRest}}--happyReduce_114 = happySpecReduce_2  24# happyReduction_114-happyReduction_114 happy_x_2-	happy_x_1-	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> -	case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn51-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))-	)}}--happyReduce_115 = happySpecReduce_2  24# happyReduction_115-happyReduction_115 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn51-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_116 = happySpecReduce_2  24# happyReduction_116-happyReduction_116 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> -	happyIn51-		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))-	)}}--happyReduce_117 = happySpecReduce_1  24# happyReduction_117-happyReduction_117 happy_x_1-	 =  case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> -	happyIn51-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_118 = happySpecReduce_3  25# happyReduction_118-happyReduction_118 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> -	case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> -	happyIn52-		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))-	)}}--happyReduce_119 = happySpecReduce_1  25# happyReduction_119-happyReduction_119 happy_x_1-	 =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> -	happyIn52-		 ((fst happy_var_1, (snd happy_var_1))-	)}--happyReduce_120 = happySpecReduce_1  26# happyReduction_120-happyReduction_120 happy_x_1-	 =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> -	happyIn53-		 ((fst happy_var_1, (:[]) (snd happy_var_1))-	)}--happyReduce_121 = happySpecReduce_3  26# happyReduction_121-happyReduction_121 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> -	case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> -	happyIn53-		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))-	)}}--happyNewToken action sts stk [] =-	happyDoAction 67# notHappyAtAll action sts stk []--happyNewToken action sts stk (tk:tks) =-	let cont i = happyDoAction i tk action sts stk tks in-	case tk of {-	PT _ (TS _ 1) -> cont 1#;-	PT _ (TS _ 2) -> cont 2#;-	PT _ (TS _ 3) -> cont 3#;-	PT _ (TS _ 4) -> cont 4#;-	PT _ (TS _ 5) -> cont 5#;-	PT _ (TS _ 6) -> cont 6#;-	PT _ (TS _ 7) -> cont 7#;-	PT _ (TS _ 8) -> cont 8#;-	PT _ (TS _ 9) -> cont 9#;-	PT _ (TS _ 10) -> cont 10#;-	PT _ (TS _ 11) -> cont 11#;-	PT _ (TS _ 12) -> cont 12#;-	PT _ (TS _ 13) -> cont 13#;-	PT _ (TS _ 14) -> cont 14#;-	PT _ (TS _ 15) -> cont 15#;-	PT _ (TS _ 16) -> cont 16#;-	PT _ (TS _ 17) -> cont 17#;-	PT _ (TS _ 18) -> cont 18#;-	PT _ (TS _ 19) -> cont 19#;-	PT _ (TS _ 20) -> cont 20#;-	PT _ (TS _ 21) -> cont 21#;-	PT _ (TS _ 22) -> cont 22#;-	PT _ (TS _ 23) -> cont 23#;-	PT _ (TS _ 24) -> cont 24#;-	PT _ (TS _ 25) -> cont 25#;-	PT _ (TS _ 26) -> cont 26#;-	PT _ (TS _ 27) -> cont 27#;-	PT _ (TS _ 28) -> cont 28#;-	PT _ (TS _ 29) -> cont 29#;-	PT _ (TS _ 30) -> cont 30#;-	PT _ (TS _ 31) -> cont 31#;-	PT _ (TS _ 32) -> cont 32#;-	PT _ (TS _ 33) -> cont 33#;-	PT _ (TS _ 34) -> cont 34#;-	PT _ (TS _ 35) -> cont 35#;-	PT _ (TS _ 36) -> cont 36#;-	PT _ (TS _ 37) -> cont 37#;-	PT _ (TS _ 38) -> cont 38#;-	PT _ (TS _ 39) -> cont 39#;-	PT _ (TS _ 40) -> cont 40#;-	PT _ (TS _ 41) -> cont 41#;-	PT _ (TS _ 42) -> cont 42#;-	PT _ (TS _ 43) -> cont 43#;-	PT _ (TS _ 44) -> cont 44#;-	PT _ (TS _ 45) -> cont 45#;-	PT _ (TS _ 46) -> cont 46#;-	PT _ (TS _ 47) -> cont 47#;-	PT _ (TS _ 48) -> cont 48#;-	PT _ (TS _ 49) -> cont 49#;-	PT _ (TS _ 50) -> cont 50#;-	PT _ (TS _ 51) -> cont 51#;-	PT _ (TS _ 52) -> cont 52#;-	PT _ (TS _ 53) -> cont 53#;-	PT _ (TS _ 54) -> cont 54#;-	PT _ (TS _ 55) -> cont 55#;-	PT _ (TS _ 56) -> cont 56#;-	PT _ (TS _ 57) -> cont 57#;-	PT _ (TS _ 58) -> cont 58#;-	PT _ (TS _ 59) -> cont 59#;-	PT _ (TS _ 60) -> cont 60#;-	PT _ (TS _ 61) -> cont 61#;-	PT _ (TS _ 62) -> cont 62#;-	PT _ (TS _ 63) -> cont 63#;-	PT _ (TL _) -> cont 64#;-	PT _ (T_VarIdent _) -> cont 65#;-	PT _ (T_HoleIdent _) -> cont 66#;-	_ -> happyError' ((tk:tks), [])-	}--happyError_ explist 67# tk tks = happyError' (tks, explist)-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)--happyThen :: () => Err a -> (a -> Err b) -> Err b-happyThen = ((>>=))-happyReturn :: () => a -> Err a-happyReturn = (return)-happyThen1 m k tks = ((>>=)) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> Err a-happyReturn1 = \a tks -> (return) a-happyError' :: () => ([(Token)], [Prelude.String]) -> Err a-happyError' = (\(tokens, _) -> happyError tokens)-pModule_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (let {(HappyWrap30 x') = happyOut30 x} in x'))--pListVarIdent_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 1# tks) (\x -> happyReturn (let {(HappyWrap31 x') = happyOut31 x} in x'))--pLanguageDecl_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (let {(HappyWrap32 x') = happyOut32 x} in x'))--pLanguage_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (let {(HappyWrap33 x') = happyOut33 x} in x'))--pCommand_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (let {(HappyWrap34 x') = happyOut34 x} in x'))--pListCommand_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (let {(HappyWrap35 x') = happyOut35 x} in x'))--pDeclUsedVars_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (let {(HappyWrap36 x') = happyOut36 x} in x'))--pSectionName_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (let {(HappyWrap37 x') = happyOut37 x} in x'))--pPattern_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (let {(HappyWrap38 x') = happyOut38 x} in x'))--pListPattern_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (let {(HappyWrap39 x') = happyOut39 x} in x'))--pParam_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (let {(HappyWrap40 x') = happyOut40 x} in x'))--pListParam_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 11# tks) (\x -> happyReturn (let {(HappyWrap41 x') = happyOut41 x} in x'))--pParamDecl_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 12# tks) (\x -> happyReturn (let {(HappyWrap42 x') = happyOut42 x} in x'))--pRestriction_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 13# tks) (\x -> happyReturn (let {(HappyWrap43 x') = happyOut43 x} in x'))--pListRestriction_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 14# tks) (\x -> happyReturn (let {(HappyWrap44 x') = happyOut44 x} in x'))--pTerm7_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 15# tks) (\x -> happyReturn (let {(HappyWrap45 x') = happyOut45 x} in x'))--pTerm5_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 16# tks) (\x -> happyReturn (let {(HappyWrap46 x') = happyOut46 x} in x'))--pTerm4_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 17# tks) (\x -> happyReturn (let {(HappyWrap47 x') = happyOut47 x} in x'))--pTerm3_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 18# tks) (\x -> happyReturn (let {(HappyWrap48 x') = happyOut48 x} in x'))--pTerm2_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 19# tks) (\x -> happyReturn (let {(HappyWrap49 x') = happyOut49 x} in x'))--pTerm1_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 20# tks) (\x -> happyReturn (let {(HappyWrap50 x') = happyOut50 x} in x'))--pTerm6_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 21# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x'))--pTerm_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 22# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x'))--pListTerm_internal tks = happySomeParser where- happySomeParser = happyThen (happyParse 23# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x'))--happySeq = happyDontSeq---type Err = Either String--happyError :: [Token] -> Err a-happyError ts = Left $-  "syntax error at " ++ tokenPos ts ++-  case ts of-    []      -> []-    [Err _] -> " due to lexer error"-    t:_     -> " before `" ++ (prToken t) ++ "'"--myLexer :: String -> [Token]-myLexer = tokens---- Entrypoints--pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module-pModule = fmap snd . pModule_internal+  , pHoleIdent+  , pVarIdent+  , pListVarIdent+  , pLanguageDecl+  , pLanguage+  , pCommand+  , pListCommand+  , pDeclUsedVars+  , pSectionName+  , pPattern+  , pListPattern+  , pParam+  , pListParam+  , pParamDecl+  , pRestriction+  , pListRestriction+  , pTerm7+  , pTerm5+  , pTerm4+  , pTerm3+  , pTerm2+  , pTerm1+  , pTerm6+  , pTerm+  , pListTerm+  ) where++import Prelude++import qualified Language.Rzk.Syntax.Abs+import Language.Rzk.Syntax.Lex+import qualified Data.Array as Happy_Data_Array+import qualified Data.Bits as Bits+import qualified GHC.Exts as Happy_GHC_Exts+import Control.Applicative(Applicative(..))+import Control.Monad (ap)++-- parser produced by Happy Version 1.20.1.1++newtype HappyAbsSyn  = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+newtype HappyWrap29 = HappyWrap29 ((Language.Rzk.Syntax.Abs.BNFC'Position, String))+happyIn29 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -> (HappyAbsSyn )+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap29 x)+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> HappyWrap29+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut29 #-}+newtype HappyWrap30 = HappyWrap30 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken))+happyIn30 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken)) -> (HappyAbsSyn )+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap30 x)+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> HappyWrap30+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut30 #-}+newtype HappyWrap31 = HappyWrap31 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken))+happyIn31 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken)) -> (HappyAbsSyn )+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap31 x)+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> HappyWrap31+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut31 #-}+newtype HappyWrap32 = HappyWrap32 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module))+happyIn32 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (HappyAbsSyn )+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap32 x)+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> HappyWrap32+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut32 #-}+newtype HappyWrap33 = HappyWrap33 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent))+happyIn33 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -> (HappyAbsSyn )+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap33 x)+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn ) -> HappyWrap33+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut33 #-}+newtype HappyWrap34 = HappyWrap34 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent))+happyIn34 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -> (HappyAbsSyn )+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap34 x)+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> HappyWrap34+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut34 #-}+newtype HappyWrap35 = HappyWrap35 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent]))+happyIn35 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) -> (HappyAbsSyn )+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap35 x)+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> HappyWrap35+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut35 #-}+newtype HappyWrap36 = HappyWrap36 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl))+happyIn36 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (HappyAbsSyn )+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap36 x)+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn ) -> HappyWrap36+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut36 #-}+newtype HappyWrap37 = HappyWrap37 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language))+happyIn37 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (HappyAbsSyn )+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap37 x)+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> HappyWrap37+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut37 #-}+newtype HappyWrap38 = HappyWrap38 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command))+happyIn38 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (HappyAbsSyn )+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap38 x)+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn ) -> HappyWrap38+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut38 #-}+newtype HappyWrap39 = HappyWrap39 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command]))+happyIn39 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (HappyAbsSyn )+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap39 x)+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> HappyWrap39+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut39 #-}+newtype HappyWrap40 = HappyWrap40 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars))+happyIn40 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) -> (HappyAbsSyn )+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap40 x)+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> HappyWrap40+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut40 #-}+newtype HappyWrap41 = HappyWrap41 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName))+happyIn41 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) -> (HappyAbsSyn )+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap41 x)+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> HappyWrap41+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut41 #-}+newtype HappyWrap42 = HappyWrap42 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern))+happyIn42 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn )+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap42 x)+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> HappyWrap42+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut42 #-}+newtype HappyWrap43 = HappyWrap43 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern]))+happyIn43 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn )+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap43 x)+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> HappyWrap43+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut43 #-}+newtype HappyWrap44 = HappyWrap44 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param))+happyIn44 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn )+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap44 x)+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> HappyWrap44+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut44 #-}+newtype HappyWrap45 = HappyWrap45 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param]))+happyIn45 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn )+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap45 x)+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> HappyWrap45+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut45 #-}+newtype HappyWrap46 = HappyWrap46 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl))+happyIn46 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn )+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap46 x)+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> HappyWrap46+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut46 #-}+newtype HappyWrap47 = HappyWrap47 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction))+happyIn47 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn )+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap47 x)+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> HappyWrap47+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut47 #-}+newtype HappyWrap48 = HappyWrap48 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction]))+happyIn48 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn )+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap48 x)+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> HappyWrap48+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut48 #-}+newtype HappyWrap49 = HappyWrap49 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn49 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap49 x)+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> HappyWrap49+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut49 #-}+newtype HappyWrap50 = HappyWrap50 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn50 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap50 x)+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> HappyWrap50+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut50 #-}+newtype HappyWrap51 = HappyWrap51 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn51 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap51 x)+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> HappyWrap51+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut51 #-}+newtype HappyWrap52 = HappyWrap52 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn52 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x)+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> HappyWrap52+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut52 #-}+newtype HappyWrap53 = HappyWrap53 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn53 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap53 x)+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> HappyWrap53+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut53 #-}+newtype HappyWrap54 = HappyWrap54 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn54 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap54 x)+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> HappyWrap54+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut54 #-}+newtype HappyWrap55 = HappyWrap55 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn55 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap55 x)+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> HappyWrap55+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut55 #-}+newtype HappyWrap56 = HappyWrap56 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term))+happyIn56 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn )+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap56 x)+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn ) -> HappyWrap56+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut56 #-}+newtype HappyWrap57 = HappyWrap57 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term]))+happyIn57 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -> (HappyAbsSyn )+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap57 x)+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn ) -> HappyWrap57+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyExpList :: HappyAddr+happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xf3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x0a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\xb7\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x01\x9f\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x07\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x81\xdf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x3e\xf0\x09\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe9\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x07\x7e\x0b\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x0a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x01\x9f\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf0\x09\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x3e\xf0\x09\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x0f\x7c\x02\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xfb\xc0\x27\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x02\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x02\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x07\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x81\xdf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xfb\xc0\x27\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x20\x80\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x08\xa0\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x20\x00\x00\x02\x28\x20\x00\x00\x00\x00\x00\x00\x00\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++{-# NOINLINE happyExpListPerState #-}+happyExpListPerState st =+    token_strs_expected+  where token_strs = ["error","%dummy","%start_pModule_internal","%start_pHoleIdent_internal","%start_pVarIdent_internal","%start_pListVarIdent_internal","%start_pLanguageDecl_internal","%start_pLanguage_internal","%start_pCommand_internal","%start_pListCommand_internal","%start_pDeclUsedVars_internal","%start_pSectionName_internal","%start_pPattern_internal","%start_pListPattern_internal","%start_pParam_internal","%start_pListParam_internal","%start_pParamDecl_internal","%start_pRestriction_internal","%start_pListRestriction_internal","%start_pTerm7_internal","%start_pTerm5_internal","%start_pTerm4_internal","%start_pTerm3_internal","%start_pTerm2_internal","%start_pTerm1_internal","%start_pTerm6_internal","%start_pTerm_internal","%start_pListTerm_internal","String","VarIdentToken","HoleIdentToken","Module","HoleIdent","VarIdent","ListVarIdent","LanguageDecl","Language","Command","ListCommand","DeclUsedVars","SectionName","Pattern","ListPattern","Param","ListParam","ParamDecl","Restriction","ListRestriction","Term7","Term5","Term4","Term3","Term2","Term1","Term6","Term","ListTerm","'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'('","')'","'*'","'*_1'","','","'->'","'/\\\\'","'0_2'","'1'","'1_2'","'2'","':'","':='","';'","'<'","'<='","'='","'==='","'=_{'","'>'","'BOT'","'CUBE'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'unit'","'uses'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"]+        bit_start = st Prelude.* 126+        bit_end = (st Prelude.+ 1) Prelude.* 126+        read_bit = readArrayBit happyExpList+        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]+        bits_indexed = Prelude.zip bits [0..125]+        token_strs_expected = Prelude.concatMap f bits_indexed+        f (Prelude.False, _) = []+        f (Prelude.True, nr) = [token_strs Prelude.!! nr]++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\x03\x00\xce\xff\xd4\xff\xd4\xff\x16\x00\xf7\xff\x07\x07\x07\x07\x0f\x00\xf8\xff\x28\x00\x28\x00\x98\x00\x98\x00\x7d\x00\x4b\x00\x4b\x00\x47\x01\xf9\x00\xf9\x00\xf9\x00\xf9\x00\x4b\x00\xf9\x00\x4b\x00\x4b\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x01\x00\x40\x00\x32\x00\xee\xff\x00\x00\xa4\x00\x6e\x00\x29\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x00\x47\x01\x78\x00\x00\x00\x81\x00\x00\x00\x4b\x00\x47\x01\x00\x00\x5a\x00\x90\x00\x9a\x00\x00\x00\x00\x00\x80\x00\xf1\xff\x4b\x00\x56\x00\x80\x00\x80\x00\x20\x01\x80\x00\x80\x00\xf4\xff\x80\x00\xa6\x00\x8b\x00\x6f\x00\xa1\x00\xa1\x00\x20\x01\x00\x00\x00\x00\x98\x00\xa1\x00\x6a\x00\x00\x00\x00\x00\x6a\x00\xa1\x00\x6a\x00\xa1\x00\x6a\x00\xa1\x00\x00\x00\xa1\x00\xa1\x00\xce\x00\xd0\x00\xae\x00\xb2\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\xb2\x00\xb2\x00\xb2\x00\xb2\x00\xbd\x00\xbd\x00\xd1\x00\xd1\x00\xe3\x00\xe3\x00\x00\x00\xe3\x00\xfd\x00\xf2\x00\xf1\x00\xf1\x00\xf1\x00\xf1\x00\x07\x07\x00\x00\x00\x00\x26\x01\x31\x01\x32\x01\x00\x00\x21\x01\x3b\x01\x15\x01\x15\x01\x15\x01\x00\x00\x00\x00\x00\x00\x40\x01\x42\x01\x07\x07\x19\x01\x4e\x01\x00\x00\x4b\x01\x0d\x00\x4f\x01\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\xf9\x00\xf9\x00\x4b\x00\x33\x00\x6a\x00\x6a\x00\x59\x01\x6a\x00\x00\x00\xea\xff\x4b\x00\x4b\x00\x00\x00\x54\x01\x6a\x00\x60\x01\x5b\x01\x5c\x01\x4b\x00\x4b\x00\xf9\x00\xf9\x00\xf9\x00\xf9\x00\x4b\x00\x4b\x00\x00\x00\x00\x00\x6c\x01\x6c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\x64\x01\x4b\x00\x6f\x01\x77\x01\xfd\xff\x4b\x00\x00\x00\xf9\xff\x4b\x00\x73\x01\x74\x01\x00\x00\x4b\x00\x5e\x01\x00\x00\x20\x01\x00\x00\x00\x00\x69\x01\x4b\x00\x6a\x00\x4b\x00\x92\x01\x00\x00\x4b\x00\x4b\x00\x57\x01\x58\x01\x5d\x01\x07\x07\x62\x01\x4b\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x01\x8e\x01\x4b\x00\x8f\x01\x4b\x00\x90\x01\x4b\x00\x00\x00\x00\x00\x00\x00\x8c\x01\xb8\x01\xc9\x01\x00\x00\xf9\x00\xcb\x01\x4b\x00\x4b\x00\x3d\x00\x4b\x00\x9f\x01\x4b\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\xbb\x01\xce\x01\xec\x01\x00\x00\x00\x00\x00\x00\xef\x01\xed\x01\xee\x01\x00\x00\xf2\x01\x4b\x00\x00\x00\xf3\x01\xf4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\xfc\x01\x4b\x00\x07\x02\x4b\x00\x00\x00\x4b\x00\xc5\x01\x00\x00\x00\x00\x0b\x02\x4b\x00\x0c\x02\x4b\x00\xeb\x01\x17\x02\x1a\x02\xff\x01\x02\x02\x4b\x00\x4b\x00\x35\x02\x4b\x00\x39\x02\x3a\x02\x4b\x00\x00\x00\x4b\x00\x4b\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x02\x4b\x00\x4b\x00\x00\x00\x3d\x02\x43\x02\x00\x00\x00\x00\x4b\x00\x4f\x02\x4b\x00\x53\x02\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\x95\x00\xa7\x00\x02\x00\x67\x00\x68\x02\x6b\x02\x6e\x02\x5d\x00\x69\x02\x54\x00\x88\x01\x25\x02\xf3\x00\xc5\x00\x94\x06\x05\x02\xb9\x01\xed\x00\x9b\x06\x8d\x06\x6f\x06\x40\x06\xb0\x05\xd0\x06\x20\x02\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x00\x00\x2b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x01\xda\x06\x00\x00\x00\x00\x00\x00\x00\x00\x46\x02\xe1\x06\x00\x00\x97\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x06\x51\x02\x00\x00\x00\x00\x00\x00\xef\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x06\x00\x00\x00\x00\x41\x01\x00\x00\x4b\x02\x00\x00\x00\x00\x98\x02\x00\x00\x71\x02\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x6c\x02\x77\x02\x92\x02\x9d\x02\x2a\x00\xde\x00\x1a\x01\x86\x00\x75\x02\x7a\x02\x24\x01\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x02\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x02\x8a\x02\x8f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x01\x3a\x01\x00\x00\x00\x00\x00\x00\x71\x02\x00\x00\x00\x00\x00\x00\xd4\x01\xb8\x02\xdf\x01\xd5\x06\x47\x06\xc3\x02\x00\x00\xbe\x02\xe3\x02\x00\x00\xe4\x02\x00\x00\x00\x00\xfa\x01\xde\x02\x00\x00\x00\x00\x09\x03\x00\x00\x00\x00\x00\x00\xab\x01\xba\x05\x4e\x06\x76\x06\xb2\x06\xb9\x06\xd4\x05\xde\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x02\x04\x03\x0f\x03\x00\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x2a\x03\x00\x00\x00\x00\x35\x03\x00\x00\x00\x00\x00\x00\x50\x03\x00\x00\x00\x00\xef\x06\x00\x00\x00\x00\x00\x00\x5b\x03\x0a\x03\x76\x03\x00\x00\x00\x00\x81\x03\x9c\x03\x98\x01\xf1\x06\xf7\x06\x10\x01\x9b\x02\xa7\x03\xc2\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x03\x00\x00\xe8\x03\x00\x00\xf3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x06\x00\x00\x0e\x04\x19\x04\x00\x00\x34\x04\x00\x00\x3f\x04\x00\x00\x5a\x04\x00\x00\x65\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x04\x00\x00\xa6\x04\x00\x00\xb1\x04\x00\x00\xcc\x04\xd6\x01\x00\x00\x00\x00\x00\x00\xd7\x04\x00\x00\xf2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x04\x18\x05\x00\x00\x02\x06\x00\x00\x00\x00\x23\x05\x00\x00\x1c\x06\x26\x06\x00\x00\x00\x00\x3e\x05\x00\x00\x49\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x6f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x05\x00\x00\x95\x05\x00\x00\x00\x00\x00\x00"#++happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#+happyAdjustOffset off = off++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xc8\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xe0\xff\xe1\xff\x9c\xff\x9b\xff\x00\x00\x83\xff\x95\xff\x93\xff\x91\xff\x8b\xff\x81\xff\x98\xff\x80\xff\x00\x00\x00\x00\xad\xff\xab\xff\xae\xff\xaa\xff\xac\xff\x00\x00\xa8\xff\xb0\xff\x00\x00\xa9\xff\xaf\xff\xb1\xff\xa4\xff\x00\x00\x00\x00\x00\x00\xa7\xff\x00\x00\xa0\xff\x00\x00\x00\x00\xa1\xff\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x8b\xff\x00\x00\x00\x00\x98\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xff\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\xc3\xff\xbf\xff\xbc\xff\x00\x00\x00\x00\xc5\xff\xc4\xff\x00\x00\x00\x00\xc1\xff\x00\x00\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\x00\x00\xdf\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xe2\xff\xde\xff\x00\x00\x00\x00\x00\x00\xda\xff\x00\x00\x00\x00\xc8\xff\xc8\xff\xc8\xff\xd7\xff\xd6\xff\xd8\xff\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\xc0\xff\x00\x00\xc1\xff\x00\x00\xbb\xff\x86\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\xff\x00\x00\x00\x00\x00\x00\x85\xff\x00\x00\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x90\xff\x97\xff\x96\xff\x94\xff\x92\xff\x82\xff\x7f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\x00\x00\x00\x00\x8d\xff\x99\xff\xb2\xff\xb4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\xdd\xff\xd1\xff\xd2\xff\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\xd3\xff\xc9\xff\x00\x00\x00\x00\x00\x00\x87\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\xb7\xff\xa3\xff\x00\x00\x00\x00\x00\x00\x9e\xff\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\xa2\xff\x8e\xff\xbe\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\xc7\xff\xd0\xff\xd5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\xbd\xff\xcc\xff\x00\x00\xce\xff\x00\x00\xcf\xff\xcd\xff\x88\xff\x89\xff\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x00\x00\xb6\xff\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x10\x00\x15\x00\x01\x00\x13\x00\x1b\x00\x12\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x09\x00\x14\x00\x20\x00\x1e\x00\x22\x00\x14\x00\x44\x00\x12\x00\x1b\x00\x24\x00\x25\x00\x43\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x10\x00\x30\x00\x09\x00\x1f\x00\x14\x00\x21\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x3e\x00\x10\x00\x39\x00\x01\x00\x13\x00\x40\x00\x37\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x43\x00\x44\x00\x45\x00\x1e\x00\x10\x00\x45\x00\x3d\x00\x43\x00\x2f\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x11\x00\x2c\x00\x39\x00\x14\x00\x2f\x00\x3a\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x43\x00\x38\x00\x39\x00\x42\x00\x3b\x00\x01\x00\x16\x00\x2f\x00\x3f\x00\x05\x00\x41\x00\x10\x00\x43\x00\x44\x00\x13\x00\x2d\x00\x0c\x00\x39\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x09\x00\x0a\x00\x01\x00\x1e\x00\x10\x00\x43\x00\x05\x00\x06\x00\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x20\x00\x2c\x00\x22\x00\x3c\x00\x10\x00\x3e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x14\x00\x38\x00\x39\x00\x10\x00\x3b\x00\x01\x00\x10\x00\x2f\x00\x3f\x00\x05\x00\x41\x00\x10\x00\x43\x00\x44\x00\x13\x00\x10\x00\x0c\x00\x39\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x03\x00\x2f\x00\x01\x00\x1e\x00\x07\x00\x43\x00\x05\x00\x06\x00\x10\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x10\x00\x02\x00\x10\x00\x04\x00\x3d\x00\x43\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x3b\x00\x15\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x43\x00\x44\x00\x1e\x00\x05\x00\x06\x00\x45\x00\x01\x00\x2f\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x45\x00\x39\x00\x0d\x00\x3b\x00\x0f\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x43\x00\x01\x00\x39\x00\x10\x00\x01\x00\x05\x00\x06\x00\x10\x00\x05\x00\x40\x00\x13\x00\x45\x00\x43\x00\x44\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1d\x00\x01\x00\x02\x00\x1e\x00\x04\x00\x05\x00\x45\x00\x01\x00\x43\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x09\x00\x0a\x00\x42\x00\x0d\x00\x14\x00\x0f\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x3b\x00\x09\x00\x0a\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x43\x00\x43\x00\x44\x00\x1e\x00\x01\x00\x09\x00\x0a\x00\x01\x00\x05\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0d\x00\x01\x00\x0f\x00\x10\x00\x45\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x37\x00\x43\x00\x45\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x43\x00\x44\x00\x1e\x00\x05\x00\x06\x00\x20\x00\x01\x00\x1d\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x1b\x00\x1b\x00\x0d\x00\x3a\x00\x0f\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x1d\x00\x39\x00\x13\x00\x1b\x00\x43\x00\x1b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x14\x00\x43\x00\x44\x00\x1e\x00\x1b\x00\x10\x00\x10\x00\x15\x00\x1b\x00\x24\x00\x25\x00\x10\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x1b\x00\x1b\x00\x1b\x00\x15\x00\x1b\x00\x1b\x00\x1b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x12\x00\x1b\x00\x39\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\x2f\x00\x2f\x00\x11\x00\x01\x00\x43\x00\x44\x00\x2f\x00\x05\x00\x1b\x00\x1b\x00\x39\x00\x39\x00\x3b\x00\x3b\x00\x14\x00\x0d\x00\x39\x00\x2e\x00\x3b\x00\x01\x00\x43\x00\x43\x00\x3e\x00\x05\x00\x01\x00\x02\x00\x43\x00\x04\x00\x05\x00\x11\x00\x42\x00\x0d\x00\x08\x00\x0f\x00\x10\x00\x1b\x00\x1b\x00\x1b\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x3c\x00\x11\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x11\x00\x05\x00\x11\x00\x3e\x00\x23\x00\x11\x00\x01\x00\x02\x00\x0c\x00\x04\x00\x05\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x11\x00\x14\x00\x14\x00\x11\x00\x11\x00\x11\x00\x01\x00\x02\x00\x43\x00\x04\x00\x05\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x12\x00\x1c\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x1c\x00\x04\x00\x05\x00\x01\x00\x1c\x00\x1c\x00\x3e\x00\x05\x00\x14\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x3e\x00\x3c\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\x01\x00\x14\x00\x14\x00\x3e\x00\x05\x00\x14\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x14\x00\x11\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x07\x00\x04\x00\x05\x00\x01\x00\x08\x00\x0b\x00\x00\x00\x05\x00\x09\x00\x01\x00\x02\x00\x00\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x08\x00\x0b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x0b\x00\x04\x00\x05\x00\x01\x00\x01\x00\x0b\x00\x00\x00\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\xff\xff\x11\x00\xff\xff\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\x11\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\xff\xff\xff\xff\x14\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x14\x00\x1a\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x14\x00\x05\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x14\x00\x0d\x00\xff\xff\x0f\x00\x10\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\x49\x00\xb7\x00\x1c\x00\x2c\x00\xc9\x00\x9f\x00\x7e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x7c\x00\xd8\x00\xa0\x00\x31\x00\xa1\x00\xfe\x00\x46\x00\x9f\x00\xfc\x00\x32\x00\x33\x00\x45\x00\x35\x00\x36\x00\x37\x00\x38\x00\x9c\x00\x63\x00\xb2\x00\x7c\x00\xb5\x00\xd8\x00\xb6\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xca\x00\x2b\x00\x41\x00\x1c\x00\x2c\x00\xb8\x00\x7a\x00\x8c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x45\x00\x46\x00\xff\xff\x31\x00\x63\x00\xff\xff\x9d\x00\x45\x00\x5d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xcf\x00\x39\x00\x5e\x00\xd0\x00\xb0\x00\x68\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x45\x00\x40\x00\x41\x00\x1c\x00\x42\x00\x1c\x00\xb4\x00\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\xb3\x00\x65\x00\x5e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x68\x00\x69\x00\x1c\x00\x31\x00\xa6\x00\x45\x00\x7c\x00\x7d\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xa0\x00\x39\x00\xa1\x00\x0e\x01\x63\x00\x0f\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xb1\x00\x40\x00\x41\x00\xad\x00\x42\x00\x1c\x00\xaa\x00\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\xa9\x00\x89\x00\x5e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x80\x00\x5d\x00\x1c\x00\x31\x00\x81\x00\x45\x00\x7c\x00\x91\x00\xa4\x00\x32\x00\x33\x00\x5e\x00\x35\x00\x36\x00\x37\x00\x38\x00\x5c\x00\x1d\x00\xa3\x00\x7f\x00\x9d\x00\x45\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x42\x00\xba\xff\x9e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x45\x00\x46\x00\x31\x00\x7c\x00\x85\x00\xff\xff\x1c\x00\x5d\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x9c\x00\xff\xff\x5e\x00\x58\x00\x5f\x00\x59\x00\x5a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x45\x00\x1c\x00\x41\x00\x94\x00\x1c\x00\x7c\x00\x83\x00\x2b\x00\x8b\x00\xba\xff\x2c\x00\xff\xff\x45\x00\x46\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x93\x00\x1c\x00\x1d\x00\x31\x00\x1e\x00\x1f\x00\xff\xff\x1c\x00\x45\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x68\x00\x82\x00\x1c\x00\x58\x00\x50\x00\x5f\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x42\x00\x68\x00\xda\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x45\x00\x45\x00\x46\x00\x31\x00\x1c\x00\x68\x00\xe8\x00\x1c\x00\x57\x00\x32\x00\x33\x00\x8a\x00\x35\x00\x36\x00\x37\x00\x38\x00\x58\x00\x1c\x00\x59\x00\xab\x00\xff\xff\x86\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x7a\x00\x45\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x45\x00\x46\x00\x31\x00\x7c\x00\xd9\x00\xe2\x00\x1c\x00\xe5\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x9c\x00\xe4\x00\xe3\x00\x58\x00\x68\x00\x59\x00\x99\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\xe1\x00\x41\x00\x2c\x00\xdd\x00\x45\x00\xdc\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xd8\x00\x45\x00\x46\x00\x31\x00\xd9\x00\x5c\x00\x5c\x00\xc5\x00\xd7\x00\x32\x00\x33\x00\x5c\x00\x35\x00\x36\x00\x37\x00\x38\x00\xef\x00\xed\x00\xcc\x00\xc3\x00\xc2\x00\xc1\x00\xeb\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x9f\x00\x02\x01\x41\x00\x1c\x00\x1d\x00\x00\x01\x1e\x00\x1f\x00\x5d\x00\x5d\x00\xff\x00\x1c\x00\x45\x00\x46\x00\x5d\x00\x57\x00\xfa\x00\xf9\x00\x5e\x00\x5e\x00\x5f\x00\x5f\x00\x9a\x00\x63\x00\x5e\x00\xf6\x00\x5f\x00\x1c\x00\x45\x00\x45\x00\xf7\x00\x57\x00\x1c\x00\x1d\x00\x45\x00\x1e\x00\x1f\x00\xf2\x00\x1c\x00\x58\x00\x1d\x01\x59\x00\xed\x00\x1c\x01\x1a\x01\x18\x01\x1c\x00\x1d\x00\x20\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1c\x00\x1d\x00\x20\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xbf\x00\x16\x01\x15\x01\x20\x00\x51\x00\x52\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x14\x01\x64\x00\x12\x01\x0c\x01\x08\x01\x07\x01\x1c\x00\x1d\x00\x1d\x01\x1e\x00\x1f\x00\x20\x00\x51\x00\xd5\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x20\x00\x51\x00\xd3\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x06\x01\x1e\x00\x1f\x00\x2b\x01\x2a\x01\x29\x01\x28\x01\x26\x01\x25\x01\x1c\x00\x1d\x00\x45\x00\x1e\x00\x1f\x00\x20\x00\x51\x00\xc6\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc7\x00\x20\x00\x54\x00\x23\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x21\x01\x1e\x00\x1f\x00\x1c\x00\x37\x01\x35\x01\x33\x01\x57\x00\x32\x01\x1c\x00\x1d\x00\x31\x01\x1e\x00\xae\x00\x20\x00\x60\x00\x61\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x46\x00\x20\x00\x30\x01\x2f\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x2c\x01\x1e\x00\x1f\x00\x1c\x00\x3e\x01\x3d\x01\x42\x01\x57\x00\x44\x01\x1c\x00\x1d\x00\x43\x01\x1e\x00\x1f\x00\x20\x00\x97\x00\x98\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa7\x00\x20\x00\x46\x01\x48\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x7a\x00\x1e\x00\x1f\x00\x1c\x00\x78\x00\x66\x00\x88\x00\x57\x00\x77\x00\x1c\x00\x1d\x00\x87\x00\x1e\x00\x1f\x00\x20\x00\x60\x00\x95\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x90\x00\x20\x00\x84\x00\xdf\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8f\x00\x1c\x00\x1d\x00\xde\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\xdd\x00\xe7\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xa4\x00\x96\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8e\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8d\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x94\x00\xcd\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xd4\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xd0\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xcc\x00\xca\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc5\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x04\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xc3\x00\xf3\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x03\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x02\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xfc\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xfa\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf7\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf4\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf0\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xef\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe6\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe5\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1a\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x18\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x16\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x10\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0c\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0a\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x09\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x08\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x26\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x23\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x21\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1e\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x35\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x33\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2d\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2c\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3b\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x38\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x37\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x40\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x44\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x46\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x4a\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\xbe\x00\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\xb9\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\xb8\x00\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x00\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x3e\x01\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x3a\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x39\x01\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x4b\x00\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\x24\x00\xd1\x00\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\x24\x00\xbd\x00\x00\x00\x4c\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x12\x01\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x00\x00\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\xbc\x00\x1c\x00\x1d\x00\x4c\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x4e\x00\x00\x00\x55\x00\x00\x00\x4c\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x56\x00\x21\x00\x4f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x4c\x00\x1e\x00\x1f\x00\x00\x00\xad\x00\x1c\x00\x1d\x00\x21\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x56\x00\x00\x00\x00\x00\x00\x00\x21\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x21\x00\xba\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x4c\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x21\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x21\x00\x47\x00\x00\x00\x00\x00\x00\x00\xaa\x00\xd2\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\xa6\x00\x57\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\xeb\x00\x00\x00\x9a\x00\x58\x00\x00\x00\x59\x00\xe9\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x00\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyReduceArr = Happy_Data_Array.array (26, 128) [+	(26 , happyReduce_26),+	(27 , happyReduce_27),+	(28 , happyReduce_28),+	(29 , happyReduce_29),+	(30 , happyReduce_30),+	(31 , happyReduce_31),+	(32 , happyReduce_32),+	(33 , happyReduce_33),+	(34 , happyReduce_34),+	(35 , happyReduce_35),+	(36 , happyReduce_36),+	(37 , happyReduce_37),+	(38 , happyReduce_38),+	(39 , happyReduce_39),+	(40 , happyReduce_40),+	(41 , happyReduce_41),+	(42 , happyReduce_42),+	(43 , happyReduce_43),+	(44 , happyReduce_44),+	(45 , happyReduce_45),+	(46 , happyReduce_46),+	(47 , happyReduce_47),+	(48 , happyReduce_48),+	(49 , happyReduce_49),+	(50 , happyReduce_50),+	(51 , happyReduce_51),+	(52 , happyReduce_52),+	(53 , happyReduce_53),+	(54 , happyReduce_54),+	(55 , happyReduce_55),+	(56 , happyReduce_56),+	(57 , happyReduce_57),+	(58 , happyReduce_58),+	(59 , happyReduce_59),+	(60 , happyReduce_60),+	(61 , happyReduce_61),+	(62 , happyReduce_62),+	(63 , happyReduce_63),+	(64 , happyReduce_64),+	(65 , happyReduce_65),+	(66 , happyReduce_66),+	(67 , happyReduce_67),+	(68 , happyReduce_68),+	(69 , happyReduce_69),+	(70 , happyReduce_70),+	(71 , happyReduce_71),+	(72 , happyReduce_72),+	(73 , happyReduce_73),+	(74 , happyReduce_74),+	(75 , happyReduce_75),+	(76 , happyReduce_76),+	(77 , happyReduce_77),+	(78 , happyReduce_78),+	(79 , happyReduce_79),+	(80 , happyReduce_80),+	(81 , happyReduce_81),+	(82 , happyReduce_82),+	(83 , happyReduce_83),+	(84 , happyReduce_84),+	(85 , happyReduce_85),+	(86 , happyReduce_86),+	(87 , happyReduce_87),+	(88 , happyReduce_88),+	(89 , happyReduce_89),+	(90 , happyReduce_90),+	(91 , happyReduce_91),+	(92 , happyReduce_92),+	(93 , happyReduce_93),+	(94 , happyReduce_94),+	(95 , happyReduce_95),+	(96 , happyReduce_96),+	(97 , happyReduce_97),+	(98 , happyReduce_98),+	(99 , happyReduce_99),+	(100 , happyReduce_100),+	(101 , happyReduce_101),+	(102 , happyReduce_102),+	(103 , happyReduce_103),+	(104 , happyReduce_104),+	(105 , happyReduce_105),+	(106 , happyReduce_106),+	(107 , happyReduce_107),+	(108 , happyReduce_108),+	(109 , happyReduce_109),+	(110 , happyReduce_110),+	(111 , happyReduce_111),+	(112 , happyReduce_112),+	(113 , happyReduce_113),+	(114 , happyReduce_114),+	(115 , happyReduce_115),+	(116 , happyReduce_116),+	(117 , happyReduce_117),+	(118 , happyReduce_118),+	(119 , happyReduce_119),+	(120 , happyReduce_120),+	(121 , happyReduce_121),+	(122 , happyReduce_122),+	(123 , happyReduce_123),+	(124 , happyReduce_124),+	(125 , happyReduce_125),+	(126 , happyReduce_126),+	(127 , happyReduce_127),+	(128 , happyReduce_128)+	]++happy_n_terms = 70 :: Prelude.Int+happy_n_nonterms = 29 :: Prelude.Int++happyReduce_26 = happySpecReduce_1  0# happyReduction_26+happyReduction_26 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn29+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), ((\(PT _ (TL s)) -> s) happy_var_1))+	)}++happyReduce_27 = happySpecReduce_1  1# happyReduction_27+happyReduction_27 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn30+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.VarIdentToken (tokenText happy_var_1))+	)}++happyReduce_28 = happySpecReduce_1  2# happyReduction_28+happyReduction_28 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn31+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.HoleIdentToken (tokenText happy_var_1))+	)}++happyReduce_29 = happySpecReduce_2  3# happyReduction_29+happyReduction_29 happy_x_2+	happy_x_1+	 =  case happyOut36 happy_x_1 of { (HappyWrap36 happy_var_1) -> +	case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> +	happyIn32+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Module (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))+	)}}++happyReduce_30 = happySpecReduce_1  4# happyReduction_30+happyReduction_30 happy_x_1+	 =  case happyOut31 happy_x_1 of { (HappyWrap31 happy_var_1) -> +	happyIn33+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.HoleIdent (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_31 = happySpecReduce_1  5# happyReduction_31+happyReduction_31 happy_x_1+	 =  case happyOut30 happy_x_1 of { (HappyWrap30 happy_var_1) -> +	happyIn34+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.VarIdent (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_32 = happySpecReduce_1  6# happyReduction_32+happyReduction_32 happy_x_1+	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> +	happyIn35+		 ((fst happy_var_1, (:[]) (snd happy_var_1))+	)}++happyReduce_33 = happySpecReduce_2  6# happyReduction_33+happyReduction_33 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> +	case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> +	happyIn35+		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))+	)}}++happyReduce_34 = happySpecReduce_3  7# happyReduction_34+happyReduction_34 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut37 happy_x_2 of { (HappyWrap37 happy_var_2) -> +	happyIn36+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LanguageDecl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_35 = happySpecReduce_1  8# happyReduction_35+happyReduction_35 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn37+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Rzk1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_36 = happyReduce 4# 9# happyReduction_36+happyReduction_36 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut29 happy_x_2 of { (HappyWrap29 happy_var_2) -> +	case happyOut29 happy_x_4 of { (HappyWrap29 happy_var_4) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_37 = happySpecReduce_2  9# happyReduction_37+happyReduction_37 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut29 happy_x_2 of { (HappyWrap29 happy_var_2) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_38 = happyReduce 4# 9# happyReduction_38+happyReduction_38 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_39 = happySpecReduce_2  9# happyReduction_39+happyReduction_39 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_40 = happySpecReduce_2  9# happyReduction_40+happyReduction_40 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_41 = happySpecReduce_2  9# happyReduction_41+happyReduction_41 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_42 = happyReduce 6# 9# happyReduction_42+happyReduction_42 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> +	case happyOut45 happy_x_4 of { (HappyWrap45 happy_var_4) -> +	case happyOut56 happy_x_6 of { (HappyWrap56 happy_var_6) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))+	) `HappyStk` happyRest}}}}}++happyReduce_43 = happyReduce 5# 9# happyReduction_43+happyReduction_43 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5))+	) `HappyStk` happyRest}}}}++happyReduce_44 = happyReduce 4# 9# happyReduction_44+happyReduction_44 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandAssume (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_45 = happyReduce 4# 9# happyReduction_45+happyReduction_45 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariable (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_46 = happyReduce 4# 9# happyReduction_46+happyReduction_46 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariables (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_47 = happyReduce 6# 9# happyReduction_47+happyReduction_47 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> +	case happyOut39 happy_x_4 of { (HappyWrap39 happy_var_4) -> +	case happyOut41 happy_x_6 of { (HappyWrap41 happy_var_6) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSection (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))+	) `HappyStk` happyRest}}}}++happyReduce_48 = happyReduce 8# 9# happyReduction_48+happyReduction_48 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> +	case happyOut45 happy_x_4 of { (HappyWrap45 happy_var_4) -> +	case happyOut56 happy_x_6 of { (HappyWrap56 happy_var_6) -> +	case happyOut56 happy_x_8 of { (HappyWrap56 happy_var_8) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))+	) `HappyStk` happyRest}}}}}}++happyReduce_49 = happyReduce 7# 9# happyReduction_49+happyReduction_49 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut56 happy_x_7 of { (HappyWrap56 happy_var_7) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))+	) `HappyStk` happyRest}}}}}++happyReduce_50 = happyReduce 8# 9# happyReduction_50+happyReduction_50 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> +	case happyOut45 happy_x_4 of { (HappyWrap45 happy_var_4) -> +	case happyOut56 happy_x_6 of { (HappyWrap56 happy_var_6) -> +	case happyOut56 happy_x_8 of { (HappyWrap56 happy_var_8) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))+	) `HappyStk` happyRest}}}}}}++happyReduce_51 = happyReduce 7# 9# happyReduction_51+happyReduction_51 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut56 happy_x_7 of { (HappyWrap56 happy_var_7) -> +	happyIn38+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))+	) `HappyStk` happyRest}}}}}++happyReduce_52 = happySpecReduce_0  10# happyReduction_52+happyReduction_52  =  happyIn39+		 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])+	)++happyReduce_53 = happySpecReduce_3  10# happyReduction_53+happyReduction_53 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> +	case happyOut39 happy_x_3 of { (HappyWrap39 happy_var_3) -> +	happyIn39+		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_54 = happyReduce 4# 11# happyReduction_54+happyReduction_54 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_3 of { (HappyWrap35 happy_var_3) -> +	happyIn40+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DeclUsedVars (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))+	) `HappyStk` happyRest}}++happyReduce_55 = happySpecReduce_0  11# happyReduction_55+happyReduction_55  =  happyIn40+		 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.noDeclUsedVars Language.Rzk.Syntax.Abs.BNFC'NoPosition)+	)++happyReduce_56 = happySpecReduce_0  12# happyReduction_56+happyReduction_56  =  happyIn41+		 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoSectionName Language.Rzk.Syntax.Abs.BNFC'NoPosition)+	)++happyReduce_57 = happySpecReduce_1  12# happyReduction_57+happyReduction_57 happy_x_1+	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> +	happyIn41+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.SomeSectionName (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_58 = happySpecReduce_1  13# happyReduction_58+happyReduction_58 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn42+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternWildcard (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_59 = happySpecReduce_1  13# happyReduction_59+happyReduction_59 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn42+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_60 = happySpecReduce_1  13# happyReduction_60+happyReduction_60 happy_x_1+	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> +	happyIn42+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.PatternVar (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_61 = happyReduce 5# 13# happyReduction_61+happyReduction_61 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> +	case happyOut42 happy_x_4 of { (HappyWrap42 happy_var_4) -> +	happyIn42+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_62 = happySpecReduce_1  14# happyReduction_62+happyReduction_62 happy_x_1+	 =  case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> +	happyIn43+		 ((fst happy_var_1, (:[]) (snd happy_var_1))+	)}++happyReduce_63 = happySpecReduce_2  14# happyReduction_63+happyReduction_63 happy_x_2+	happy_x_1+	 =  case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> +	case happyOut43 happy_x_2 of { (HappyWrap43 happy_var_2) -> +	happyIn43+		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))+	)}}++happyReduce_64 = happySpecReduce_1  15# happyReduction_64+happyReduction_64 happy_x_1+	 =  case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> +	happyIn44+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamPattern (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_65 = happyReduce 5# 15# happyReduction_65+happyReduction_65 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut43 happy_x_2 of { (HappyWrap43 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn44+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_66 = happyReduce 7# 15# happyReduction_66+happyReduction_66 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	case happyOut56 happy_x_6 of { (HappyWrap56 happy_var_6) -> +	happyIn44+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))+	) `HappyStk` happyRest}}}}++happyReduce_67 = happySpecReduce_1  16# happyReduction_67+happyReduction_67 happy_x_1+	 =  case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> +	happyIn45+		 ((fst happy_var_1, (:[]) (snd happy_var_1))+	)}++happyReduce_68 = happySpecReduce_2  16# happyReduction_68+happyReduction_68 happy_x_2+	happy_x_1+	 =  case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> +	case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> +	happyIn45+		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))+	)}}++happyReduce_69 = happySpecReduce_1  17# happyReduction_69+happyReduction_69 happy_x_1+	 =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> +	happyIn46+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamType (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_70 = happyReduce 5# 17# happyReduction_70+happyReduction_70 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn46+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamWildcardType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_4))+	) `HappyStk` happyRest}}++happyReduce_71 = happyReduce 5# 17# happyReduction_71+happyReduction_71 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn46+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamVarType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_72 = happyReduce 5# 17# happyReduction_72+happyReduction_72 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn46+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.paramVarType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_73 = happyReduce 9# 17# happyReduction_73+happyReduction_73 (happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_3 of { (HappyWrap42 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut56 happy_x_8 of { (HappyWrap56 happy_var_8) -> +	happyIn46+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamVarShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))+	) `HappyStk` happyRest}}}}++happyReduce_74 = happyReduce 7# 17# happyReduction_74+happyReduction_74 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	case happyOut56 happy_x_6 of { (HappyWrap56 happy_var_6) -> +	happyIn46+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.paramVarShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))+	) `HappyStk` happyRest}}}}++happyReduce_75 = happySpecReduce_3  18# happyReduction_75+happyReduction_75 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> +	case happyOut56 happy_x_3 of { (HappyWrap56 happy_var_3) -> +	happyIn47+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_76 = happySpecReduce_1  19# happyReduction_76+happyReduction_76 happy_x_1+	 =  case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> +	happyIn48+		 ((fst happy_var_1, (:[]) (snd happy_var_1))+	)}++happyReduce_77 = happySpecReduce_3  19# happyReduction_77+happyReduction_77 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> +	case happyOut48 happy_x_3 of { (HappyWrap48 happy_var_3) -> +	happyIn48+		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_78 = happySpecReduce_1  20# happyReduction_78+happyReduction_78 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_79 = happySpecReduce_1  20# happyReduction_79+happyReduction_79 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_80 = happySpecReduce_1  20# happyReduction_80+happyReduction_80 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_81 = happySpecReduce_1  20# happyReduction_81+happyReduction_81 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_82 = happySpecReduce_1  20# happyReduction_82+happyReduction_82 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_83 = happySpecReduce_1  20# happyReduction_83+happyReduction_83 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_84 = happySpecReduce_1  20# happyReduction_84+happyReduction_84 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_85 = happySpecReduce_1  20# happyReduction_85+happyReduction_85 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_86 = happySpecReduce_1  20# happyReduction_86+happyReduction_86 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_87 = happySpecReduce_1  20# happyReduction_87+happyReduction_87 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_88 = happySpecReduce_1  20# happyReduction_88+happyReduction_88 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_89 = happyReduce 4# 20# happyReduction_89+happyReduction_89 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut48 happy_x_3 of { (HappyWrap48 happy_var_3) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3))+	) `HappyStk` happyRest}}++happyReduce_90 = happyReduce 10# 20# happyReduction_90+happyReduction_90 (happy_x_10 `HappyStk`+	happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_3 of { (HappyWrap56 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut56 happy_x_7 of { (HappyWrap56 happy_var_7) -> +	case happyOut56 happy_x_9 of { (HappyWrap56 happy_var_9) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.recOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))+	) `HappyStk` happyRest}}}}}++happyReduce_91 = happySpecReduce_1  20# happyReduction_91+happyReduction_91 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_92 = happyReduce 5# 20# happyReduction_92+happyReduction_92 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.typeExtension (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_93 = happyReduce 5# 20# happyReduction_93+happyReduction_93 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_94 = happySpecReduce_1  20# happyReduction_94+happyReduction_94 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Unit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_95 = happySpecReduce_1  20# happyReduction_95+happyReduction_95 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))+	)}++happyReduce_96 = happySpecReduce_3  20# happyReduction_96+happyReduction_96 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_97 = happyReduce 5# 20# happyReduction_97+happyReduction_97 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_98 = happyReduce 14# 20# happyReduction_98+happyReduction_98 (happy_x_14 `HappyStk`+	happy_x_13 `HappyStk`+	happy_x_12 `HappyStk`+	happy_x_11 `HappyStk`+	happy_x_10 `HappyStk`+	happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_3 of { (HappyWrap56 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut56 happy_x_7 of { (HappyWrap56 happy_var_7) -> +	case happyOut56 happy_x_9 of { (HappyWrap56 happy_var_9) -> +	case happyOut56 happy_x_11 of { (HappyWrap56 happy_var_11) -> +	case happyOut56 happy_x_13 of { (HappyWrap56 happy_var_13) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.IdJ (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11) (snd happy_var_13))+	) `HappyStk` happyRest}}}}}}}++happyReduce_99 = happySpecReduce_1  20# happyReduction_99+happyReduction_99 happy_x_1+	 =  case happyOut33 happy_x_1 of { (HappyWrap33 happy_var_1) -> +	happyIn49+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_100 = happySpecReduce_1  20# happyReduction_100+happyReduction_100 happy_x_1+	 =  case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> +	happyIn49+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1))+	)}++happyReduce_101 = happySpecReduce_3  20# happyReduction_101+happyReduction_101 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> +	happyIn49+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2))+	)}}++happyReduce_102 = happySpecReduce_3  21# happyReduction_102+happyReduction_102 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> +	case happyOut55 happy_x_3 of { (HappyWrap55 happy_var_3) -> +	happyIn50+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_103 = happySpecReduce_1  21# happyReduction_103+happyReduction_103 happy_x_1+	 =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> +	happyIn50+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_104 = happySpecReduce_3  22# happyReduction_104+happyReduction_104 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> +	case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> +	happyIn51+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_105 = happySpecReduce_3  22# happyReduction_105+happyReduction_105 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> +	case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> +	happyIn51+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_106 = happySpecReduce_1  22# happyReduction_106+happyReduction_106 happy_x_1+	 =  case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> +	happyIn51+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_107 = happySpecReduce_3  23# happyReduction_107+happyReduction_107 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> +	case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> +	happyIn52+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_108 = happySpecReduce_1  23# happyReduction_108+happyReduction_108 happy_x_1+	 =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> +	happyIn52+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_109 = happySpecReduce_3  24# happyReduction_109+happyReduction_109 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> +	case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> +	happyIn53+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_110 = happySpecReduce_1  24# happyReduction_110+happyReduction_110 happy_x_1+	 =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> +	happyIn53+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_111 = happySpecReduce_3  25# happyReduction_111+happyReduction_111 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> +	case happyOut54 happy_x_3 of { (HappyWrap54 happy_var_3) -> +	happyIn54+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_112 = happyReduce 8# 25# happyReduction_112+happyReduction_112 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_3 of { (HappyWrap42 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut54 happy_x_8 of { (HappyWrap54 happy_var_8) -> +	happyIn54+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))+	) `HappyStk` happyRest}}}}++happyReduce_113 = happyReduce 5# 25# happyReduction_113+happyReduction_113 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> +	case happyOut56 happy_x_3 of { (HappyWrap56 happy_var_3) -> +	case happyOut53 happy_x_5 of { (HappyWrap53 happy_var_5) -> +	happyIn54+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeId (fst happy_var_1) (snd happy_var_1) (snd happy_var_3) (snd happy_var_5))+	) `HappyStk` happyRest}}}++happyReduce_114 = happySpecReduce_3  25# happyReduction_114+happyReduction_114 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> +	case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> +	happyIn54+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_115 = happyReduce 4# 25# happyReduction_115+happyReduction_115 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> +	case happyOut54 happy_x_4 of { (HappyWrap54 happy_var_4) -> +	happyIn54+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))+	) `HappyStk` happyRest}}}++happyReduce_116 = happySpecReduce_1  25# happyReduction_116+happyReduction_116 happy_x_1+	 =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> +	happyIn54+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_117 = happySpecReduce_3  25# happyReduction_117+happyReduction_117 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> +	case happyOut54 happy_x_3 of { (HappyWrap54 happy_var_3) -> +	happyIn54+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.unicode_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_118 = happyReduce 8# 25# happyReduction_118+happyReduction_118 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_3 of { (HappyWrap42 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut54 happy_x_8 of { (HappyWrap54 happy_var_8) -> +	happyIn54+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))+	) `HappyStk` happyRest}}}}++happyReduce_119 = happyReduce 8# 25# happyReduction_119+happyReduction_119 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_3 of { (HappyWrap42 happy_var_3) -> +	case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> +	case happyOut54 happy_x_8 of { (HappyWrap54 happy_var_8) -> +	happyIn54+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))+	) `HappyStk` happyRest}}}}++happyReduce_120 = happyReduce 4# 26# happyReduction_120+happyReduction_120 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> +	case happyOut48 happy_x_3 of { (HappyWrap48 happy_var_3) -> +	happyIn55+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	) `HappyStk` happyRest}}++happyReduce_121 = happySpecReduce_2  26# happyReduction_121+happyReduction_121 happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> +	case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> +	happyIn55+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))+	)}}++happyReduce_122 = happySpecReduce_2  26# happyReduction_122+happyReduction_122 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> +	happyIn55+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_123 = happySpecReduce_2  26# happyReduction_123+happyReduction_123 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> +	happyIn55+		 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))+	)}}++happyReduce_124 = happySpecReduce_1  26# happyReduction_124+happyReduction_124 happy_x_1+	 =  case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> +	happyIn55+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_125 = happySpecReduce_3  27# happyReduction_125+happyReduction_125 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> +	case happyOut54 happy_x_3 of { (HappyWrap54 happy_var_3) -> +	happyIn56+		 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))+	)}}++happyReduce_126 = happySpecReduce_1  27# happyReduction_126+happyReduction_126 happy_x_1+	 =  case happyOut54 happy_x_1 of { (HappyWrap54 happy_var_1) -> +	happyIn56+		 ((fst happy_var_1, (snd happy_var_1))+	)}++happyReduce_127 = happySpecReduce_1  28# happyReduction_127+happyReduction_127 happy_x_1+	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> +	happyIn57+		 ((fst happy_var_1, (:[]) (snd happy_var_1))+	)}++happyReduce_128 = happySpecReduce_3  28# happyReduction_128+happyReduction_128 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> +	case happyOut57 happy_x_3 of { (HappyWrap57 happy_var_3) -> +	happyIn57+		 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))+	)}}++happyNewToken action sts stk [] =+	happyDoAction 69# notHappyAtAll action sts stk []++happyNewToken action sts stk (tk:tks) =+	let cont i = happyDoAction i tk action sts stk tks in+	case tk of {+	PT _ (TS _ 1) -> cont 1#;+	PT _ (TS _ 2) -> cont 2#;+	PT _ (TS _ 3) -> cont 3#;+	PT _ (TS _ 4) -> cont 4#;+	PT _ (TS _ 5) -> cont 5#;+	PT _ (TS _ 6) -> cont 6#;+	PT _ (TS _ 7) -> cont 7#;+	PT _ (TS _ 8) -> cont 8#;+	PT _ (TS _ 9) -> cont 9#;+	PT _ (TS _ 10) -> cont 10#;+	PT _ (TS _ 11) -> cont 11#;+	PT _ (TS _ 12) -> cont 12#;+	PT _ (TS _ 13) -> cont 13#;+	PT _ (TS _ 14) -> cont 14#;+	PT _ (TS _ 15) -> cont 15#;+	PT _ (TS _ 16) -> cont 16#;+	PT _ (TS _ 17) -> cont 17#;+	PT _ (TS _ 18) -> cont 18#;+	PT _ (TS _ 19) -> cont 19#;+	PT _ (TS _ 20) -> cont 20#;+	PT _ (TS _ 21) -> cont 21#;+	PT _ (TS _ 22) -> cont 22#;+	PT _ (TS _ 23) -> cont 23#;+	PT _ (TS _ 24) -> cont 24#;+	PT _ (TS _ 25) -> cont 25#;+	PT _ (TS _ 26) -> cont 26#;+	PT _ (TS _ 27) -> cont 27#;+	PT _ (TS _ 28) -> cont 28#;+	PT _ (TS _ 29) -> cont 29#;+	PT _ (TS _ 30) -> cont 30#;+	PT _ (TS _ 31) -> cont 31#;+	PT _ (TS _ 32) -> cont 32#;+	PT _ (TS _ 33) -> cont 33#;+	PT _ (TS _ 34) -> cont 34#;+	PT _ (TS _ 35) -> cont 35#;+	PT _ (TS _ 36) -> cont 36#;+	PT _ (TS _ 37) -> cont 37#;+	PT _ (TS _ 38) -> cont 38#;+	PT _ (TS _ 39) -> cont 39#;+	PT _ (TS _ 40) -> cont 40#;+	PT _ (TS _ 41) -> cont 41#;+	PT _ (TS _ 42) -> cont 42#;+	PT _ (TS _ 43) -> cont 43#;+	PT _ (TS _ 44) -> cont 44#;+	PT _ (TS _ 45) -> cont 45#;+	PT _ (TS _ 46) -> cont 46#;+	PT _ (TS _ 47) -> cont 47#;+	PT _ (TS _ 48) -> cont 48#;+	PT _ (TS _ 49) -> cont 49#;+	PT _ (TS _ 50) -> cont 50#;+	PT _ (TS _ 51) -> cont 51#;+	PT _ (TS _ 52) -> cont 52#;+	PT _ (TS _ 53) -> cont 53#;+	PT _ (TS _ 54) -> cont 54#;+	PT _ (TS _ 55) -> cont 55#;+	PT _ (TS _ 56) -> cont 56#;+	PT _ (TS _ 57) -> cont 57#;+	PT _ (TS _ 58) -> cont 58#;+	PT _ (TS _ 59) -> cont 59#;+	PT _ (TS _ 60) -> cont 60#;+	PT _ (TS _ 61) -> cont 61#;+	PT _ (TS _ 62) -> cont 62#;+	PT _ (TS _ 63) -> cont 63#;+	PT _ (TS _ 64) -> cont 64#;+	PT _ (TS _ 65) -> cont 65#;+	PT _ (TL _) -> cont 66#;+	PT _ (T_VarIdentToken _) -> cont 67#;+	PT _ (T_HoleIdentToken _) -> cont 68#;+	_ -> happyError' ((tk:tks), [])+	}++happyError_ explist 69# tk tks = happyError' (tks, explist)+happyError_ explist _ tk tks = happyError' ((tk:tks), explist)++happyThen :: () => Err a -> (a -> Err b) -> Err b+happyThen = ((>>=))+happyReturn :: () => a -> Err a+happyReturn = (return)+happyThen1 m k tks = ((>>=)) m (\a -> k a tks)+happyReturn1 :: () => a -> b -> Err a+happyReturn1 = \a tks -> (return) a+happyError' :: () => ([(Token)], [Prelude.String]) -> Err a+happyError' = (\(tokens, _) -> happyError tokens)+pModule_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (let {(HappyWrap32 x') = happyOut32 x} in x'))++pHoleIdent_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 1# tks) (\x -> happyReturn (let {(HappyWrap33 x') = happyOut33 x} in x'))++pVarIdent_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (let {(HappyWrap34 x') = happyOut34 x} in x'))++pListVarIdent_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (let {(HappyWrap35 x') = happyOut35 x} in x'))++pLanguageDecl_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (let {(HappyWrap36 x') = happyOut36 x} in x'))++pLanguage_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (let {(HappyWrap37 x') = happyOut37 x} in x'))++pCommand_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (let {(HappyWrap38 x') = happyOut38 x} in x'))++pListCommand_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (let {(HappyWrap39 x') = happyOut39 x} in x'))++pDeclUsedVars_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (let {(HappyWrap40 x') = happyOut40 x} in x'))++pSectionName_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (let {(HappyWrap41 x') = happyOut41 x} in x'))++pPattern_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (let {(HappyWrap42 x') = happyOut42 x} in x'))++pListPattern_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 11# tks) (\x -> happyReturn (let {(HappyWrap43 x') = happyOut43 x} in x'))++pParam_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 12# tks) (\x -> happyReturn (let {(HappyWrap44 x') = happyOut44 x} in x'))++pListParam_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 13# tks) (\x -> happyReturn (let {(HappyWrap45 x') = happyOut45 x} in x'))++pParamDecl_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 14# tks) (\x -> happyReturn (let {(HappyWrap46 x') = happyOut46 x} in x'))++pRestriction_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 15# tks) (\x -> happyReturn (let {(HappyWrap47 x') = happyOut47 x} in x'))++pListRestriction_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 16# tks) (\x -> happyReturn (let {(HappyWrap48 x') = happyOut48 x} in x'))++pTerm7_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 17# tks) (\x -> happyReturn (let {(HappyWrap49 x') = happyOut49 x} in x'))++pTerm5_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 18# tks) (\x -> happyReturn (let {(HappyWrap50 x') = happyOut50 x} in x'))++pTerm4_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 19# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x'))++pTerm3_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 20# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x'))++pTerm2_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 21# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x'))++pTerm1_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 22# tks) (\x -> happyReturn (let {(HappyWrap54 x') = happyOut54 x} in x'))++pTerm6_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 23# tks) (\x -> happyReturn (let {(HappyWrap55 x') = happyOut55 x} in x'))++pTerm_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 24# tks) (\x -> happyReturn (let {(HappyWrap56 x') = happyOut56 x} in x'))++pListTerm_internal tks = happySomeParser where+ happySomeParser = happyThen (happyParse 25# tks) (\x -> happyReturn (let {(HappyWrap57 x') = happyOut57 x} in x'))++happySeq = happyDontSeq+++type Err = Either String++happyError :: [Token] -> Err a+happyError ts = Left $+  "syntax error at " ++ tokenPos ts +++  case ts of+    []      -> []+    [Err _] -> " due to lexer error"+    t:_     -> " before `" ++ (prToken t) ++ "'"++myLexer :: String -> [Token]+myLexer = tokens++-- Entrypoints++pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module+pModule = fmap snd . pModule_internal++pHoleIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.HoleIdent+pHoleIdent = fmap snd . pHoleIdent_internal++pVarIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.VarIdent+pVarIdent = fmap snd . pVarIdent_internal  pListVarIdent :: [Token] -> Err [Language.Rzk.Syntax.Abs.VarIdent] pListVarIdent = fmap snd . pListVarIdent_internal
src/Language/Rzk/Syntax/Par.y view
@@ -9,6 +9,8 @@   ( happyError   , myLexer   , pModule+  , pHoleIdent+  , pVarIdent   , pListVarIdent   , pLanguageDecl   , pLanguage@@ -42,6 +44,8 @@ }  %name pModule_internal Module+%name pHoleIdent_internal HoleIdent+%name pVarIdent_internal VarIdent %name pListVarIdent_internal ListVarIdent %name pLanguageDecl_internal LanguageDecl %name pLanguage_internal Language@@ -69,88 +73,98 @@ %monad { Err } { (>>=) } { return } %tokentype {Token} %token-  '#assume'       { PT _ (TS _ 1)        }-  '#check'        { PT _ (TS _ 2)        }-  '#compute'      { PT _ (TS _ 3)        }-  '#compute-nf'   { PT _ (TS _ 4)        }-  '#compute-whnf' { PT _ (TS _ 5)        }-  '#def'          { PT _ (TS _ 6)        }-  '#define'       { PT _ (TS _ 7)        }-  '#end'          { PT _ (TS _ 8)        }-  '#lang'         { PT _ (TS _ 9)        }-  '#postulate'    { PT _ (TS _ 10)       }-  '#section'      { PT _ (TS _ 11)       }-  '#set-option'   { PT _ (TS _ 12)       }-  '#unset-option' { PT _ (TS _ 13)       }-  '#variable'     { PT _ (TS _ 14)       }-  '#variables'    { PT _ (TS _ 15)       }-  '('             { PT _ (TS _ 16)       }-  ')'             { PT _ (TS _ 17)       }-  '*'             { PT _ (TS _ 18)       }-  '*_1'           { PT _ (TS _ 19)       }-  ','             { PT _ (TS _ 20)       }-  '->'            { PT _ (TS _ 21)       }-  '/\\'           { PT _ (TS _ 22)       }-  '0_2'           { PT _ (TS _ 23)       }-  '1'             { PT _ (TS _ 24)       }-  '1_2'           { PT _ (TS _ 25)       }-  '2'             { PT _ (TS _ 26)       }-  ':'             { PT _ (TS _ 27)       }-  ':='            { PT _ (TS _ 28)       }-  ';'             { PT _ (TS _ 29)       }-  '<'             { PT _ (TS _ 30)       }-  '<='            { PT _ (TS _ 31)       }-  '='             { PT _ (TS _ 32)       }-  '==='           { PT _ (TS _ 33)       }-  '=_{'           { PT _ (TS _ 34)       }-  '>'             { PT _ (TS _ 35)       }-  'BOT'           { PT _ (TS _ 36)       }-  'CUBE'          { PT _ (TS _ 37)       }-  'Sigma'         { PT _ (TS _ 38)       }-  'TOP'           { PT _ (TS _ 39)       }-  'TOPE'          { PT _ (TS _ 40)       }-  'U'             { PT _ (TS _ 41)       }-  '['             { PT _ (TS _ 42)       }-  '\\'            { PT _ (TS _ 43)       }-  '\\/'           { PT _ (TS _ 44)       }-  ']'             { PT _ (TS _ 45)       }-  '_'             { PT _ (TS _ 46)       }-  'as'            { PT _ (TS _ 47)       }-  'first'         { PT _ (TS _ 48)       }-  'idJ'           { PT _ (TS _ 49)       }-  'recBOT'        { PT _ (TS _ 50)       }-  'recOR'         { PT _ (TS _ 51)       }-  'refl'          { PT _ (TS _ 52)       }-  'refl_{'        { PT _ (TS _ 53)       }-  'rzk-1'         { PT _ (TS _ 54)       }-  'second'        { PT _ (TS _ 55)       }-  'uses'          { PT _ (TS _ 56)       }-  '{'             { PT _ (TS _ 57)       }-  '|'             { PT _ (TS _ 58)       }-  '|->'           { PT _ (TS _ 59)       }-  '}'             { PT _ (TS _ 60)       }-  'Σ'             { PT _ (TS _ 61)       }-  '→'             { PT _ (TS _ 62)       }-  '∑'             { PT _ (TS _ 63)       }-  L_quoted        { PT _ (TL _)          }-  L_VarIdent      { PT _ (T_VarIdent _)  }-  L_HoleIdent     { PT _ (T_HoleIdent _) }+  '#assume'        { PT _ (TS _ 1)             }+  '#check'         { PT _ (TS _ 2)             }+  '#compute'       { PT _ (TS _ 3)             }+  '#compute-nf'    { PT _ (TS _ 4)             }+  '#compute-whnf'  { PT _ (TS _ 5)             }+  '#def'           { PT _ (TS _ 6)             }+  '#define'        { PT _ (TS _ 7)             }+  '#end'           { PT _ (TS _ 8)             }+  '#lang'          { PT _ (TS _ 9)             }+  '#postulate'     { PT _ (TS _ 10)            }+  '#section'       { PT _ (TS _ 11)            }+  '#set-option'    { PT _ (TS _ 12)            }+  '#unset-option'  { PT _ (TS _ 13)            }+  '#variable'      { PT _ (TS _ 14)            }+  '#variables'     { PT _ (TS _ 15)            }+  '('              { PT _ (TS _ 16)            }+  ')'              { PT _ (TS _ 17)            }+  '*'              { PT _ (TS _ 18)            }+  '*_1'            { PT _ (TS _ 19)            }+  ','              { PT _ (TS _ 20)            }+  '->'             { PT _ (TS _ 21)            }+  '/\\'            { PT _ (TS _ 22)            }+  '0_2'            { PT _ (TS _ 23)            }+  '1'              { PT _ (TS _ 24)            }+  '1_2'            { PT _ (TS _ 25)            }+  '2'              { PT _ (TS _ 26)            }+  ':'              { PT _ (TS _ 27)            }+  ':='             { PT _ (TS _ 28)            }+  ';'              { PT _ (TS _ 29)            }+  '<'              { PT _ (TS _ 30)            }+  '<='             { PT _ (TS _ 31)            }+  '='              { PT _ (TS _ 32)            }+  '==='            { PT _ (TS _ 33)            }+  '=_{'            { PT _ (TS _ 34)            }+  '>'              { PT _ (TS _ 35)            }+  'BOT'            { PT _ (TS _ 36)            }+  'CUBE'           { PT _ (TS _ 37)            }+  'Sigma'          { PT _ (TS _ 38)            }+  'TOP'            { PT _ (TS _ 39)            }+  'TOPE'           { PT _ (TS _ 40)            }+  'U'              { PT _ (TS _ 41)            }+  'Unit'           { PT _ (TS _ 42)            }+  '['              { PT _ (TS _ 43)            }+  '\\'             { PT _ (TS _ 44)            }+  '\\/'            { PT _ (TS _ 45)            }+  ']'              { PT _ (TS _ 46)            }+  '_'              { PT _ (TS _ 47)            }+  'as'             { PT _ (TS _ 48)            }+  'first'          { PT _ (TS _ 49)            }+  'idJ'            { PT _ (TS _ 50)            }+  'recBOT'         { PT _ (TS _ 51)            }+  'recOR'          { PT _ (TS _ 52)            }+  'refl'           { PT _ (TS _ 53)            }+  'refl_{'         { PT _ (TS _ 54)            }+  'rzk-1'          { PT _ (TS _ 55)            }+  'second'         { PT _ (TS _ 56)            }+  'unit'           { PT _ (TS _ 57)            }+  'uses'           { PT _ (TS _ 58)            }+  '{'              { PT _ (TS _ 59)            }+  '|'              { PT _ (TS _ 60)            }+  '|->'            { PT _ (TS _ 61)            }+  '}'              { PT _ (TS _ 62)            }+  'Σ'              { PT _ (TS _ 63)            }+  '→'              { PT _ (TS _ 64)            }+  '∑'              { PT _ (TS _ 65)            }+  L_quoted         { PT _ (TL _)               }+  L_VarIdentToken  { PT _ (T_VarIdentToken _)  }+  L_HoleIdentToken { PT _ (T_HoleIdentToken _) }  %%  String  :: { (Language.Rzk.Syntax.Abs.BNFC'Position, String) } String   : L_quoted { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), ((\(PT _ (TL s)) -> s) $1)) } -VarIdent :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent) }-VarIdent  : L_VarIdent { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.VarIdent (tokenText $1)) }+VarIdentToken :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdentToken) }+VarIdentToken  : L_VarIdentToken { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.VarIdentToken (tokenText $1)) } -HoleIdent :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent) }-HoleIdent  : L_HoleIdent { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.HoleIdent (tokenText $1)) }+HoleIdentToken :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdentToken) }+HoleIdentToken  : L_HoleIdentToken { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.HoleIdentToken (tokenText $1)) }  Module :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module) } Module   : LanguageDecl ListCommand { (fst $1, Language.Rzk.Syntax.Abs.Module (fst $1) (snd $1) (snd $2)) } +HoleIdent :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent) }+HoleIdent+  : HoleIdentToken { (fst $1, Language.Rzk.Syntax.Abs.HoleIdent (fst $1) (snd $1)) }++VarIdent :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent) }+VarIdent+  : VarIdentToken { (fst $1, Language.Rzk.Syntax.Abs.VarIdent (fst $1) (snd $1)) }+ ListVarIdent :: { (Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent]) } ListVarIdent   : VarIdent { (fst $1, (:[]) (snd $1)) }@@ -201,6 +215,7 @@ Pattern :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern) } Pattern   : '_' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.PatternWildcard (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) }+  | 'unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.PatternUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) }   | VarIdent { (fst $1, Language.Rzk.Syntax.Abs.PatternVar (fst $1) (snd $1)) }   | '(' Pattern ',' Pattern ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } @@ -253,8 +268,10 @@   | 'recBOT' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) }   | 'recOR' '(' ListRestriction ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3)) }   | 'recOR' '(' Term ',' Term ',' Term ',' Term ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.recOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $7) (snd $9)) }+  | 'Unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) }   | '<' ParamDecl '->' Term '>' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.typeExtension (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) }   | '(' Term ',' Term ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) }+  | 'unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Unit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) }   | 'refl' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) }   | 'refl_{' Term '}' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) }   | 'refl_{' Term ':' Term '}' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) }@@ -333,6 +350,12 @@  pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module pModule = fmap snd . pModule_internal++pHoleIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.HoleIdent+pHoleIdent = fmap snd . pHoleIdent_internal++pVarIdent :: [Token] -> Err Language.Rzk.Syntax.Abs.VarIdent+pVarIdent = fmap snd . pVarIdent_internal  pListVarIdent :: [Token] -> Err [Language.Rzk.Syntax.Abs.VarIdent] pListVarIdent = fmap snd . pListVarIdent_internal
src/Language/Rzk/Syntax/Print.hs view
@@ -135,15 +135,23 @@ instance Print Double where   prt _ x = doc (shows x) -instance Print Language.Rzk.Syntax.Abs.VarIdent where-  prt _ (Language.Rzk.Syntax.Abs.VarIdent i) = doc $ showString i-instance Print Language.Rzk.Syntax.Abs.HoleIdent where-  prt _ (Language.Rzk.Syntax.Abs.HoleIdent i) = doc $ showString i+instance Print Language.Rzk.Syntax.Abs.VarIdentToken where+  prt _ (Language.Rzk.Syntax.Abs.VarIdentToken i) = doc $ showString i+instance Print Language.Rzk.Syntax.Abs.HoleIdentToken where+  prt _ (Language.Rzk.Syntax.Abs.HoleIdentToken i) = doc $ showString i instance Print (Language.Rzk.Syntax.Abs.Module' a) where   prt i = \case     Language.Rzk.Syntax.Abs.Module _ languagedecl commands -> prPrec i 0 (concatD [prt 0 languagedecl, prt 0 commands]) -instance Print [Language.Rzk.Syntax.Abs.VarIdent] where+instance Print (Language.Rzk.Syntax.Abs.HoleIdent' a) where+  prt i = \case+    Language.Rzk.Syntax.Abs.HoleIdent _ holeidenttoken -> prPrec i 0 (concatD [prt 0 holeidenttoken])++instance Print (Language.Rzk.Syntax.Abs.VarIdent' a) where+  prt i = \case+    Language.Rzk.Syntax.Abs.VarIdent _ varidenttoken -> prPrec i 0 (concatD [prt 0 varidenttoken])++instance Print [Language.Rzk.Syntax.Abs.VarIdent' a] where   prt _ []     = concatD []   prt _ [x]    = concatD [prt 0 x]   prt _ (x:xs) = concatD [prt 0 x, prt 0 xs]@@ -185,6 +193,7 @@ instance Print (Language.Rzk.Syntax.Abs.Pattern' a) where   prt i = \case     Language.Rzk.Syntax.Abs.PatternWildcard _ -> prPrec i 0 (concatD [doc (showString "_")])+    Language.Rzk.Syntax.Abs.PatternUnit _ -> prPrec i 0 (concatD [doc (showString "unit")])     Language.Rzk.Syntax.Abs.PatternVar _ varident -> prPrec i 0 (concatD [prt 0 varident])     Language.Rzk.Syntax.Abs.PatternPair _ pattern_1 pattern_2 -> prPrec i 0 (concatD [doc (showString "("), prt 0 pattern_1, doc (showString ","), prt 0 pattern_2, doc (showString ")")]) @@ -241,6 +250,7 @@     Language.Rzk.Syntax.Abs.RecOr _ restrictions -> prPrec i 7 (concatD [doc (showString "recOR"), doc (showString "("), prt 0 restrictions, doc (showString ")")])     Language.Rzk.Syntax.Abs.TypeFun _ paramdecl term -> prPrec i 1 (concatD [prt 0 paramdecl, doc (showString "->"), prt 1 term])     Language.Rzk.Syntax.Abs.TypeSigma _ pattern_ term1 term2 -> prPrec i 1 (concatD [doc (showString "Sigma"), doc (showString "("), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString ")"), doc (showString ","), prt 1 term2])+    Language.Rzk.Syntax.Abs.TypeUnit _ -> prPrec i 7 (concatD [doc (showString "Unit")])     Language.Rzk.Syntax.Abs.TypeId _ term1 term2 term3 -> prPrec i 1 (concatD [prt 2 term1, doc (showString "=_{"), prt 0 term2, doc (showString "}"), prt 2 term3])     Language.Rzk.Syntax.Abs.TypeIdSimple _ term1 term2 -> prPrec i 1 (concatD [prt 2 term1, doc (showString "="), prt 2 term2])     Language.Rzk.Syntax.Abs.TypeRestricted _ term restrictions -> prPrec i 6 (concatD [prt 6 term, doc (showString "["), prt 0 restrictions, doc (showString "]")])@@ -249,6 +259,7 @@     Language.Rzk.Syntax.Abs.Pair _ term1 term2 -> prPrec i 7 (concatD [doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ")")])     Language.Rzk.Syntax.Abs.First _ term -> prPrec i 6 (concatD [doc (showString "first"), prt 7 term])     Language.Rzk.Syntax.Abs.Second _ term -> prPrec i 6 (concatD [doc (showString "second"), prt 7 term])+    Language.Rzk.Syntax.Abs.Unit _ -> prPrec i 7 (concatD [doc (showString "unit")])     Language.Rzk.Syntax.Abs.Refl _ -> prPrec i 7 (concatD [doc (showString "refl")])     Language.Rzk.Syntax.Abs.ReflTerm _ term -> prPrec i 7 (concatD [doc (showString "refl_{"), prt 0 term, doc (showString "}")])     Language.Rzk.Syntax.Abs.ReflTermType _ term1 term2 -> prPrec i 7 (concatD [doc (showString "refl_{"), prt 0 term1, doc (showString ":"), prt 0 term2, doc (showString "}")])
+ src/Language/Rzk/VSCode/Tokenize.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE LambdaCase        #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards   #-}+module Language.Rzk.VSCode.Tokenize where++import           Language.Rzk.Syntax+import           Language.Rzk.Syntax.Print+import           Language.Rzk.VSCode.Tokens++tokenizeModule :: Module -> [VSToken]+tokenizeModule (Module _loc langDecl commands) = concat+  [ tokenizeLanguageDecl langDecl+  , foldMap tokenizeCommand commands+  ]++tokenizeLanguageDecl :: LanguageDecl -> [VSToken]+tokenizeLanguageDecl _ = []++tokenizeCommand :: Command -> [VSToken]+tokenizeCommand command = case command of+  CommandSetOption{}   -> []    -- NOTE: fallback to TextMate+  CommandUnsetOption{} -> []    -- NOTE: fallback to TextMate+  CommandCheck        _loc term type_ -> foldMap tokenizeTerm [term, type_]+  CommandCompute      _loc term -> tokenizeTerm term+  CommandComputeNF    _loc term -> tokenizeTerm term+  CommandComputeWHNF  _loc term -> tokenizeTerm term++  CommandPostulate _loc name _declUsedVars params type_ -> concat+    [ mkToken name vs_function [vs_declaration]+    , foldMap tokenizeParam params+    , tokenizeTerm type_+    ]+  CommandDefine _loc name _declUsedVars params type_ term -> concat+    [ mkToken name vs_function [vs_declaration]+    , foldMap tokenizeParam params+    , foldMap tokenizeTerm [type_, term]+    ]++  CommandAssume _loc vars type_ -> concat+    [ foldMap (\var -> mkToken var vs_parameter [vs_declaration]) vars+    , tokenizeTerm type_+    ]+  CommandSection _loc _nameStart commands _nameEnd ->+    foldMap tokenizeCommand commands++tokenizeParam :: Param -> [VSToken]+tokenizeParam = \case+  ParamPattern _loc pat -> tokenizePattern pat+  ParamPatternType _loc pats type_ -> concat+    [ foldMap tokenizePattern pats+    , tokenizeTerm type_ ]+  ParamPatternShape _loc pat cube tope -> concat+    [ tokenizePattern pat+    , tokenizeTerm cube+    , tokenizeTope tope ]++tokenizePattern :: Pattern -> [VSToken]+tokenizePattern = \case+  PatternWildcard _loc   -> []+  PatternVar _loc var    -> mkToken var vs_parameter [vs_declaration]+  PatternPair _loc l r   -> foldMap tokenizePattern [l, r]+  pat@(PatternUnit _loc) -> mkToken pat vs_enumMember [vs_declaration]++tokenizeTope :: Term -> [VSToken]+tokenizeTope = tokenizeTerm' (Just vs_string)++tokenizeTerm :: Term -> [VSToken]+tokenizeTerm = tokenizeTerm' Nothing++tokenizeTerm' :: Maybe VSTokenType -> Term -> [VSToken]+tokenizeTerm' varTokenType = go+  where+    go term = case term of+      Hole{} -> [] -- FIXME+      Var{} -> case varTokenType of+                 Nothing         -> []+                 Just token_type -> mkToken term token_type []++      Universe{}           -> mkToken term vs_class [vs_defaultLibrary]+      UniverseCube{}       -> mkToken term vs_class [vs_defaultLibrary]+      UniverseTope{}       -> mkToken term vs_class [vs_defaultLibrary]++      CubeUnit{}           -> mkToken term vs_enum [vs_defaultLibrary]+      CubeUnitStar{}       -> mkToken term vs_enumMember [vs_defaultLibrary]++      Cube2{}              -> mkToken term vs_enum [vs_defaultLibrary]+      Cube2_0{}            -> mkToken term vs_enumMember [vs_defaultLibrary]+      Cube2_1{}            -> mkToken term vs_enumMember [vs_defaultLibrary]++      CubeProduct _loc l r -> foldMap go [l, r]++      TopeTop{}            -> mkToken term vs_string [vs_defaultLibrary]+      TopeBottom{}         -> mkToken term vs_string [vs_defaultLibrary]+      TopeAnd _loc l r     -> foldMap tokenizeTope [l, r]+      TopeOr  _loc l r     -> foldMap tokenizeTope [l, r]+      TopeEQ  _loc l r     -> foldMap tokenizeTope [l, r]+      TopeLEQ _loc l r     -> foldMap tokenizeTope [l, r]++      RecBottom{}          -> mkToken term vs_function [vs_defaultLibrary]+      RecOr _loc rs -> foldMap tokenizeRestriction rs++      TypeFun _loc paramDecl ret -> concat+        [ tokenizeParamDecl paramDecl+        , go ret ]+      TypeSigma loc pat a b -> concat+        [ mkToken (VarIdent loc "∑") vs_class [vs_defaultLibrary]+        , tokenizePattern pat+        , foldMap go [a, b] ]+      TypeId _loc x a y -> foldMap go [x, a, y]+      TypeIdSimple _loc x y -> foldMap go [x, y]++      TypeRestricted _loc type_ rs -> concat+        [ go type_+        , foldMap tokenizeRestriction rs ]++      App _loc f x -> foldMap go [f, x]+      Lambda _loc params body -> concat+        [ foldMap tokenizeParam params+        , go body ]++      Pair _loc l r -> foldMap go [l, r]+      First loc t -> concat+        [ mkToken (VarIdent loc "first") vs_function [vs_defaultLibrary]+        , go t ]+      Second loc t -> concat+        [ mkToken (VarIdent loc "second") vs_function [vs_defaultLibrary]+        , go t ]++      TypeUnit _loc -> mkToken term vs_enum [vs_defaultLibrary]+      Unit _loc -> mkToken term vs_enumMember [vs_defaultLibrary]++      Refl{} -> mkToken term vs_function [vs_defaultLibrary]+      ReflTerm loc x -> concat+        [ mkToken (VarIdent loc "refl") vs_function [vs_defaultLibrary]+        , go x ]+      ReflTermType loc x a -> concat+        [ mkToken (VarIdent loc "refl") vs_function [vs_defaultLibrary]+        , foldMap go [x, a] ]++      IdJ loc a b c d e f -> concat+        [ mkToken (VarIdent loc "J") vs_function [vs_defaultLibrary]+        , foldMap go [a, b, c, d, e, f] ]++      TypeAsc _loc t type_ -> foldMap go [t, type_]++tokenizeRestriction :: Restriction -> [VSToken]+tokenizeRestriction (Restriction _loc tope term) = concat+  [ tokenizeTope tope+  , tokenizeTerm term ]++tokenizeParamDecl :: ParamDecl -> [VSToken]+tokenizeParamDecl = \case+  ParamType _loc type_ -> tokenizeTerm type_+  ParamWildcardType _loc type_ -> tokenizeTerm type_+  ParamVarType _loc pat type_ -> concat+    [ tokenizePattern pat+    , tokenizeTerm type_ ]+  ParamVarShape _loc pat cube tope -> concat+    [ tokenizePattern pat+    , tokenizeTerm cube+    , tokenizeTope tope+    ]++mkToken :: (HasPosition a, Print a) => a -> VSTokenType -> [VSTokenModifier] -> [VSToken]+mkToken x tokenType tokenModifiers =+  case hasPosition x of+    Nothing -> []+    Just (line, col) -> do+      [ VSToken+        { startCharacter = col - 1    -- NOTE: 0-indexed output for VS Code+        , line = line - 1             -- NOTE: 0-indexed output for VS Code+        , length = Prelude.length (printTree x)+        , .. } ]
+ src/Language/Rzk/VSCode/Tokens.hs view
@@ -0,0 +1,169 @@+{-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures #-}+{-# LANGUAGE DeriveAnyClass             #-}+{-# LANGUAGE DeriveGeneric              #-}+{-# LANGUAGE DerivingStrategies         #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase                 #-}+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE PatternSynonyms            #-}+{-# LANGUAGE RecordWildCards            #-}+module Language.Rzk.VSCode.Tokens where++import           Data.Aeson+import           Data.String  (IsString)+import           Data.Text    (Text)+import           GHC.Generics (Generic)++-- | VS Code token.+data VSToken = VSToken+  { line           :: !Int+  , startCharacter :: !Int+  , length         :: !Int+  , tokenType      :: VSTokenType+  , tokenModifiers :: [VSTokenModifier]+  } deriving (Generic, ToJSON)++-- | VS Code token types. See https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#standard-token-types-and-modifiers.+newtype VSTokenType = VSTokenType Text+  deriving newtype (ToJSON, IsString)++-- | VS Code token modifiers. See https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#standard-token-types-and-modifiers.+newtype VSTokenModifier = VSTokenModifier Text+  deriving newtype (ToJSON, IsString)++-- * Standard token types++-- | For identifiers that declare or reference a namespace, module, or package.+vs_namespace :: VSTokenType+vs_namespace = VSTokenType "namespace"++-- | For identifiers that declare or reference a class type.+vs_class :: VSTokenType+vs_class = VSTokenType "class"++-- | For identifiers that declare or reference an enumeration type.+vs_enum :: VSTokenType+vs_enum = VSTokenType "enum"++-- | For identifiers that declare or reference an interface type.+vs_interface :: VSTokenType+vs_interface = VSTokenType "interface"++-- | For identifiers that declare or reference a struct type.+vs_struct :: VSTokenType+vs_struct = VSTokenType "struct"++-- | For identifiers that declare or reference a type parameter.+vs_typeParameter :: VSTokenType+vs_typeParameter = VSTokenType "typeParameter"++-- | For identifiers that declare or reference a type that is not covered above.+vs_type :: VSTokenType+vs_type = VSTokenType "type"++-- | For identifiers that declare or reference a function or method parameters.+vs_parameter :: VSTokenType+vs_parameter = VSTokenType "parameter"++-- | For identifiers that declare or reference a local or global variable.+vs_variable :: VSTokenType+vs_variable = VSTokenType "variable"++-- | For identifiers that declare or reference a member property, member field, or member variable.+vs_property :: VSTokenType+vs_property = VSTokenType "property"++-- | For identifiers that declare or reference an enumeration property, constant, or member.+vs_enumMember :: VSTokenType+vs_enumMember = VSTokenType "enumMember"++-- | For identifiers that declare or reference decorators and annotations.+vs_decorator :: VSTokenType+vs_decorator = VSTokenType "decorator"++-- | For identifiers that declare an event property.+vs_event :: VSTokenType+vs_event = VSTokenType "event"++-- | For identifiers that declare a function.+vs_function :: VSTokenType+vs_function = VSTokenType "function"++-- | For identifiers that declare a member function or method.+vs_method :: VSTokenType+vs_method = VSTokenType "method"++-- | For identifiers that declare a macro.+vs_macro :: VSTokenType+vs_macro = VSTokenType "macro"++-- | For identifiers that declare a label.+vs_label :: VSTokenType+vs_label = VSTokenType "label"++-- | For tokens that represent a comment.+vs_comment :: VSTokenType+vs_comment = VSTokenType "comment"++-- | For tokens that represent a string literal.+vs_string :: VSTokenType+vs_string = VSTokenType "string"++-- | For tokens that represent a language keyword.+vs_keyword :: VSTokenType+vs_keyword = VSTokenType "keyword"++-- | For tokens that represent a number literal.+vs_number :: VSTokenType+vs_number = VSTokenType "number"++-- | For tokens that represent a regular expression literal.+vs_regexp :: VSTokenType+vs_regexp = VSTokenType "regexp"++-- | For tokens that represent an operator.+vs_operator :: VSTokenType+vs_operator = VSTokenType "operator"++-- * Standard token modifiers++-- | For declarations of symbols.+vs_declaration :: VSTokenModifier+vs_declaration = VSTokenModifier "declaration"++-- | For definitions of symbols, for example, in header files.+vs_definition :: VSTokenModifier+vs_definition = VSTokenModifier "definition"++-- | For readonly variables and member fields (constants).+vs_readonly :: VSTokenModifier+vs_readonly = VSTokenModifier "readonly"++-- | For class members (static members).+vs_static :: VSTokenModifier+vs_static = VSTokenModifier "static"++-- | For symbols that should no longer be used.+vs_deprecated :: VSTokenModifier+vs_deprecated = VSTokenModifier "deprecated"++-- | For types and member functions that are abstract.+vs_abstract :: VSTokenModifier+vs_abstract = VSTokenModifier "abstract"++-- | For functions that are marked async.+vs_async :: VSTokenModifier+vs_async = VSTokenModifier "async"++-- | For variable references where the variable is assigned to.+vs_modification :: VSTokenModifier+vs_modification = VSTokenModifier "modification"++-- | For occurrences of symbols in documentation.+vs_documentation :: VSTokenModifier+vs_documentation = VSTokenModifier "documentation"++-- | For symbols that are part of the standard library.+vs_defaultLibrary :: VSTokenModifier+vs_defaultLibrary = VSTokenModifier "defaultLibrary"+
src/Rzk/Main.hs view
@@ -4,41 +4,28 @@ {-# LANGUAGE OverloadedStrings #-} module Rzk.Main where -import           Control.Monad       (forM)-import           Data.Version        (showVersion)+import           Control.Monad                (forM)+import qualified Data.Aeson                   as JSON+import qualified Data.ByteString.Lazy.Char8   as ByteString+import           Data.Version                 (showVersion) import           Options.Generic-import           System.Exit         (exitFailure)+import           System.Exit                  (exitFailure) -import qualified Language.Rzk.Syntax as Rzk-import           Paths_rzk           (version)+import qualified Language.Rzk.Syntax          as Rzk+import           Language.Rzk.VSCode.Tokenize (tokenizeModule)+import           Paths_rzk                    (version) import           Rzk.TypeCheck  data Command   = Typecheck [FilePath]+  | Tokenize   | Version   deriving (Generic, Show, ParseRecord)  main :: IO () main = getRecord "rzk: an experimental proof assistant for synthetic ∞-categories" >>= \case   Typecheck paths -> do-    modules <- case paths of-      -- if no paths are given — read from stdin-      [] -> do-        result <- Rzk.parseModule <$> getContents-        case result of-          Left err -> do-            putStrLn ("An error occurred when parsing stdin")-            error err-          Right rzkModule -> return [("<stdin>", rzkModule)]-      -- otherwise — parse all given files in given order-      _ -> forM paths $ \path -> do-        putStrLn ("Loading file " <> path)-        result <- Rzk.parseModule <$> readFile path-        case result of-          Left err -> do-            putStrLn ("An error occurred when parsing file " <> path)-            error err-          Right rzkModule -> return (path, rzkModule)+    modules <- parseRzkFilesOrStdin paths     case defaultTypeCheck (typecheckModulesWithLocation modules) of       Left err -> do         putStrLn "An error occurred when typechecking!"@@ -49,12 +36,41 @@         exitFailure       Right () -> putStrLn "Everything is ok!" +  Tokenize -> do+    rzkModule <- parseStdin+    ByteString.putStrLn (JSON.encode (tokenizeModule rzkModule))+   Version -> putStrLn (showVersion version) +parseStdin :: IO Rzk.Module+parseStdin = do+  result <- Rzk.parseModule <$> getContents+  case result of+    Left err -> do+      putStrLn ("An error occurred when parsing stdin")+      error err+    Right rzkModule -> return rzkModule++parseRzkFilesOrStdin :: [FilePath] -> IO [(FilePath, Rzk.Module)]+parseRzkFilesOrStdin = \case+  -- if no paths are given — read from stdin+  [] -> do+    rzkModule <- parseStdin+    return [("<stdin>", rzkModule)]+  -- otherwise — parse all given files in given order+  paths -> forM paths $ \path -> do+    putStrLn ("Loading file " <> path)+    result <- Rzk.parseModule <$> readFile path+    case result of+      Left err -> do+        putStrLn ("An error occurred when parsing file " <> path)+        error err+      Right rzkModule -> return (path, rzkModule)+ typecheckString :: String -> Either String String typecheckString moduleString = do   rzkModule <- Rzk.parseModule moduleString-  case defaultTypeCheck (typecheckModule rzkModule) of+  case defaultTypeCheck (typecheckModule Nothing rzkModule) of     Left err -> Left $ unlines       [ "An error occurred when typechecking!"       , "Rendering type error... (this may take a few seconds)"
src/Rzk/TypeCheck.hs view
@@ -24,8 +24,8 @@ import           Unsafe.Coerce  defaultTypeCheck-  :: TypeCheck Rzk.VarIdent a-  -> Either (TypeErrorInScopedContext Rzk.VarIdent) a+  :: TypeCheck VarIdent a+  -> Either (TypeErrorInScopedContext VarIdent) a defaultTypeCheck tc = runExcept (runReaderT tc emptyContext)  -- FIXME: merge with VarInfo@@ -37,9 +37,9 @@   , declUsedVars     :: [var]   } -type Decl' = Decl Rzk.VarIdent+type Decl' = Decl VarIdent -typecheckModulesWithLocation :: [(FilePath, Rzk.Module)] -> TypeCheck Rzk.VarIdent ()+typecheckModulesWithLocation :: [(FilePath, Rzk.Module)] -> TypeCheck VarIdent () typecheckModulesWithLocation = \case   [] -> return ()   m : ms -> do@@ -47,19 +47,19 @@     localDeclsPrepared decls $       typecheckModulesWithLocation ms -typecheckModules :: [Rzk.Module] -> TypeCheck Rzk.VarIdent ()+typecheckModules :: [Rzk.Module] -> TypeCheck VarIdent () typecheckModules = \case   [] -> return ()   m : ms -> do-    decls <- typecheckModule m+    decls <- typecheckModule Nothing m     localDeclsPrepared decls $       typecheckModules ms -typecheckModuleWithLocation :: (FilePath, Rzk.Module) -> TypeCheck Rzk.VarIdent [Decl']+typecheckModuleWithLocation :: (FilePath, Rzk.Module) -> TypeCheck VarIdent [Decl'] typecheckModuleWithLocation (path, module_) = do   traceTypeCheck Normal ("Checking module from " <> path) $ do     withLocation (LocationInfo { locationFilePath = Just path, locationLine = Nothing }) $-      typecheckModule module_+      typecheckModule (Just path) module_  countCommands :: Integral a => [Rzk.Command] -> a countCommands [] = 0@@ -67,14 +67,14 @@   countCommands sectionCommands + countCommands commands countCommands (_ : commands) = 1 + countCommands commands -typecheckModule :: Rzk.Module -> TypeCheck Rzk.VarIdent [Decl']-typecheckModule (Rzk.Module _moduleLoc _lang commands) =+typecheckModule :: Maybe FilePath -> Rzk.Module -> TypeCheck VarIdent [Decl']+typecheckModule path (Rzk.Module _moduleLoc _lang commands) =   withSection Nothing (go 1 commands) $ -- FIXME: use module name? or anonymous section?     return []   where     totalCommands = countCommands commands -    go :: Integer -> [Rzk.Command] -> TypeCheck Rzk.VarIdent [Decl']+    go :: Integer -> [Rzk.Command] -> TypeCheck VarIdent [Decl']     go _i [] = return []      go  i (command@(Rzk.CommandUnsetOption _loc optionName) : moreCommands) = do@@ -93,19 +93,19 @@      go  i (command@(Rzk.CommandDefine _loc name (Rzk.DeclUsedVars _ vars) params ty term) : moreCommands) =       traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]"-          <> " Checking #define " <> show (Pure name :: Term') ) $ do+          <> " Checking #define " <> Rzk.printTree name ) $ do         withCommand command $ do-          mapM_ checkDefinedVar vars+          mapM_ checkDefinedVar (varIdentAt path <$> vars)           paramDecls <- concat <$> mapM paramToParamDecl params           ty' <- typecheck (toTerm' (addParamDecls paramDecls ty)) universeT >>= whnfT -- >>= pure . termIsWHNF           term' <- typecheck (toTerm' (addParams params term)) ty' >>= whnfT >>= pure . termIsWHNF-          let decl = Decl name ty' (Just term') False vars+          let decl = Decl (varIdentAt path name) ty' (Just term') False (varIdentAt path <$> vars)           fmap (decl :) $             localDeclPrepared decl $ do               Context{..} <- ask               termSVG <-                 case renderBackend of-                  Just RenderSVG -> renderTermSVG (Pure name)+                  Just RenderSVG -> renderTermSVG (Pure (varIdentAt path name))                   Just RenderLaTeX -> issueTypeError $ TypeErrorOther "\"latex\" rendering is not yet supported"                   Nothing -> pure Nothing               maybe id trace termSVG $ do@@ -113,12 +113,12 @@      go  i (command@(Rzk.CommandPostulate _loc name (Rzk.DeclUsedVars _ vars) params ty) : moreCommands) =       traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]"-          <> " Checking #postulate " <> show (Pure name :: Term') ) $ do+          <> " Checking #postulate " <> Rzk.printTree name) $ do         withCommand command $ do-          mapM_ checkDefinedVar vars+          mapM_ checkDefinedVar (varIdentAt path <$> vars)           paramDecls <- concat <$> mapM paramToParamDecl params           ty' <- typecheck (toTerm' (addParamDecls paramDecls ty)) universeT >>= whnfT -- >>= pure . termIsWHNF-          let decl = Decl name ty' Nothing False vars+          let decl = Decl (varIdentAt path name) ty' Nothing False (varIdentAt path <$> vars)           fmap (decl :) $             localDeclPrepared decl $               go (i + 1) moreCommands@@ -152,10 +152,10 @@      go  i (command@(Rzk.CommandAssume _loc names ty) : moreCommands) =       traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]"-          <> " Checking #assume " <> intercalate " " [ show (Pure name :: Term') | name <- names ] ) $ do+          <> " Checking #assume " <> intercalate " " [ Rzk.printTree name | name <- names ] ) $ do         withCommand command $ do           ty' <- typecheck (toTerm' ty) universeT-          let decls = [ Decl name ty' Nothing True [] | name <- names ]+          let decls = [ Decl (varIdentAt path name) ty' Nothing True [] | name <- names ]           fmap (decls <>) $             localDeclsPrepared decls $               go (i + 1) moreCommands@@ -219,7 +219,7 @@   | TypeErrorTopeNotSatisfied [TermT var] (TermT var)   | TypeErrorTopesNotEquivalent (TermT var) (TermT var)   | TypeErrorInvalidArgumentType (Term var) (TermT var)-  | TypeErrorDuplicateTopLevel Rzk.VarIdent+  | TypeErrorDuplicateTopLevel [VarIdent] VarIdent   | TypeErrorUnusedVariable var (TermT var)   | TypeErrorUnusedUsedVariables [var] var   | TypeErrorImplicitAssumption (var, TermT var) var@@ -232,10 +232,10 @@  data TypeErrorInScopedContext var   = PlainTypeError (TypeErrorInContext var)-  | ScopedTypeError (Maybe Rzk.VarIdent) (TypeErrorInScopedContext (Inc var))+  | ScopedTypeError (Maybe VarIdent) (TypeErrorInScopedContext (Inc var))   deriving (Functor, Foldable) -type TypeError' = TypeError Rzk.VarIdent+type TypeError' = TypeError VarIdent  ppTypeError' :: TypeError' -> String ppTypeError' = \case@@ -323,40 +323,44 @@     , "  " <> show (untyped argKind)     ] -  TypeErrorDuplicateTopLevel name -> unlines+  TypeErrorDuplicateTopLevel previous lastName -> unlines     [ "duplicate top-level definition"-    , "  " <> Rzk.printTree name+    , "  " <> ppVarIdentWithLocation lastName+    , "previous top-level definitions found at"+    , intercalate "\n"+      [ "  " <> ppVarIdentWithLocation name+      | name <- previous ]     ]    TypeErrorUnusedVariable name type_ -> unlines     [ "unused variable"-    , "  " <> Rzk.printTree name <> " : " <> show (untyped type_)+    , "  " <> Rzk.printTree (getVarIdent name) <> " : " <> show (untyped type_)     ]    TypeErrorUnusedUsedVariables vars name -> unlines     [ "unused variables"-    , "  " <> intercalate " " (map Rzk.printTree vars)+    , "  " <> intercalate " " (map (Rzk.printTree . getVarIdent) vars)     , "declared as used in definition of"-    , "  " <> Rzk.printTree name+    , "  " <> Rzk.printTree (getVarIdent name)     ]    TypeErrorImplicitAssumption (a, aType) name -> unlines     [ "implicit assumption"-    , "  " <> Rzk.printTree a <> " : " <> show (untyped aType)+    , "  " <> Rzk.printTree (getVarIdent a) <> " : " <> show (untyped aType)     , "used in definition of"-    , "  " <> Rzk.printTree name+    , "  " <> Rzk.printTree (getVarIdent name)     ] -ppTypeErrorInContext :: TypeErrorInContext Rzk.VarIdent -> String+ppTypeErrorInContext :: TypeErrorInContext VarIdent -> String ppTypeErrorInContext TypeErrorInContext{..} = intercalate "\n"   [ ppContext' typeErrorContext   , ppTypeError' typeErrorError   ]  ppTypeErrorInScopedContextWith'-  :: [Rzk.VarIdent]-  -> [Rzk.VarIdent]-  -> TypeErrorInScopedContext Rzk.VarIdent+  :: [VarIdent]+  -> [VarIdent]+  -> TypeErrorInScopedContext VarIdent   -> String ppTypeErrorInScopedContextWith' used vars = \case   PlainTypeError err -> ppTypeErrorInContext err@@ -374,7 +378,7 @@       where         z' = refreshVar used z -- FIXME: inefficient -ppTypeErrorInScopedContext' :: TypeErrorInScopedContext Rzk.VarIdent -> String+ppTypeErrorInScopedContext' :: TypeErrorInScopedContext VarIdent -> String ppTypeErrorInScopedContext' err = ppTypeErrorInScopedContextWith' vars (defaultVarIdents \\ vars) err   where     vars = nub (foldMap pure err)@@ -413,23 +417,23 @@   | ActionCloseSection (Maybe Rzk.SectionName)   deriving (Functor, Foldable) -type Action' = Action Rzk.VarIdent+type Action' = Action VarIdent  ppTermInContext :: Eq var => TermT var -> TypeCheck var String ppTermInContext term =  do   vars <- freeVarsT_ term   let mapping = zip vars defaultVarIdents-      toRzkVarIdent origs var = fromMaybe (Rzk.VarIdent "_") $+      toRzkVarIdent origs var = fromMaybe "_" $         join (lookup var origs) <|> lookup var mapping   origs <- asks varOrigs   return (show (untyped (toRzkVarIdent origs <$> term))) -ppSomeAction :: Eq var => [(var, Maybe Rzk.VarIdent)] -> Int -> Action var -> String+ppSomeAction :: Eq var => [(var, Maybe VarIdent)] -> Int -> Action var -> String ppSomeAction origs n action = ppAction n (toRzkVarIdent <$> action)   where     vars = nub (foldMap pure action)     mapping = zip vars defaultVarIdents-    toRzkVarIdent var = fromMaybe (Rzk.VarIdent "_") $+    toRzkVarIdent var = fromMaybe "_" $       join (lookup var origs) <|> lookup var mapping  ppAction :: Int -> Action' -> String@@ -553,7 +557,7 @@ data VarInfo var = VarInfo   { varType                :: TermT var   , varValue               :: Maybe (TermT var)-  , varOrig                :: Maybe Rzk.VarIdent+  , varOrig                :: Maybe VarIdent   , varIsAssumption        :: Bool -- FIXME: perhaps, introduce something like decl kind?   , varDeclaredAssumptions :: [var]   } deriving (Functor, Foldable)@@ -609,14 +613,14 @@ varValues :: Context var -> [(var, Maybe (TermT var))] varValues = map (fmap varValue) . varInfos -varOrigs :: Context var -> [(var, Maybe Rzk.VarIdent)]+varOrigs :: Context var -> [(var, Maybe VarIdent)] varOrigs = map (fmap varOrig) . varInfos  withSection   :: Maybe Rzk.SectionName-  -> TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent]-  -> TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent]-  -> TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent]+  -> TypeCheck VarIdent [Decl VarIdent]+  -> TypeCheck VarIdent [Decl VarIdent]+  -> TypeCheck VarIdent [Decl VarIdent] withSection name sectionBody next = do   sectionDecls <- startSection name $ do     decls <- sectionBody@@ -627,12 +631,12 @@     localDeclsPrepared sectionDecls $       next -startSection :: Maybe Rzk.SectionName -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a+startSection :: Maybe Rzk.SectionName -> TypeCheck VarIdent a -> TypeCheck VarIdent a startSection name = local $ \Context{..} -> Context   { localScopes = ScopeInfo { scopeName = name, scopeVars = [] } : localScopes   , .. } -endSection :: TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent]+endSection :: TypeCheck VarIdent [Decl VarIdent] endSection = askCurrentScope >>= scopeToDecls  scopeToDecls :: Eq var => ScopeInfo var -> TypeCheck var [Decl var]@@ -732,7 +736,7 @@   where     newDeclType = typeFunT varOrig varType Nothing (abstract var declType) -ppContext' :: Context Rzk.VarIdent -> String+ppContext' :: Context VarIdent -> String ppContext' ctx@Context{..} = unlines   [ "Definitions in context:"   , unlines@@ -749,9 +753,9 @@       _                                 -> ""   , case currentCommand of       Just (Rzk.CommandDefine _loc name _vars _params _ty _term) ->-        "  Error occurred when checking\n    #define " <> show (Pure name :: Term')+        "  Error occurred when checking\n    #define " <> Rzk.printTree name       Just (Rzk.CommandPostulate _loc name _vars _params _ty ) ->-        "  Error occurred when checking\n    #postulate " <> show (Pure name :: Term')+        "  Error occurred when checking\n    #postulate " <> Rzk.printTree name       Just (Rzk.CommandCheck _loc term ty) ->         "  Error occurred when checking\n    " <> Rzk.printTree term <> " : " <> Rzk.printTree ty       Just (Rzk.CommandCompute _loc term) ->@@ -773,22 +777,28 @@ --  , intercalate "\n" (map (("  " <>) . show . untyped) (intercalate [TopeAndT topeT topeBottomT topeBottomT] (saturateTopes [] <$> simplifyLHS localTopes)))   ] -doesShadowName :: Rzk.VarIdent -> TypeCheck var Bool+doesShadowName :: VarIdent -> TypeCheck var [VarIdent] doesShadowName name = asks $ \ctx ->-  name `elem` mapMaybe snd (varOrigs ctx)+  filter (name ==) (mapMaybe snd (varOrigs ctx)) -checkTopLevelDuplicate :: Rzk.VarIdent -> TypeCheck var ()+checkTopLevelDuplicate :: VarIdent -> TypeCheck var () checkTopLevelDuplicate name = do   doesShadowName name >>= \case-    True  -> issueTypeError (TypeErrorDuplicateTopLevel name)-    False -> return ()+    []         -> return ()+    collisions -> issueTypeError $+      TypeErrorDuplicateTopLevel collisions name -checkNameShadowing :: Rzk.VarIdent -> TypeCheck var ()+checkNameShadowing :: VarIdent -> TypeCheck var () checkNameShadowing name = do   doesShadowName name >>= \case-    True -> issueWarning $-      Rzk.printTree name <> " shadows an existing definition"-    False -> return ()+    [] -> return ()+    collisions -> issueWarning $+      Rzk.printTree (getVarIdent name) <> " shadows an existing definition:"+      <> unlines+        [ "  " <> ppVarIdentWithLocation name+        , "previous top-level definitions found at"+        , intercalate "\n"+          [ "  " <> ppVarIdentWithLocation prev | prev <- collisions ] ]  withLocation :: LocationInfo -> TypeCheck var a -> TypeCheck var a withLocation loc = local $ \Context{..} -> Context { location = Just loc, .. }@@ -796,21 +806,21 @@ withCommand :: Rzk.Command -> TypeCheck var a -> TypeCheck var a withCommand command = local $ \Context{..} -> Context { currentCommand = Just command, .. } -localDecls :: [Decl Rzk.VarIdent] -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a+localDecls :: [Decl VarIdent] -> TypeCheck VarIdent a -> TypeCheck VarIdent a localDecls []             = id localDecls (decl : decls) = localDecl decl . localDecls decls -localDeclsPrepared :: [Decl Rzk.VarIdent] -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a+localDeclsPrepared :: [Decl VarIdent] -> TypeCheck VarIdent a -> TypeCheck VarIdent a localDeclsPrepared [] = id localDeclsPrepared (decl : decls) = localDeclPrepared decl . localDeclsPrepared decls -localDecl :: Decl Rzk.VarIdent -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a+localDecl :: Decl VarIdent -> TypeCheck VarIdent a -> TypeCheck VarIdent a localDecl (Decl x ty term isAssumption vars) tc = do   ty' <- whnfT ty   term' <- traverse whnfT term   localDeclPrepared (Decl x ty' term' isAssumption vars) tc -localDeclPrepared :: Decl Rzk.VarIdent -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a+localDeclPrepared :: Decl VarIdent -> TypeCheck VarIdent a -> TypeCheck VarIdent a localDeclPrepared (Decl x ty term isAssumption vars) tc = do   checkTopLevelDuplicate x   local update tc@@ -1070,7 +1080,7 @@       switch Covariant     = Contravariant       switch Contravariant = Covariant -enterScopeContext :: Maybe Rzk.VarIdent -> TermT var -> Context var -> Context (Inc var)+enterScopeContext :: Maybe VarIdent -> TermT var -> Context var -> Context (Inc var) enterScopeContext orig ty =   addVarInCurrentScope Z VarInfo     { varType   = S <$> ty@@ -1081,7 +1091,7 @@     }   . fmap S -enterScope :: Maybe Rzk.VarIdent -> TermT var -> TypeCheck (Inc var) b -> TypeCheck var b+enterScope :: Maybe VarIdent -> TermT var -> TypeCheck (Inc var) b -> TypeCheck var b enterScope orig ty action = do   newContext <- asks (enterScopeContext orig ty)   lift $ withExceptT (ScopedTypeError orig) $@@ -1233,6 +1243,8 @@   TypeSigmaT{} -> pure tt   TypeIdT{} -> pure tt   RecBottomT{} -> pure tt+  TypeUnitT{} -> pure tt+  UnitT{} -> pure tt    -- type ascriptions are ignored, since we already have a typechecked term   TypeAscT _ty term _ty' -> whnfT term@@ -1338,6 +1350,10 @@   Cube2_0T{} -> pure tt   Cube2_1T{} -> pure tt +  -- type layer constants+  TypeUnitT{} -> pure tt+  UnitT{} -> pure tt+   -- cube layer with computation   CubeProductT _ty l r -> cubeProductT <$> nfTope l <*> nfTope r @@ -1439,6 +1455,8 @@   -- type layer constants   ReflT ty _x -> pure (ReflT ty Nothing)   RecBottomT{} -> pure tt+  TypeUnitT{} -> pure tt+  UnitT{} -> pure tt    -- type ascriptions are ignored, since we already have a typechecked term   TypeAscT _ty term _ty' -> nfT term@@ -1621,6 +1639,9 @@               UniverseCubeT{} -> def               UniverseTopeT{} -> def +              TypeUnitT{} -> def+              UnitT{} -> return ()  -- Unit always unifies!+               CubeUnitT{} -> def               CubeUnitStarT{} -> def               Cube2T{} -> def@@ -1888,6 +1909,18 @@   , infoNF = Just cubeUnitStarT   , infoWHNF = Just cubeUnitStarT } +typeUnitT :: TermT var+typeUnitT = TypeUnitT TypeInfo+  { infoType = universeT+  , infoNF = Just typeUnitT+  , infoWHNF = Just typeUnitT }++unitT :: TermT var+unitT = UnitT TypeInfo+  { infoType = typeUnitT+  , infoNF = Just unitT+  , infoWHNF = Just unitT }+ cube2T :: TermT var cube2T = Cube2T TypeInfo   { infoType = cubeT@@ -1936,7 +1969,7 @@  lambdaT   :: TermT var-  -> Maybe Rzk.VarIdent+  -> Maybe VarIdent   -> Maybe (TermT var, Maybe (Scope TermT var))   -> Scope TermT var   -> TermT var@@ -2003,7 +2036,7 @@       }  typeFunT-  :: Maybe Rzk.VarIdent+  :: Maybe VarIdent   -> TermT var   -> Maybe (Scope TermT var)   -> Scope TermT var@@ -2018,7 +2051,7 @@       }  typeSigmaT-  :: Maybe Rzk.VarIdent+  :: Maybe VarIdent   -> TermT var   -> Scope TermT var   -> TermT var@@ -2236,6 +2269,9 @@       CubeProductT _ty _l r ->         return (secondT r t')       ty -> issueTypeError $ TypeErrorNotPair t' ty++  TypeUnit -> pure typeUnitT+  Unit -> pure unitT    TopeTop -> pure topeTopT   TopeBottom -> pure topeBottomT