diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -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:
diff --git a/rzk.cabal b/rzk.cabal
--- a/rzk.cabal
+++ b/rzk.cabal
@@ -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
diff --git a/src/Language/Rzk/Free/Syntax.hs b/src/Language/Rzk/Free/Syntax.hs
--- a/src/Language/Rzk/Free/Syntax.hs
+++ b/src/Language/Rzk/Free/Syntax.hs
@@ -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.
 --
diff --git a/src/Language/Rzk/Syntax/Abs.hs b/src/Language/Rzk/Syntax/Abs.hs
--- a/src/Language/Rzk/Syntax/Abs.hs
+++ b/src/Language/Rzk/Syntax/Abs.hs
@@ -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
diff --git a/src/Language/Rzk/Syntax/Layout.hs b/src/Language/Rzk/Syntax/Layout.hs
--- a/src/Language/Rzk/Syntax/Layout.hs
+++ b/src/Language/Rzk/Syntax/Layout.hs
@@ -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.
diff --git a/src/Language/Rzk/Syntax/Lex.hs b/src/Language/Rzk/Syntax/Lex.hs
--- a/src/Language/Rzk/Syntax/Lex.hs
+++ b/src/Language/Rzk/Syntax/Lex.hs
@@ -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)
 
diff --git a/src/Language/Rzk/Syntax/Lex.x b/src/Language/Rzk/Syntax/Lex.x
--- a/src/Language/Rzk/Syntax/Lex.x
+++ b/src/Language/Rzk/Syntax/Lex.x
@@ -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
diff --git a/src/Language/Rzk/Syntax/Par.hs b/src/Language/Rzk/Syntax/Par.hs
--- a/src/Language/Rzk/Syntax/Par.hs
+++ b/src/Language/Rzk/Syntax/Par.hs
@@ -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
diff --git a/src/Language/Rzk/Syntax/Par.y b/src/Language/Rzk/Syntax/Par.y
--- a/src/Language/Rzk/Syntax/Par.y
+++ b/src/Language/Rzk/Syntax/Par.y
@@ -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
diff --git a/src/Language/Rzk/Syntax/Print.hs b/src/Language/Rzk/Syntax/Print.hs
--- a/src/Language/Rzk/Syntax/Print.hs
+++ b/src/Language/Rzk/Syntax/Print.hs
@@ -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 "}")])
diff --git a/src/Language/Rzk/VSCode/Tokenize.hs b/src/Language/Rzk/VSCode/Tokenize.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Rzk/VSCode/Tokenize.hs
@@ -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)
+        , .. } ]
diff --git a/src/Language/Rzk/VSCode/Tokens.hs b/src/Language/Rzk/VSCode/Tokens.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Rzk/VSCode/Tokens.hs
@@ -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"
+
diff --git a/src/Rzk/Main.hs b/src/Rzk/Main.hs
--- a/src/Rzk/Main.hs
+++ b/src/Rzk/Main.hs
@@ -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)"
diff --git a/src/Rzk/TypeCheck.hs b/src/Rzk/TypeCheck.hs
--- a/src/Rzk/TypeCheck.hs
+++ b/src/Rzk/TypeCheck.hs
@@ -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
