From cdf2b13c0d87970b04b073c29b56cfbe9eaa5045 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Fri, 16 Jun 2023 01:28:00 +0300 Subject: [PATCH 01/13] Fix binaries workflow --- .github/workflows/binaries.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index dc6ea8a49..60e056405 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -40,9 +40,11 @@ jobs: - name: Tar and strip the binary run: | - export PROGRAM=program - cp `stack exec -- which $PROGRAM` $PROGRAM - tar -cavf program.tar.gz $PROGRAM + mkdir -p prepared_binaries/ + cd prepared_binaries/ + export PROGRAM=rzk + cp `stack exec -- which $PROGRAM` . + tar -cavf program.tar.gz * - name: Upload assets id: upload-release-asset @@ -51,6 +53,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ./program.tar.gz + asset_path: ./prepared_binaries/program.tar.gz asset_name: rzk-${{ github.ref_name }}-${{ runner.os }}-${{ runner.arch }}.tar.gz asset_content_type: application/tar.gz From d2751e48175a41939fb0699d6d5686d38eb42af6 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Fri, 16 Jun 2023 01:46:50 +0300 Subject: [PATCH 02/13] Skip using alex, happy, BNFC when building binaries --- .github/workflows/binaries.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index 60e056405..ae0cd18d4 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -27,13 +27,19 @@ jobs: ${{ runner.os }}-ca- ${{ runner.os }}- - - name: 🔨 Install BNFC, alex and happy (with Stack) - run: | - stack install alex happy BNFC +# - name: 🔨 Install BNFC, alex and happy (with Stack) +# run: | +# stack install alex happy BNFC +# +# - name: 🔨 Generate Syntax files using BNFC +# run: | +# cd rzk/ && (make && make clean; cd ../) - - name: 🔨 Generate Syntax files using BNFC + - name: 🔨 Remove rzk.cabal, lexer and parser generator files run: | - cd rzk/ && (make && make clean; cd ../) + rm -f rzk/src/Language/Rzk/Syntax/Lex.x + rm -f rzk/src/Language/Rzk/Syntax/Par.y + rm -f rzk/rzk.cabal - name: 🔨 Build the project run: stack build From 156f265f6d46cdd7f831f8bf0114a85937302e74 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Fri, 16 Jun 2023 01:53:00 +0300 Subject: [PATCH 03/13] Remove -f for rm commands (fix binaries on Windows) --- .github/workflows/binaries.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index ae0cd18d4..235abf541 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -37,9 +37,9 @@ jobs: - name: 🔨 Remove rzk.cabal, lexer and parser generator files run: | - rm -f rzk/src/Language/Rzk/Syntax/Lex.x - rm -f rzk/src/Language/Rzk/Syntax/Par.y - rm -f rzk/rzk.cabal + rm rzk/src/Language/Rzk/Syntax/Lex.x + rm rzk/src/Language/Rzk/Syntax/Par.y + rm rzk/rzk.cabal - name: 🔨 Build the project run: stack build From 175b5219adb9e98c95c436dca4f7bd9f4be3cbcb Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Fri, 16 Jun 2023 02:10:00 +0300 Subject: [PATCH 04/13] Run some commands in bash on Windows --- .github/workflows/binaries.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index 235abf541..eaeaa4e86 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -51,6 +51,7 @@ jobs: export PROGRAM=rzk cp `stack exec -- which $PROGRAM` . tar -cavf program.tar.gz * + shell: bash - name: Upload assets id: upload-release-asset From 1c9aa33f995406171f3cfe9f2cb51f971904d1e5 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Fri, 16 Jun 2023 20:48:24 +0300 Subject: [PATCH 05/13] Add tokenize command (only language decl for now) --- rzk/package.yaml | 3 + rzk/rzk.cabal | 16 ++++- rzk/rzk.nix | 13 ++-- rzk/src/Language/Rzk/VSCode/Tokens.hs | 97 +++++++++++++++++++++++++++ rzk/src/Rzk/Main.hs | 62 ++++++++++------- 5 files changed, 160 insertions(+), 31 deletions(-) create mode 100644 rzk/src/Language/Rzk/VSCode/Tokens.hs diff --git a/rzk/package.yaml b/rzk/package.yaml index e419b7d92..be573d515 100644 --- a/rzk/package.yaml +++ b/rzk/package.yaml @@ -20,10 +20,13 @@ description: Please see the README on GitHub at = 4.7 && < 5 - bifunctors +- bytestring - mtl - template-haskell +- text - optparse-generic ghc-options: diff --git a/rzk/rzk.cabal b/rzk/rzk.cabal index da9244236..918d74e35 100644 --- a/rzk/rzk.cabal +++ b/rzk/rzk.cabal @@ -36,6 +36,7 @@ library Language.Rzk.Syntax.Lex Language.Rzk.Syntax.Par Language.Rzk.Syntax.Print + Language.Rzk.VSCode.Tokens Rzk Rzk.Main Rzk.TypeCheck @@ -45,12 +46,15 @@ library 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 +65,16 @@ executable rzk 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 +86,14 @@ test-suite rzk-test 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/rzk/rzk.nix b/rzk/rzk.nix index cc583171c..652c4ac85 100644 --- a/rzk/rzk.nix +++ b/rzk/rzk.nix @@ -1,5 +1,5 @@ -{ mkDerivation, array, base, bifunctors, hpack, lib, mtl -, optparse-generic, template-haskell +{ mkDerivation, aeson, array, base, bifunctors, bytestring, hpack +, lib, mtl, optparse-generic, template-haskell, text }: mkDerivation { pname = "rzk"; @@ -8,14 +8,17 @@ mkDerivation { isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - array base bifunctors mtl optparse-generic template-haskell + aeson array base bifunctors bytestring mtl optparse-generic + template-haskell text ]; libraryToolDepends = [ hpack ]; executableHaskellDepends = [ - array base bifunctors mtl optparse-generic template-haskell + aeson array base bifunctors bytestring mtl optparse-generic + template-haskell text ]; testHaskellDepends = [ - array base bifunctors mtl optparse-generic template-haskell + aeson array base bifunctors bytestring mtl optparse-generic + template-haskell text ]; prePatch = "hpack"; homepage = "https://github.com/fizruk/rzk#readme"; diff --git a/rzk/src/Language/Rzk/VSCode/Tokens.hs b/rzk/src/Language/Rzk/VSCode/Tokens.hs new file mode 100644 index 000000000..e7e15bf00 --- /dev/null +++ b/rzk/src/Language/Rzk/VSCode/Tokens.hs @@ -0,0 +1,97 @@ +{-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures #-} +{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# 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) + +import Language.Rzk.Syntax +import Language.Rzk.Syntax.Print + +tokenizeModule :: Module -> [VSToken] +tokenizeModule (Module _loc langDecl commands) = concat + [ tokenizeLanguageDecl langDecl + , foldMap tokenizeCommand commands + ] + +tokenizeLanguageDecl :: LanguageDecl -> [VSToken] +tokenizeLanguageDecl decl@(LanguageDecl loc lang) = concat + [ mkToken loc decl VS_macro [] + , tokenizeLanguage lang ] + +tokenizeLanguage :: Language -> [VSToken] +tokenizeLanguage lang@(Rzk1 loc) = + mkToken loc lang VS_namespace [] + +tokenizeCommand :: Command -> [VSToken] +tokenizeCommand _ = [] + +mkToken :: Print a => BNFC'Position -> a -> VSTokenType -> [VSTokenModifier] -> [VSToken] +mkToken Nothing _ _ _ = [] +mkToken (Just (line, col)) x tokenType tokenModifiers = + [ VSToken { startCharacter = col, length = Prelude.length (printTree x) , .. } ] + +data VSToken = VSToken + { line :: !Int + , startCharacter :: !Int + , length :: !Int + , tokenType :: VSTokenType + , tokenModifiers :: [VSTokenModifier] + } deriving (Generic, ToJSON) + +-- * VS Code token types + +newtype VSTokenType = VSTokenType Text + deriving newtype (ToJSON, IsString) + +-- ** Standard token types + +pattern VS_namespace = VSTokenType "namespace" -- ^ For identifiers that declare or reference a namespace, module, or package. +pattern VS_class = VSTokenType "class" -- ^ For identifiers that declare or reference a class type. +pattern VS_enum = VSTokenType "enum" -- ^ For identifiers that declare or reference an enumeration type. +pattern VS_interface = VSTokenType "interface" -- ^ For identifiers that declare or reference an interface type. +pattern VS_struct = VSTokenType "struct" -- ^ For identifiers that declare or reference a struct type. +pattern VS_typeParameter = VSTokenType "typeParameter" -- ^ For identifiers that declare or reference a type parameter. +pattern VS_type = VSTokenType "type" -- ^ For identifiers that declare or reference a type that is not covered above. +pattern VS_parameter = VSTokenType "parameter" -- ^ For identifiers that declare or reference a function or method parameters. +pattern VS_variable = VSTokenType "variable" -- ^ For identifiers that declare or reference a local or global variable. +pattern VS_property = VSTokenType "property" -- ^ For identifiers that declare or reference a member property, member field, or member variable. +pattern VS_enumMember = VSTokenType "enumMember" -- ^ For identifiers that declare or reference an enumeration property, constant, or member. +pattern VS_decorator = VSTokenType "decorator" -- ^ For identifiers that declare or reference decorators and annotations. +pattern VS_event = VSTokenType "event" -- ^ For identifiers that declare an event property. +pattern VS_function = VSTokenType "function" -- ^ For identifiers that declare a function. +pattern VS_method = VSTokenType "method" -- ^ For identifiers that declare a member function or method. +pattern VS_macro = VSTokenType "macro" -- ^ For identifiers that declare a macro. +pattern VS_label = VSTokenType "label" -- ^ For identifiers that declare a label. +pattern VS_comment = VSTokenType "comment" -- ^ For tokens that represent a comment. +pattern VS_string = VSTokenType "string" -- ^ For tokens that represent a string literal. +pattern VS_keyword = VSTokenType "keyword" -- ^ For tokens that represent a language keyword. +pattern VS_number = VSTokenType "number" -- ^ For tokens that represent a number literal. +pattern VS_regexp = VSTokenType "regexp" -- ^ For tokens that represent a regular expression literal. +pattern VS_operator = VSTokenType "operator" -- ^ For tokens that represent an operator. + +-- * VS Code token modifiers + +newtype VSTokenModifier = VSTokenModifier Text + deriving newtype (ToJSON, IsString) + +-- ** Standard token modifiers + +pattern VS_declaration = VSTokenModifier "declaration" -- ^ For declarations of symbols. +pattern VS_definition = VSTokenModifier "definition" -- ^ For definitions of symbols, for example, in header files. +pattern VS_readonly = VSTokenModifier "readonly" -- ^ For readonly variables and member fields (constants). +pattern VS_static = VSTokenModifier "static" -- ^ For class members (static members). +pattern VS_deprecated = VSTokenModifier "deprecated" -- ^ For symbols that should no longer be used. +pattern VS_abstract = VSTokenModifier "abstract" -- ^ For types and member functions that are abstract. +pattern VS_async = VSTokenModifier "async" -- ^ For functions that are marked async. +pattern VS_modification = VSTokenModifier "modification" -- ^ For variable references where the variable is assigned to. +pattern VS_documentation = VSTokenModifier "documentation" -- ^ For occurrences of symbols in documentation. +pattern VS_defaultLibrary = VSTokenModifier "defaultLibrary" -- ^ For symbols that are part of the standard library. diff --git a/rzk/src/Rzk/Main.hs b/rzk/src/Rzk/Main.hs index 33f65b832..1194eb7f8 100644 --- a/rzk/src/Rzk/Main.hs +++ b/rzk/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.Tokens (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 [("", 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,8 +36,37 @@ main = getRecord "rzk: an experimental proof assistant for synthetic ∞-categor 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 [("", 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 From 6a22d02dbe72a6b03715f2a5b043f0194fb825d1 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Sat, 17 Jun 2023 10:48:41 +0300 Subject: [PATCH 06/13] Split modules for VSCode tokenizer --- rzk/rzk.cabal | 2 + rzk/setup.py | 7 ++ rzk/src/Language/Rzk/VSCode/Tokenize.hs | 44 +++++++++++ rzk/src/Language/Rzk/VSCode/Tokens.hs | 78 ++----------------- .../Language/Rzk/VSCode/Tokens/Standard.hs | 40 ++++++++++ rzk/src/Rzk/Main.hs | 16 ++-- 6 files changed, 108 insertions(+), 79 deletions(-) create mode 100644 rzk/setup.py create mode 100644 rzk/src/Language/Rzk/VSCode/Tokenize.hs create mode 100644 rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs diff --git a/rzk/rzk.cabal b/rzk/rzk.cabal index 918d74e35..b376a0ccf 100644 --- a/rzk/rzk.cabal +++ b/rzk/rzk.cabal @@ -36,7 +36,9 @@ library Language.Rzk.Syntax.Lex Language.Rzk.Syntax.Par Language.Rzk.Syntax.Print + Language.Rzk.VSCode.Tokenize Language.Rzk.VSCode.Tokens + Language.Rzk.VSCode.Tokens.Standard Rzk Rzk.Main Rzk.TypeCheck diff --git a/rzk/setup.py b/rzk/setup.py new file mode 100644 index 000000000..43109dcbd --- /dev/null +++ b/rzk/setup.py @@ -0,0 +1,7 @@ +# File generated by the BNF Converter (bnfc 2.9.4.1). + +from setuptools import setup, find_packages +setup(name = 'pygment-syntax', version = 0.1, + packages = ['syntax'], + entry_points = {'pygments.lexers':"syntax=syntax:SyntaxLexer"}, + install_requires = ['pygments']) diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs new file mode 100644 index 000000000..66e205461 --- /dev/null +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -0,0 +1,44 @@ +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE RecordWildCards #-} +module Language.Rzk.VSCode.Tokenize where + +import Language.Rzk.Syntax +import Language.Rzk.Syntax.Print +import Language.Rzk.VSCode.Tokens +import Language.Rzk.VSCode.Tokens.Standard + +tokenizeModule :: Module -> [VSToken] +tokenizeModule (Module _loc langDecl commands) = concat + [ tokenizeLanguageDecl langDecl + , foldMap tokenizeCommand commands + ] + +tokenizeLanguageDecl :: LanguageDecl -> [VSToken] +tokenizeLanguageDecl decl@(LanguageDecl loc lang) = concat + [ mkToken loc decl vs_macro [] + , tokenizeLanguage lang ] + +tokenizeLanguage :: Language -> [VSToken] +tokenizeLanguage lang@(Rzk1 loc) = + mkToken loc lang vs_namespace [] + +tokenizeCommand :: Command -> [VSToken] +tokenizeCommand command = case command of + CommandSetOption{} -> [] -- FIXME: tokenize + CommandUnsetOption{} -> [] -- FIXME: tokenize + CommandCheck{} -> [] -- FIXME: tokenize + CommandCompute{} -> [] -- FIXME: tokenize + CommandComputeNF{} -> [] -- FIXME: tokenize + CommandComputeWHNF{} -> [] -- FIXME: tokenize + + CommandPostulate{} -> [] -- FIXME: tokenize + CommandDefine{} -> [] -- FIXME: tokenize + + CommandAssume{} -> [] -- FIXME: tokenize + CommandSection{} -> [] -- FIXME: tokenize + + +mkToken :: Print a => BNFC'Position -> a -> VSTokenType -> [VSTokenModifier] -> [VSToken] +mkToken Nothing _ _ _ = [] +mkToken (Just (line, col)) x tokenType tokenModifiers = + [ VSToken { startCharacter = col, length = Prelude.length (printTree x) , .. } ] diff --git a/rzk/src/Language/Rzk/VSCode/Tokens.hs b/rzk/src/Language/Rzk/VSCode/Tokens.hs index e7e15bf00..213016add 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokens.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokens.hs @@ -3,42 +3,18 @@ {-# 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) - -import Language.Rzk.Syntax -import Language.Rzk.Syntax.Print - -tokenizeModule :: Module -> [VSToken] -tokenizeModule (Module _loc langDecl commands) = concat - [ tokenizeLanguageDecl langDecl - , foldMap tokenizeCommand commands - ] - -tokenizeLanguageDecl :: LanguageDecl -> [VSToken] -tokenizeLanguageDecl decl@(LanguageDecl loc lang) = concat - [ mkToken loc decl VS_macro [] - , tokenizeLanguage lang ] - -tokenizeLanguage :: Language -> [VSToken] -tokenizeLanguage lang@(Rzk1 loc) = - mkToken loc lang VS_namespace [] - -tokenizeCommand :: Command -> [VSToken] -tokenizeCommand _ = [] - -mkToken :: Print a => BNFC'Position -> a -> VSTokenType -> [VSTokenModifier] -> [VSToken] -mkToken Nothing _ _ _ = [] -mkToken (Just (line, col)) x tokenType tokenModifiers = - [ VSToken { startCharacter = col, length = Prelude.length (printTree x) , .. } ] +import Data.String (IsString) +import Data.Text (Text) +import GHC.Generics (Generic) +-- | VS Code token. data VSToken = VSToken { line :: !Int , startCharacter :: !Int @@ -47,51 +23,11 @@ data VSToken = VSToken , tokenModifiers :: [VSTokenModifier] } deriving (Generic, ToJSON) --- * VS Code token types - +-- | 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) --- ** Standard token types - -pattern VS_namespace = VSTokenType "namespace" -- ^ For identifiers that declare or reference a namespace, module, or package. -pattern VS_class = VSTokenType "class" -- ^ For identifiers that declare or reference a class type. -pattern VS_enum = VSTokenType "enum" -- ^ For identifiers that declare or reference an enumeration type. -pattern VS_interface = VSTokenType "interface" -- ^ For identifiers that declare or reference an interface type. -pattern VS_struct = VSTokenType "struct" -- ^ For identifiers that declare or reference a struct type. -pattern VS_typeParameter = VSTokenType "typeParameter" -- ^ For identifiers that declare or reference a type parameter. -pattern VS_type = VSTokenType "type" -- ^ For identifiers that declare or reference a type that is not covered above. -pattern VS_parameter = VSTokenType "parameter" -- ^ For identifiers that declare or reference a function or method parameters. -pattern VS_variable = VSTokenType "variable" -- ^ For identifiers that declare or reference a local or global variable. -pattern VS_property = VSTokenType "property" -- ^ For identifiers that declare or reference a member property, member field, or member variable. -pattern VS_enumMember = VSTokenType "enumMember" -- ^ For identifiers that declare or reference an enumeration property, constant, or member. -pattern VS_decorator = VSTokenType "decorator" -- ^ For identifiers that declare or reference decorators and annotations. -pattern VS_event = VSTokenType "event" -- ^ For identifiers that declare an event property. -pattern VS_function = VSTokenType "function" -- ^ For identifiers that declare a function. -pattern VS_method = VSTokenType "method" -- ^ For identifiers that declare a member function or method. -pattern VS_macro = VSTokenType "macro" -- ^ For identifiers that declare a macro. -pattern VS_label = VSTokenType "label" -- ^ For identifiers that declare a label. -pattern VS_comment = VSTokenType "comment" -- ^ For tokens that represent a comment. -pattern VS_string = VSTokenType "string" -- ^ For tokens that represent a string literal. -pattern VS_keyword = VSTokenType "keyword" -- ^ For tokens that represent a language keyword. -pattern VS_number = VSTokenType "number" -- ^ For tokens that represent a number literal. -pattern VS_regexp = VSTokenType "regexp" -- ^ For tokens that represent a regular expression literal. -pattern VS_operator = VSTokenType "operator" -- ^ For tokens that represent an operator. - --- * VS Code token modifiers - +-- | 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 modifiers - -pattern VS_declaration = VSTokenModifier "declaration" -- ^ For declarations of symbols. -pattern VS_definition = VSTokenModifier "definition" -- ^ For definitions of symbols, for example, in header files. -pattern VS_readonly = VSTokenModifier "readonly" -- ^ For readonly variables and member fields (constants). -pattern VS_static = VSTokenModifier "static" -- ^ For class members (static members). -pattern VS_deprecated = VSTokenModifier "deprecated" -- ^ For symbols that should no longer be used. -pattern VS_abstract = VSTokenModifier "abstract" -- ^ For types and member functions that are abstract. -pattern VS_async = VSTokenModifier "async" -- ^ For functions that are marked async. -pattern VS_modification = VSTokenModifier "modification" -- ^ For variable references where the variable is assigned to. -pattern VS_documentation = VSTokenModifier "documentation" -- ^ For occurrences of symbols in documentation. -pattern VS_defaultLibrary = VSTokenModifier "defaultLibrary" -- ^ For symbols that are part of the standard library. diff --git a/rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs b/rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs new file mode 100644 index 000000000..dcab4ced8 --- /dev/null +++ b/rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs @@ -0,0 +1,40 @@ +{-# OPTIONS_GHC -Wall -fno-warn-missing-signatures #-} +{-# LANGUAGE OverloadedStrings #-} +module Language.Rzk.VSCode.Tokens.Standard where + +import Language.Rzk.VSCode.Tokens + +vs_namespace = VSTokenType "namespace" -- ^ For identifiers that declare or reference a namespace, module, or package. +vs_class = VSTokenType "class" -- ^ For identifiers that declare or reference a class type. +vs_enum = VSTokenType "enum" -- ^ For identifiers that declare or reference an enumeration type. +vs_interface = VSTokenType "interface" -- ^ For identifiers that declare or reference an interface type. +vs_struct = VSTokenType "struct" -- ^ For identifiers that declare or reference a struct type. +vs_typeParameter = VSTokenType "typeParameter" -- ^ For identifiers that declare or reference a type parameter. +vs_type = VSTokenType "type" -- ^ For identifiers that declare or reference a type that is not covered above. +vs_parameter = VSTokenType "parameter" -- ^ For identifiers that declare or reference a function or method parameters. +vs_variable = VSTokenType "variable" -- ^ For identifiers that declare or reference a local or global variable. +vs_property = VSTokenType "property" -- ^ For identifiers that declare or reference a member property, member field, or member variable. +vs_enumMember = VSTokenType "enumMember" -- ^ For identifiers that declare or reference an enumeration property, constant, or member. +vs_decorator = VSTokenType "decorator" -- ^ For identifiers that declare or reference decorators and annotations. +vs_event = VSTokenType "event" -- ^ For identifiers that declare an event property. +vs_function = VSTokenType "function" -- ^ For identifiers that declare a function. +vs_method = VSTokenType "method" -- ^ For identifiers that declare a member function or method. +vs_macro = VSTokenType "macro" -- ^ For identifiers that declare a macro. +vs_label = VSTokenType "label" -- ^ For identifiers that declare a label. +vs_comment = VSTokenType "comment" -- ^ For tokens that represent a comment. +vs_string = VSTokenType "string" -- ^ For tokens that represent a string literal. +vs_keyword = VSTokenType "keyword" -- ^ For tokens that represent a language keyword. +vs_number = VSTokenType "number" -- ^ For tokens that represent a number literal. +vs_regexp = VSTokenType "regexp" -- ^ For tokens that represent a regular expression literal. +vs_operator = VSTokenType "operator" -- ^ For tokens that represent an operator. + +vs_declaration = VSTokenModifier "declaration" -- ^ For declarations of symbols. +vs_definition = VSTokenModifier "definition" -- ^ For definitions of symbols, for example, in header files. +vs_readonly = VSTokenModifier "readonly" -- ^ For readonly variables and member fields (constants). +vs_static = VSTokenModifier "static" -- ^ For class members (static members). +vs_deprecated = VSTokenModifier "deprecated" -- ^ For symbols that should no longer be used. +vs_abstract = VSTokenModifier "abstract" -- ^ For types and member functions that are abstract. +vs_async = VSTokenModifier "async" -- ^ For functions that are marked async. +vs_modification = VSTokenModifier "modification" -- ^ For variable references where the variable is assigned to. +vs_documentation = VSTokenModifier "documentation" -- ^ For occurrences of symbols in documentation. +vs_defaultLibrary = VSTokenModifier "defaultLibrary" -- ^ For symbols that are part of the standard library. diff --git a/rzk/src/Rzk/Main.hs b/rzk/src/Rzk/Main.hs index 1194eb7f8..febd035b9 100644 --- a/rzk/src/Rzk/Main.hs +++ b/rzk/src/Rzk/Main.hs @@ -4,16 +4,16 @@ {-# LANGUAGE OverloadedStrings #-} module Rzk.Main where -import Control.Monad (forM) -import qualified Data.Aeson as JSON -import qualified Data.ByteString.Lazy.Char8 as ByteString -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 Language.Rzk.VSCode.Tokens (tokenizeModule) -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 From 914fcb67635b71999368e498611c511a26faf068 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Sat, 17 Jun 2023 10:58:45 +0300 Subject: [PATCH 07/13] Fix build for GHCJS --- rzk/src/Language/Rzk/VSCode/Tokenize.hs | 1 - rzk/src/Language/Rzk/VSCode/Tokens.hs | 136 ++++++++++++++++++ .../Language/Rzk/VSCode/Tokens/Standard.hs | 40 ------ 3 files changed, 136 insertions(+), 41 deletions(-) delete mode 100644 rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs index 66e205461..83785d4f1 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokenize.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -5,7 +5,6 @@ module Language.Rzk.VSCode.Tokenize where import Language.Rzk.Syntax import Language.Rzk.Syntax.Print import Language.Rzk.VSCode.Tokens -import Language.Rzk.VSCode.Tokens.Standard tokenizeModule :: Module -> [VSToken] tokenizeModule (Module _loc langDecl commands) = concat diff --git a/rzk/src/Language/Rzk/VSCode/Tokens.hs b/rzk/src/Language/Rzk/VSCode/Tokens.hs index 213016add..114830b42 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokens.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokens.hs @@ -31,3 +31,139 @@ newtype VSTokenType = VSTokenType Text 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/rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs b/rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs deleted file mode 100644 index dcab4ced8..000000000 --- a/rzk/src/Language/Rzk/VSCode/Tokens/Standard.hs +++ /dev/null @@ -1,40 +0,0 @@ -{-# OPTIONS_GHC -Wall -fno-warn-missing-signatures #-} -{-# LANGUAGE OverloadedStrings #-} -module Language.Rzk.VSCode.Tokens.Standard where - -import Language.Rzk.VSCode.Tokens - -vs_namespace = VSTokenType "namespace" -- ^ For identifiers that declare or reference a namespace, module, or package. -vs_class = VSTokenType "class" -- ^ For identifiers that declare or reference a class type. -vs_enum = VSTokenType "enum" -- ^ For identifiers that declare or reference an enumeration type. -vs_interface = VSTokenType "interface" -- ^ For identifiers that declare or reference an interface type. -vs_struct = VSTokenType "struct" -- ^ For identifiers that declare or reference a struct type. -vs_typeParameter = VSTokenType "typeParameter" -- ^ For identifiers that declare or reference a type parameter. -vs_type = VSTokenType "type" -- ^ For identifiers that declare or reference a type that is not covered above. -vs_parameter = VSTokenType "parameter" -- ^ For identifiers that declare or reference a function or method parameters. -vs_variable = VSTokenType "variable" -- ^ For identifiers that declare or reference a local or global variable. -vs_property = VSTokenType "property" -- ^ For identifiers that declare or reference a member property, member field, or member variable. -vs_enumMember = VSTokenType "enumMember" -- ^ For identifiers that declare or reference an enumeration property, constant, or member. -vs_decorator = VSTokenType "decorator" -- ^ For identifiers that declare or reference decorators and annotations. -vs_event = VSTokenType "event" -- ^ For identifiers that declare an event property. -vs_function = VSTokenType "function" -- ^ For identifiers that declare a function. -vs_method = VSTokenType "method" -- ^ For identifiers that declare a member function or method. -vs_macro = VSTokenType "macro" -- ^ For identifiers that declare a macro. -vs_label = VSTokenType "label" -- ^ For identifiers that declare a label. -vs_comment = VSTokenType "comment" -- ^ For tokens that represent a comment. -vs_string = VSTokenType "string" -- ^ For tokens that represent a string literal. -vs_keyword = VSTokenType "keyword" -- ^ For tokens that represent a language keyword. -vs_number = VSTokenType "number" -- ^ For tokens that represent a number literal. -vs_regexp = VSTokenType "regexp" -- ^ For tokens that represent a regular expression literal. -vs_operator = VSTokenType "operator" -- ^ For tokens that represent an operator. - -vs_declaration = VSTokenModifier "declaration" -- ^ For declarations of symbols. -vs_definition = VSTokenModifier "definition" -- ^ For definitions of symbols, for example, in header files. -vs_readonly = VSTokenModifier "readonly" -- ^ For readonly variables and member fields (constants). -vs_static = VSTokenModifier "static" -- ^ For class members (static members). -vs_deprecated = VSTokenModifier "deprecated" -- ^ For symbols that should no longer be used. -vs_abstract = VSTokenModifier "abstract" -- ^ For types and member functions that are abstract. -vs_async = VSTokenModifier "async" -- ^ For functions that are marked async. -vs_modification = VSTokenModifier "modification" -- ^ For variable references where the variable is assigned to. -vs_documentation = VSTokenModifier "documentation" -- ^ For occurrences of symbols in documentation. -vs_defaultLibrary = VSTokenModifier "defaultLibrary" -- ^ For symbols that are part of the standard library. From 8fcd7f6fbd91ad34f3fcc7f675907b2e1abd4531 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Sat, 17 Jun 2023 12:41:45 +0300 Subject: [PATCH 08/13] Add basic tokenizer support (WIP) --- rzk/rzk.cabal | 1 - rzk/src/Language/Rzk/Free/Syntax.hs | 12 +- rzk/src/Language/Rzk/Syntax.cf | 7 +- rzk/src/Language/Rzk/Syntax/Abs.hs | 51 +- rzk/src/Language/Rzk/Syntax/Doc.txt | 6 +- rzk/src/Language/Rzk/Syntax/Lex.hs | 12 +- rzk/src/Language/Rzk/Syntax/Lex.x | 16 +- rzk/src/Language/Rzk/Syntax/Par.hs | 1130 ++- rzk/src/Language/Rzk/Syntax/Par.info | 11735 +++++++++++----------- rzk/src/Language/Rzk/Syntax/Par.y | 158 +- rzk/src/Language/Rzk/Syntax/Print.hs | 75 +- rzk/src/Language/Rzk/Syntax/Skel.hs | 20 +- rzk/src/Language/Rzk/VSCode/Tokenize.hs | 139 +- rzk/src/Rzk/TypeCheck.hs | 16 +- 14 files changed, 6969 insertions(+), 6409 deletions(-) diff --git a/rzk/rzk.cabal b/rzk/rzk.cabal index b376a0ccf..536745d52 100644 --- a/rzk/rzk.cabal +++ b/rzk/rzk.cabal @@ -38,7 +38,6 @@ library Language.Rzk.Syntax.Print Language.Rzk.VSCode.Tokenize Language.Rzk.VSCode.Tokens - Language.Rzk.VSCode.Tokens.Standard Rzk Rzk.Main Rzk.TypeCheck diff --git a/rzk/src/Language/Rzk/Free/Syntax.hs b/rzk/src/Language/Rzk/Free/Syntax.hs index 9770eb1f2..9a380f24d 100644 --- a/rzk/src/Language/Rzk/Free/Syntax.hs +++ b/rzk/src/Language/Rzk/Free/Syntax.hs @@ -4,6 +4,7 @@ {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} @@ -272,7 +273,10 @@ fromTermWith' used vars = go 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 = + [ Rzk.VarIdent Nothing (Rzk.VarIdentToken name) + | n <- [1..] + , let name = "x" <> map digitToSub (show n) ] where digitToSub c = chr ((ord c - ord '0') + ord '₀') @@ -283,9 +287,13 @@ defaultVarIdents = coerce [ "x" <> map digitToSub (show n) | n <- [1..] ] -- x₂ refreshVar :: [Rzk.VarIdent] -> Rzk.VarIdent -> Rzk.VarIdent refreshVar vars x - | x `elem` vars = refreshVar vars (coerce incIndex x) + | x `elem` vars = refreshVar vars (incVarIdentIndex x) | otherwise = x +incVarIdentIndex :: Rzk.VarIdent -> Rzk.VarIdent +incVarIdentIndex (Rzk.VarIdent loc token) = + Rzk.VarIdent loc (coerce incIndex token) + -- | Increment the subscript number at the end of the indentifier. -- -- >>> incIndex "x" diff --git a/rzk/src/Language/Rzk/Syntax.cf b/rzk/src/Language/Rzk/Syntax.cf index d4a5bd945..2c685f1ef 100644 --- a/rzk/src/Language/Rzk/Syntax.cf +++ b/rzk/src/Language/Rzk/Syntax.cf @@ -3,12 +3,15 @@ comment "{-" "-}" ; layout toplevel ; -token VarIdent ((char - ["-?!.\\;,#\"][)(}{><| \t\n\r"]) (char - ["\\;,#\"][)(}{><| \t\n\r"])*) ; +token VarIdentToken ((char - ["-?!.\\;,#\"][)(}{><| \t\n\r"]) (char - ["\\;,#\"][)(}{><| \t\n\r"])*) ; -token HoleIdent '?' ; +token HoleIdentToken '?' ; Module. Module ::= LanguageDecl [Command] ; +HoleIdent. HoleIdent ::= HoleIdentToken ; + +VarIdent. VarIdent ::= VarIdentToken ; separator nonempty VarIdent "" ; LanguageDecl. LanguageDecl ::= "#lang" Language ";" ; diff --git a/rzk/src/Language/Rzk/Syntax/Abs.hs b/rzk/src/Language/Rzk/Syntax/Abs.hs index 358c74a7f..ec613a673 100644 --- a/rzk/src/Language/Rzk/Syntax/Abs.hs +++ b/rzk/src/Language/Rzk/Syntax/Abs.hs @@ -27,6 +27,14 @@ type Module = Module' BNFC'Position 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,25 @@ data Command' a | 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 + | 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) @@ -116,33 +125,33 @@ data Term' 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 +172,10 @@ unicode_TypeSigma = \ _a pat fst snd -> TypeSigma _a pat fst snd 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 +197,14 @@ instance HasPosition Module where 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 diff --git a/rzk/src/Language/Rzk/Syntax/Doc.txt b/rzk/src/Language/Rzk/Syntax/Doc.txt index 2beffebc9..c4d100d1d 100644 --- a/rzk/src/Language/Rzk/Syntax/Doc.txt +++ b/rzk/src/Language/Rzk/Syntax/Doc.txt @@ -19,12 +19,12 @@ except ``"`` unless preceded by ``\``. -VarIdent literals are recognized by the regular expression +VarIdentToken literals are recognized by the regular expression `````(char - [" !"#(),-.;<>?[\]{|}"]) (char - [" "#(),;<>[\]{|}"])*````` -HoleIdent literals are recognized by the regular expression +HoleIdentToken literals are recognized by the regular expression `````'?'````` @@ -61,6 +61,8 @@ and **eps** (empty rule) belong to the BNF notation. All other symbols are terminals. | //Module// | -> | //LanguageDecl// //[Command]// + | //HoleIdent// | -> | //HoleIdentToken// + | //VarIdent// | -> | //VarIdentToken// | //[VarIdent]// | -> | //VarIdent// | | **|** | //VarIdent// //[VarIdent]// | //LanguageDecl// | -> | ``#lang`` //Language// ``;`` diff --git a/rzk/src/Language/Rzk/Syntax/Lex.hs b/rzk/src/Language/Rzk/Syntax/Lex.hs index 6f31c0ea9..0b112257c 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.hs +++ b/rzk/src/Language/Rzk/Syntax/Lex.hs @@ -229,8 +229,8 @@ data Tok | 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 @@ tokenText t = case t of 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 @@ -440,8 +440,8 @@ utf8Encode = map fromIntegral . go . ord , 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/rzk/src/Language/Rzk/Syntax/Lex.x b/rzk/src/Language/Rzk/Syntax/Lex.x index 0c2521c84..640c93b85 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.x +++ b/rzk/src/Language/Rzk/Syntax/Lex.x @@ -45,13 +45,13 @@ $white+ ; @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 @@ data Tok | 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 @@ tokenText t = case t of 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 diff --git a/rzk/src/Language/Rzk/Syntax/Par.hs b/rzk/src/Language/Rzk/Syntax/Par.hs index 12c06d89e..c83be91fd 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.hs +++ b/rzk/src/Language/Rzk/Syntax/Par.hs @@ -10,6 +10,8 @@ module Language.Rzk.Syntax.Par ( happyError , myLexer , pModule + , pHoleIdent + , pVarIdent , pListVarIdent , pLanguageDecl , pLanguage @@ -53,155 +55,141 @@ 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 ) +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.Module)) -happyIn30 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (HappyAbsSyn ) +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.VarIdent])) -happyIn31 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) -> (HappyAbsSyn ) +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.LanguageDecl)) -happyIn32 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (HappyAbsSyn ) +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.Language)) -happyIn33 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (HappyAbsSyn ) +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.Command)) -happyIn34 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (HappyAbsSyn ) +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.Command])) -happyIn35 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (HappyAbsSyn ) +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.DeclUsedVars)) -happyIn36 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) -> (HappyAbsSyn ) +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.SectionName)) -happyIn37 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) -> (HappyAbsSyn ) +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.Pattern)) -happyIn38 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn ) +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.Pattern])) -happyIn39 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn ) +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.Param)) -happyIn40 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn ) +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.Param])) -happyIn41 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn ) +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.ParamDecl)) -happyIn42 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn ) +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.Restriction)) -happyIn43 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn ) +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.Restriction])) -happyIn44 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn ) +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.Term)) -happyIn45 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +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.Term)) -happyIn46 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +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.Term)) -happyIn47 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +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.Term)) -happyIn48 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +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 @@ -235,13 +223,41 @@ happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x) 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 ) +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 #-} @@ -251,42 +267,40 @@ happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x 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"# +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\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\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfc\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\x01\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\x40\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x40\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x02\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\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\x20\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\x04\x80\x02\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\x10\x00\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\x00\x90\x78\x04\x7b\xe0\x03\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\x89\x47\xf0\x4b\xbf\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x03\xbf\x02\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\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\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x3e\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\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\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x3e\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\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\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\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x00\x00\x89\x47\xb0\x07\x3e\x00\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\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\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\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\x89\x47\xb0\x07\x3e\x00\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\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\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\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\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\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\x00\x00\x00\x01\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\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x02\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\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\x10\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\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\x00\x40\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\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\x08\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\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\x00\x00\x00\x00\x10\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\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\x80\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\xe0\xcf\x0f\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\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x40\x00\x00\x02\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\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x01\x00\x00\x40\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x40\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\x08\x00\x00\x00\x10\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\x89\x47\xf0\x0b\xbf\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\x20\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\x20\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\x08\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\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\x40\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\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x08\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\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\x00\x10\x00\x00\x00\x00\x08\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\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\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\x89\x47\xf0\x0b\xbf\xa2\x06\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\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\x00\x20\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\x40\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\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\x89\x47\xf0\x0b\xbf\xa2\x06\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\x08\x00\x40\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x08\x00\x40\x00\x02\x02\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\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\x89\x47\xf0\x0b\xbf\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\x00\x00\x00\x00\x00\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\x08\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\x08\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\x08\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\x40\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\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\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\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\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x02\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\x20\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\x02\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\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\xa2\x06\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\x10\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\x10\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\x10\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\x10\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\x04\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x10\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\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\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\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\x00\x00\x10\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\x89\x47\xf0\x0b\xbf\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\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\x00\x00\x00\x00\x00\x00\x00\x00\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\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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_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 + 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'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'uses'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"] + bit_start = st Prelude.* 124 + bit_end = (st Prelude.+ 1) Prelude.* 124 read_bit = readArrayBit happyExpList bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1] - bits_indexed = Prelude.zip bits [0..119] + bits_indexed = Prelude.zip bits [0..123] 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"# +happyActOffsets = HappyA# "\xfa\xff\xca\xff\xd0\xff\xd0\xff\x3d\x00\xeb\xff\xe5\x06\xe5\x06\x24\x00\x28\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\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\xfe\xff\x67\x00\x5f\x00\x3b\x00\x00\x00\xa7\x00\x85\x00\x4a\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x53\x00\x4b\x01\x96\x00\x00\x00\x9d\x00\x00\x00\x47\x00\x4b\x01\x34\x00\xa3\x00\xa6\x00\x00\x00\x00\x00\x78\x00\xf1\xff\x47\x00\x21\x00\x78\x00\x78\x00\x25\x01\x78\x00\x78\x00\xf3\xff\x78\x00\xa9\x00\x83\x00\x8e\x00\x9f\x00\x9f\x00\x25\x01\x00\x00\x00\x00\x53\x00\x9f\x00\x57\x00\x00\x00\x57\x00\x9f\x00\x57\x00\x9f\x00\x57\x00\x9f\x00\x00\x00\x9f\x00\x9f\x00\xc4\x00\xc7\x00\xa4\x00\xb4\x00\x47\x00\x47\x00\x47\x00\x47\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xbf\x00\xbf\x00\xc1\x00\xc1\x00\xc8\x00\xc8\x00\x00\x00\xc8\x00\xdb\x00\xd9\x00\xd0\x00\xd0\x00\xd0\x00\xd0\x00\xe5\x06\x00\x00\x00\x00\x03\x01\x07\x01\x0e\x01\x00\x00\x0c\x01\x1c\x01\x02\x01\x02\x01\x02\x01\x00\x00\x00\x00\x00\x00\x2a\x01\x2b\x01\xe5\x06\xfa\x00\x3d\x01\x00\x00\x39\x01\x0c\x00\x41\x01\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\xff\x00\xff\x00\x47\x00\x18\x00\x57\x00\x57\x00\x44\x01\x57\x00\x00\x00\xec\xff\x47\x00\x47\x00\x00\x00\x55\x01\x57\x00\x56\x01\x51\x01\x52\x01\x47\x00\x47\x00\xff\x00\xff\x00\xff\x00\xff\x00\x47\x00\x47\x00\x00\x00\x00\x00\x5f\x01\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\x53\x01\x47\x00\x66\x01\x75\x01\xf2\xff\x47\x00\x00\x00\xf9\xff\x47\x00\x6c\x01\x90\x01\x00\x00\x47\x00\x70\x01\x00\x00\x25\x01\x00\x00\x00\x00\x92\x01\x47\x00\x57\x00\x47\x00\xaf\x01\x00\x00\x47\x00\x47\x00\x64\x00\x94\x00\x27\x01\xe5\x06\xa3\x01\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x01\xcc\x01\x47\x00\xcd\x01\x47\x00\xd0\x01\x47\x00\x00\x00\x00\x00\x00\x00\xc1\x01\xf5\x01\xf9\x01\x00\x00\xff\x00\xfa\x01\x47\x00\x47\x00\x2a\x00\x47\x00\xd2\x01\x47\x00\x00\x00\x47\x00\x00\x00\x47\x00\xe9\x01\x00\x02\x0f\x02\x00\x00\x00\x00\x00\x00\x10\x02\x18\x02\x1c\x02\x00\x00\x20\x02\x47\x00\x00\x00\x21\x02\x23\x02\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x1b\x02\x47\x00\x2a\x02\x47\x00\x00\x00\x47\x00\x06\x02\x00\x00\x00\x00\x36\x02\x47\x00\x3b\x02\x47\x00\x30\x02\x44\x02\x49\x02\x31\x02\x3e\x02\x47\x00\x47\x00\x69\x02\x47\x00\x6a\x02\x6f\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\x56\x02\x47\x00\x47\x00\x00\x00\x7f\x02\x8d\x02\x00\x00\x00\x00\x47\x00\x8f\x02\x47\x00\x93\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"# +happyGotoOffsets = HappyA# "\x0b\x00\x6f\x00\x4e\x00\xc2\x00\xa2\x02\xb0\x02\xbb\x02\x2f\x00\xae\x02\x12\x00\xd2\x00\x95\x00\xf4\x06\x43\x01\x70\x06\xe8\x01\x9c\x01\xfc\x00\x77\x06\x59\x06\x74\x01\x23\x06\x93\x05\xb0\x00\x03\x02\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\x1a\x01\x00\x00\x00\x00\x0e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x06\x9e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x29\x02\xb3\x06\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x06\x34\x02\x00\x00\x00\x00\x00\x00\xb8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x06\x00\x00\x00\x00\xbe\x06\x00\x00\x08\x02\x00\x00\x76\x01\x00\x00\x2e\x02\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\x4f\x02\x5a\x02\x75\x02\x80\x02\x92\x00\xd1\x00\x46\x01\xed\x00\xc7\x02\xc8\x02\x5c\x01\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x02\xbc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\xc0\x02\xc4\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\xdf\x01\x00\x00\x00\x00\x00\x00\x2e\x02\x00\x00\x00\x00\x00\x00\xb7\x01\x9b\x02\xc2\x01\xdc\x00\x2a\x06\xa6\x02\x00\x00\x55\x02\x7a\x02\x00\x00\x7b\x02\x00\x00\x00\x00\xdd\x01\xc1\x02\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x8e\x01\x9d\x05\x31\x06\x52\x06\x92\x06\x99\x06\xb7\x05\xc1\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x02\xe7\x02\xf2\x02\x00\x00\xdb\x05\x00\x00\x00\x00\x00\x00\x0d\x03\x00\x00\x00\x00\x18\x03\x00\x00\x00\x00\x00\x00\x33\x03\x00\x00\x00\x00\xb8\x06\x00\x00\x00\x00\x00\x00\x3e\x03\xa1\x02\x59\x03\x00\x00\x00\x00\x64\x03\x7f\x03\xc3\x06\xd0\x06\xd5\x06\x21\x01\xd3\x02\x8a\x03\xa5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x03\x00\x00\xcb\x03\x00\x00\xd6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x06\x00\x00\xf1\x03\xfc\x03\x00\x00\x17\x04\x00\x00\x22\x04\x00\x00\x3d\x04\x00\x00\x48\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x04\x00\x00\x89\x04\x00\x00\x94\x04\x00\x00\xaf\x04\xb9\x01\x00\x00\x00\x00\x00\x00\xba\x04\x00\x00\xd5\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x04\xfb\x04\x00\x00\xe5\x05\x00\x00\x00\x00\x06\x05\x00\x00\xff\x05\x09\x06\x00\x00\x00\x00\x21\x05\x00\x00\x2c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x05\x52\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x78\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\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"# +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\x9f\xff\x9e\xff\x00\x00\x86\xff\x98\xff\x96\xff\x94\xff\x8e\xff\x84\xff\x9b\xff\x83\xff\x00\x00\x00\x00\xae\xff\xac\xff\xaf\xff\xab\xff\xad\xff\x00\x00\xa9\xff\xb1\xff\x00\x00\xaa\xff\xb0\xff\xb2\xff\x00\x00\x00\x00\x00\x00\xa8\xff\x00\x00\xa3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x8e\xff\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xff\xc4\xff\xc0\xff\xbd\xff\x00\x00\x00\x00\xc5\xff\x00\x00\x00\x00\xc2\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\xc1\xff\x00\x00\xc2\xff\x00\x00\xbc\xff\x89\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xff\x00\x00\x00\x00\x00\x00\x88\xff\x00\x00\x00\x00\x00\x00\x9e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x93\xff\x9a\xff\x99\xff\x97\xff\x95\xff\x85\xff\x82\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\x00\x00\x00\x00\x90\xff\x9c\xff\xb3\xff\xb5\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\x8a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\xff\x00\x00\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\xb8\xff\xa5\xff\x00\x00\x00\x00\x00\x00\xa1\xff\x00\x00\x00\x00\xb9\xff\x00\x00\x00\x00\xa4\xff\x91\xff\xbf\xff\xc3\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\xb6\xff\x00\x00\x00\x00\xbe\xff\xcc\xff\x00\x00\xce\xff\x00\x00\xcf\xff\xcd\xff\x8b\xff\x8c\xff\x00\x00\x00\x00\x00\x00\x92\xff\x00\x00\x00\x00\xb7\xff\xa6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa0\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"# +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\x42\x00\x14\x00\x03\x00\x1e\x00\x12\x00\x41\x00\x07\x00\x01\x00\x1b\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x10\x00\x1f\x00\x0c\x00\x21\x00\x14\x00\x36\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\x09\x00\x0a\x00\x2e\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x2b\x00\x22\x00\x10\x00\x2e\x00\x09\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x41\x00\x37\x00\x01\x00\x39\x00\x09\x00\x0a\x00\x05\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x20\x00\x38\x00\x22\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x10\x00\x3a\x00\x1e\x00\x3c\x00\x10\x00\x41\x00\x41\x00\x2f\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x02\x00\x2b\x00\x04\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\x2e\x00\x09\x00\x0a\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x2c\x00\x39\x00\x43\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x01\x00\x41\x00\x1e\x00\x01\x00\x05\x00\x41\x00\x14\x00\x05\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x10\x00\x0d\x00\x0e\x00\x10\x00\x41\x00\x10\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x37\x00\x1b\x00\x39\x00\x01\x00\x02\x00\x10\x00\x04\x00\x05\x00\x10\x00\x10\x00\x41\x00\x42\x00\x13\x00\x43\x00\x15\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x01\x00\x14\x00\x1e\x00\x43\x00\x05\x00\x06\x00\x3b\x00\x1a\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x01\x00\x01\x00\x10\x00\x41\x00\x05\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x0d\x00\x04\x00\x05\x00\x43\x00\x10\x00\x1d\x00\x3e\x00\x13\x00\x43\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x01\x00\x14\x00\x1e\x00\x05\x00\x05\x00\x06\x00\x41\x00\x1a\x00\x24\x00\x25\x00\x0c\x00\x27\x00\x28\x00\x29\x00\x01\x00\x02\x00\x40\x00\x04\x00\x05\x00\x41\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x37\x00\x43\x00\x39\x00\x05\x00\x06\x00\x10\x00\x14\x00\x36\x00\x13\x00\x43\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x01\x00\x02\x00\x1e\x00\x04\x00\x05\x00\x1d\x00\x01\x00\x1b\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x09\x00\x0a\x00\x20\x00\x0d\x00\x14\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x37\x00\x10\x00\x13\x00\x1d\x00\x38\x00\x41\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x1b\x00\x1e\x00\x01\x00\x1b\x00\x1b\x00\x01\x00\x05\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0d\x00\x14\x00\x0f\x00\x10\x00\x1b\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x1b\x00\x01\x00\x13\x00\x1b\x00\x39\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x41\x00\x1e\x00\x15\x00\x15\x00\x1b\x00\x1b\x00\x1b\x00\x24\x00\x25\x00\x12\x00\x27\x00\x28\x00\x29\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x14\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x0d\x00\x04\x00\x05\x00\x11\x00\x1b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x41\x00\x42\x00\x1a\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\x1b\x00\x3c\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\x01\x00\x05\x00\x2d\x00\x11\x00\x05\x00\x06\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\x01\x00\x04\x00\x05\x00\x40\x00\x05\x00\x06\x00\x08\x00\x1b\x00\x1b\x00\x01\x00\x02\x00\x1b\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\x3a\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\x01\x00\x11\x00\x11\x00\x23\x00\x05\x00\x3c\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\x11\x00\x11\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\x11\x00\x11\x00\x05\x00\x11\x00\x01\x00\x02\x00\x1c\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\x1c\x00\x41\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\x01\x00\x1c\x00\x14\x00\x05\x00\x05\x00\x01\x00\x02\x00\x14\x00\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\x3c\x00\x3c\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x3a\x00\x04\x00\x05\x00\x01\x00\x01\x00\x14\x00\x14\x00\x05\x00\x05\x00\x01\x00\x02\x00\x14\x00\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\x3c\x00\x14\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\x01\x00\x01\x00\x14\x00\x11\x00\x05\x00\x05\x00\x01\x00\x02\x00\x07\x00\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\x08\x00\x0b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x09\x00\x04\x00\x05\x00\x00\x00\x00\x00\x0b\x00\x08\x00\x0b\x00\xff\xff\x01\x00\x02\x00\x0b\x00\x04\x00\x05\x00\x11\x00\x00\x00\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\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\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\xff\xff\x05\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x11\x00\xff\xff\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\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\xff\xff\x14\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x01\x00\xff\xff\xff\xff\x14\x00\x05\x00\xff\xff\xff\xff\x0d\x00\x14\x00\x0f\x00\x10\x00\xff\xff\x0d\x00\x01\x00\x0f\x00\x10\x00\xff\xff\x05\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\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\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\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"# +happyTable = HappyA# "\x00\x00\x47\x00\xb4\x00\x79\x00\x2c\x00\x9c\x00\xfb\x00\xc6\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x44\x00\xd5\x00\x7d\x00\x31\x00\x9c\x00\x43\x00\x7e\x00\x1c\x00\xf9\x00\x32\x00\x33\x00\x61\x00\x35\x00\x36\x00\x37\x00\x99\x00\x60\x00\xb2\x00\x62\x00\xb3\x00\xd5\x00\x77\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x2b\x00\xc7\x00\xcc\x00\x2c\x00\xb5\x00\xcd\x00\x9a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x44\x00\xff\xff\x31\x00\xff\xff\x60\x00\x65\x00\x66\x00\x5b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x9d\x00\x38\x00\x9e\x00\xa3\x00\xad\x00\x79\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x43\x00\x3f\x00\x1c\x00\x40\x00\x65\x00\x7f\x00\x7b\x00\x41\x00\x5b\x00\x42\x00\x2b\x00\x43\x00\x44\x00\x2c\x00\x9d\x00\x65\x00\x9e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5b\x00\x5a\x00\x0b\x01\x31\x00\x0c\x01\x60\x00\x43\x00\x43\x00\xaf\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x1d\x00\x38\x00\x7c\x00\x5a\x00\x43\x00\x1c\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xb1\x00\x3f\x00\xec\x00\x40\x00\x5b\x00\x65\x00\xd7\x00\x41\x00\x5b\x00\x42\x00\x2b\x00\x43\x00\x44\x00\x2c\x00\xb0\x00\x5c\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5b\x00\x1c\x00\x43\x00\x31\x00\x1c\x00\x89\x00\x43\x00\xae\x00\x55\x00\x32\x00\x33\x00\x5c\x00\x35\x00\x36\x00\x37\x00\xaa\x00\x5d\x00\x5e\x00\x5a\x00\x43\x00\xa7\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xa6\x00\x3f\x00\xea\x00\x40\x00\x1c\x00\x1d\x00\xa1\x00\x1e\x00\x1f\x00\xa0\x00\x47\x00\x43\x00\x44\x00\x2c\x00\xff\xff\xbb\xff\x9b\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5b\x00\x1c\x00\x21\x00\x31\x00\xff\xff\x79\x00\x7a\x00\x9a\x00\x45\x00\x32\x00\x33\x00\x5c\x00\x35\x00\x36\x00\x37\x00\x99\x00\x1c\x00\x1c\x00\x91\x00\x43\x00\x88\x00\x55\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x1c\x00\x1d\x00\x60\x00\x1e\x00\x1f\x00\xff\xff\x2b\x00\x90\x00\xbb\xff\x2c\x00\xff\xff\x43\x00\x44\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x1c\x00\x21\x00\x31\x00\x61\x00\x79\x00\x8e\x00\x43\x00\xcf\x00\x32\x00\x33\x00\x86\x00\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x43\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x1c\x00\x3f\x00\xff\xff\x40\x00\x79\x00\x82\x00\x47\x00\x4e\x00\x77\x00\x2c\x00\xff\xff\x43\x00\x44\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x1c\x00\x1d\x00\x31\x00\x1e\x00\x1f\x00\xe2\x00\x1c\x00\xe1\x00\x32\x00\x33\x00\x55\x00\x35\x00\x36\x00\x37\x00\xe0\x00\x65\x00\xe5\x00\xdf\x00\xa1\x00\x97\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x47\x00\x3f\x00\x5a\x00\x2c\x00\xde\x00\x65\x00\x43\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x44\x00\xe8\x00\x31\x00\x1c\x00\xda\x00\xd9\x00\x1c\x00\x55\x00\x32\x00\x33\x00\x87\x00\x35\x00\x36\x00\x37\x00\x99\x00\x56\x00\xd5\x00\x57\x00\x58\x00\xd6\x00\x5b\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x47\x00\xd4\x00\x1c\x00\x2c\x00\xc9\x00\x5c\x00\x83\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x44\x00\x43\x00\x31\x00\xc2\x00\xc0\x00\xbf\x00\xbe\x00\xff\x00\x32\x00\x33\x00\x9c\x00\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\xfd\x00\x55\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x1c\x00\x1d\x00\x93\x00\x1e\x00\x1f\x00\xfc\x00\xf7\x00\x21\x00\x22\x00\x23\x00\x4b\x00\x43\x00\x44\x00\x4a\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\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\xbc\x00\xf6\x00\xf4\x00\x20\x00\x4f\x00\x50\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x1c\x00\x61\x00\xf3\x00\xef\x00\x79\x00\x80\x00\x1c\x00\x1d\x00\x1a\x01\x1e\x00\x1f\x00\x20\x00\x4f\x00\xd2\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x20\x00\x4f\x00\xd0\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x1c\x00\x79\x00\xd6\x00\x1a\x01\x19\x01\x17\x01\x1c\x00\x1d\x00\x15\x01\x1e\x00\x1f\x00\x20\x00\x4f\x00\xc3\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc4\x00\x20\x00\x52\x00\x13\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x1c\x00\x1d\x00\x12\x01\x1e\x00\x1f\x00\x1c\x00\x11\x01\x0f\x01\x05\x01\x55\x00\x09\x01\x1c\x00\x1d\x00\x04\x01\x1e\x00\xab\x00\x20\x00\x94\x00\x95\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x44\x00\x20\x00\x03\x01\x28\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x9e\x00\x1c\x00\x1d\x00\x27\x01\x1e\x00\x1f\x00\x1c\x00\x26\x01\x25\x01\x23\x01\x55\x00\x22\x01\x1c\x00\x1d\x00\x20\x01\x1e\x00\x1f\x00\x20\x00\x5d\x00\x92\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa4\x00\x20\x00\x1e\x01\x43\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x9e\x00\x1c\x00\x1d\x00\x34\x01\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x32\x01\x2f\x01\x55\x00\x55\x00\x1c\x00\x1d\x00\x2e\x01\x1e\x00\x1f\x00\x20\x00\x91\x00\xca\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8d\x00\x20\x00\x30\x01\x2d\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8c\x00\x1c\x00\x1d\x00\x2c\x01\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x29\x01\x3b\x01\x55\x00\x55\x00\x1c\x00\x1d\x00\x3a\x01\x1e\x00\x1f\x00\x20\x00\xc9\x00\xc7\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8b\x00\x20\x00\x3f\x01\x41\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8a\x00\x1c\x00\x1d\x00\x40\x01\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x43\x01\x45\x01\x55\x00\x55\x00\x1c\x00\x1d\x00\x77\x00\x1e\x00\x1f\x00\x20\x00\xc0\x00\xf0\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xd1\x00\x20\x00\x75\x00\x63\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xcd\x00\x1c\x00\x1d\x00\x74\x00\x1e\x00\x1f\x00\x85\x00\x84\x00\xdc\x00\x81\x00\xdb\x00\x00\x00\x1c\x00\x1d\x00\xda\x00\x1e\x00\x1f\x00\x20\x00\xe4\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x01\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\x00\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\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\xf9\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf7\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\xf4\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf1\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\xed\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\xec\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe3\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\xe2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x17\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\x15\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x13\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\x0d\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0c\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\x07\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\x06\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x05\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\x23\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x20\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\x1c\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\x1b\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x32\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\x30\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2a\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\x29\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x38\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\x35\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x34\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\x3d\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3c\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\x41\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x43\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\x47\x00\x48\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\xbb\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\x47\x00\xb6\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\xb5\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\x47\x00\xfd\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\x3b\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\x47\x00\x37\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\x36\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\x49\x00\x00\x00\x4a\x00\x21\x00\x22\x00\x23\x00\x24\x00\xce\x00\x00\x00\x4a\x00\x21\x00\x22\x00\x23\x00\x24\x00\xba\x00\x00\x00\x4a\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\x0f\x01\x00\x00\x4a\x00\x21\x00\x22\x00\x23\x00\xb9\x00\x00\x00\x00\x00\x4a\x00\x21\x00\x22\x00\x4c\x00\x00\x00\x1c\x00\x1d\x00\x4a\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x00\x00\x55\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x21\x00\x00\x00\x56\x00\x00\x00\x57\x00\xa8\x00\x54\x00\x21\x00\x4d\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x4a\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x54\x00\x00\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\x21\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x21\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x4a\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x55\x00\x1c\x00\x00\x00\x00\x00\xa3\x00\x55\x00\x00\x00\x00\x00\x56\x00\x97\x00\x57\x00\x96\x00\x00\x00\x56\x00\x1c\x00\x57\x00\xea\x00\x00\x00\x55\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x00\x00\x57\x00\xe8\x00\x00\x00\x56\x00\x00\x00\x57\x00\xe6\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x00\x00\x00\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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), +happyReduceArr = Happy_Data_Array.array (26, 125) [ (26 , happyReduce_26), (27 , happyReduce_27), (28 , happyReduce_28), @@ -382,139 +396,157 @@ happyReduceArr = Happy_Data_Array.array (24, 121) [ (118 , happyReduce_118), (119 , happyReduce_119), (120 , happyReduce_120), - (121 , happyReduce_121) + (121 , happyReduce_121), + (122 , happyReduce_122), + (123 , happyReduce_123), + (124 , happyReduce_124), + (125 , happyReduce_125) ] happy_n_terms = 68 :: Prelude.Int -happy_n_nonterms = 27 :: Prelude.Int +happy_n_nonterms = 29 :: Prelude.Int -happyReduce_24 = happySpecReduce_1 0# happyReduction_24 -happyReduction_24 happy_x_1 +happyReduce_26 = happySpecReduce_1 0# happyReduction_26 +happyReduction_26 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn27 + happyIn29 ((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 +happyReduce_27 = happySpecReduce_1 1# happyReduction_27 +happyReduction_27 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)) + happyIn30 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.VarIdentToken (tokenText happy_var_1)) )} -happyReduce_26 = happySpecReduce_1 2# happyReduction_26 -happyReduction_26 happy_x_1 +happyReduce_28 = happySpecReduce_1 2# happyReduction_28 +happyReduction_28 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)) + happyIn31 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.HoleIdentToken (tokenText happy_var_1)) )} -happyReduce_27 = happySpecReduce_2 3# happyReduction_27 -happyReduction_27 happy_x_2 +happyReduce_29 = happySpecReduce_2 3# happyReduction_29 +happyReduction_29 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 + = 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_28 = happySpecReduce_1 4# happyReduction_28 -happyReduction_28 happy_x_1 - = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> - happyIn31 +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_29 = happySpecReduce_2 4# happyReduction_29 -happyReduction_29 happy_x_2 +happyReduce_33 = happySpecReduce_2 6# happyReduction_33 +happyReduction_33 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 + = 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_30 = happySpecReduce_3 5# happyReduction_30 -happyReduction_30 happy_x_3 +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 happyOut33 happy_x_2 of { (HappyWrap33 happy_var_2) -> - happyIn32 + 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_31 = happySpecReduce_1 6# happyReduction_31 -happyReduction_31 happy_x_1 +happyReduce_35 = happySpecReduce_1 8# happyReduction_35 +happyReduction_35 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn33 + 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_32 = happyReduce 4# 7# happyReduction_32 -happyReduction_32 (happy_x_4 `HappyStk` +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 happyOut27 happy_x_2 of { (HappyWrap27 happy_var_2) -> - case happyOut27 happy_x_4 of { (HappyWrap27 happy_var_4) -> - happyIn34 + 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_33 = happySpecReduce_2 7# happyReduction_33 -happyReduction_33 happy_x_2 +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 happyOut27 happy_x_2 of { (HappyWrap27 happy_var_2) -> - happyIn34 + 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_34 = happyReduce 4# 7# happyReduction_34 -happyReduction_34 (happy_x_4 `HappyStk` +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 happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn34 + 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_35 = happySpecReduce_2 7# happyReduction_35 -happyReduction_35 happy_x_2 +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 happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> - happyIn34 + 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_36 = happySpecReduce_2 7# happyReduction_36 -happyReduction_36 happy_x_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 happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> - happyIn34 + 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_37 = happySpecReduce_2 7# happyReduction_37 -happyReduction_37 happy_x_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 happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> - happyIn34 + 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_38 = happyReduce 6# 7# happyReduction_38 -happyReduction_38 (happy_x_6 `HappyStk` +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` @@ -522,70 +554,70 @@ happyReduction_38 (happy_x_6 `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 + 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_39 = happyReduce 5# 7# happyReduction_39 -happyReduction_39 (happy_x_5 `HappyStk` +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 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 + 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_40 = happyReduce 4# 7# happyReduction_40 -happyReduction_40 (happy_x_4 `HappyStk` +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 happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn34 + 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_41 = happyReduce 4# 7# happyReduction_41 -happyReduction_41 (happy_x_4 `HappyStk` +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 happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn34 + 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_42 = happyReduce 4# 7# happyReduction_42 -happyReduction_42 (happy_x_4 `HappyStk` +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 happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn34 + 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_43 = happyReduce 6# 7# happyReduction_43 -happyReduction_43 (happy_x_6 `HappyStk` +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` @@ -593,15 +625,15 @@ happyReduction_43 (happy_x_6 `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 + 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_44 = happyReduce 8# 7# happyReduction_44 -happyReduction_44 (happy_x_8 `HappyStk` +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` @@ -611,17 +643,17 @@ happyReduction_44 (happy_x_8 `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 + 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_45 = happyReduce 7# 7# happyReduction_45 -happyReduction_45 (happy_x_7 `HappyStk` +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` @@ -630,16 +662,16 @@ happyReduction_45 (happy_x_7 `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 + 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_46 = happyReduce 8# 7# happyReduction_46 -happyReduction_46 (happy_x_8 `HappyStk` +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` @@ -649,17 +681,17 @@ happyReduction_46 (happy_x_8 `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 + 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_47 = happyReduce 7# 7# happyReduction_47 -happyReduction_47 (happy_x_7 `HappyStk` +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` @@ -668,125 +700,125 @@ happyReduction_47 (happy_x_7 `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 + 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_48 = happySpecReduce_0 8# happyReduction_48 -happyReduction_48 = happyIn35 +happyReduce_52 = happySpecReduce_0 10# happyReduction_52 +happyReduction_52 = happyIn39 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, []) ) -happyReduce_49 = happySpecReduce_3 8# happyReduction_49 -happyReduction_49 happy_x_3 +happyReduce_53 = happySpecReduce_3 10# happyReduction_53 +happyReduction_53 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 + = 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_50 = happyReduce 4# 9# happyReduction_50 -happyReduction_50 (happy_x_4 `HappyStk` +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 happyOut31 happy_x_3 of { (HappyWrap31 happy_var_3) -> - happyIn36 + 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_51 = happySpecReduce_0 9# happyReduction_51 -happyReduction_51 = happyIn36 +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_52 = happySpecReduce_0 10# happyReduction_52 -happyReduction_52 = happyIn37 +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_53 = happySpecReduce_1 10# happyReduction_53 -happyReduction_53 happy_x_1 - = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> - happyIn37 +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_54 = happySpecReduce_1 11# happyReduction_54 -happyReduction_54 happy_x_1 +happyReduce_58 = happySpecReduce_1 13# happyReduction_58 +happyReduction_58 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn38 + 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_55 = happySpecReduce_1 11# happyReduction_55 -happyReduction_55 happy_x_1 - = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> - happyIn38 +happyReduce_59 = happySpecReduce_1 13# happyReduction_59 +happyReduction_59 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_56 = happyReduce 5# 11# happyReduction_56 -happyReduction_56 (happy_x_5 `HappyStk` +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 happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> - case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> - happyIn38 + 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_57 = happySpecReduce_1 12# happyReduction_57 -happyReduction_57 happy_x_1 - = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> - happyIn39 +happyReduce_61 = happySpecReduce_1 14# happyReduction_61 +happyReduction_61 happy_x_1 + = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> + happyIn43 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_58 = happySpecReduce_2 12# happyReduction_58 -happyReduction_58 happy_x_2 +happyReduce_62 = happySpecReduce_2 14# happyReduction_62 +happyReduction_62 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 + = 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_59 = happySpecReduce_1 13# happyReduction_59 -happyReduction_59 happy_x_1 - = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> - happyIn40 +happyReduce_63 = happySpecReduce_1 15# happyReduction_63 +happyReduction_63 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_60 = happyReduce 5# 13# happyReduction_60 -happyReduction_60 (happy_x_5 `HappyStk` +happyReduce_64 = happyReduce 5# 15# happyReduction_64 +happyReduction_64 (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 + 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_61 = happyReduce 7# 13# happyReduction_61 -happyReduction_61 (happy_x_7 `HappyStk` +happyReduce_65 = happyReduce 7# 15# happyReduction_65 +happyReduction_65 (happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` @@ -795,79 +827,79 @@ happyReduction_61 (happy_x_7 `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 + 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_62 = happySpecReduce_1 14# happyReduction_62 -happyReduction_62 happy_x_1 - = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - happyIn41 +happyReduce_66 = happySpecReduce_1 16# happyReduction_66 +happyReduction_66 happy_x_1 + = case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> + happyIn45 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_63 = happySpecReduce_2 14# happyReduction_63 -happyReduction_63 happy_x_2 +happyReduce_67 = happySpecReduce_2 16# happyReduction_67 +happyReduction_67 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 + = 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_64 = happySpecReduce_1 15# happyReduction_64 -happyReduction_64 happy_x_1 - = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> - happyIn42 +happyReduce_68 = happySpecReduce_1 17# happyReduction_68 +happyReduction_68 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_65 = happyReduce 5# 15# happyReduction_65 -happyReduction_65 (happy_x_5 `HappyStk` +happyReduce_69 = happyReduce 5# 17# happyReduction_69 +happyReduction_69 (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 + 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_66 = happyReduce 5# 15# happyReduction_66 -happyReduction_66 (happy_x_5 `HappyStk` +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 happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn42 + 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_67 = happyReduce 5# 15# happyReduction_67 -happyReduction_67 (happy_x_5 `HappyStk` +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 happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn42 + 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_68 = happyReduce 9# 15# happyReduction_68 -happyReduction_68 (happy_x_9 `HappyStk` +happyReduce_72 = happyReduce 9# 17# happyReduction_72 +happyReduction_72 (happy_x_9 `HappyStk` happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` @@ -878,15 +910,15 @@ happyReduction_68 (happy_x_9 `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 + 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_69 = happyReduce 7# 15# happyReduction_69 -happyReduction_69 (happy_x_7 `HappyStk` +happyReduce_73 = happyReduce 7# 17# happyReduction_73 +happyReduction_73 (happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` @@ -895,131 +927,131 @@ happyReduction_69 (happy_x_7 `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 + 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_70 = happySpecReduce_3 16# happyReduction_70 -happyReduction_70 happy_x_3 +happyReduce_74 = happySpecReduce_3 18# happyReduction_74 +happyReduction_74 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 + = 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_71 = happySpecReduce_1 17# happyReduction_71 -happyReduction_71 happy_x_1 - = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - happyIn44 +happyReduce_75 = happySpecReduce_1 19# happyReduction_75 +happyReduction_75 happy_x_1 + = case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> + happyIn48 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_72 = happySpecReduce_3 17# happyReduction_72 -happyReduction_72 happy_x_3 +happyReduce_76 = happySpecReduce_3 19# happyReduction_76 +happyReduction_76 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 + = 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_73 = happySpecReduce_1 18# happyReduction_73 -happyReduction_73 happy_x_1 +happyReduce_77 = happySpecReduce_1 20# happyReduction_77 +happyReduction_77 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_74 = happySpecReduce_1 18# happyReduction_74 -happyReduction_74 happy_x_1 +happyReduce_78 = happySpecReduce_1 20# happyReduction_78 +happyReduction_78 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_75 = happySpecReduce_1 18# happyReduction_75 -happyReduction_75 happy_x_1 +happyReduce_79 = happySpecReduce_1 20# happyReduction_79 +happyReduction_79 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_76 = happySpecReduce_1 18# happyReduction_76 -happyReduction_76 happy_x_1 +happyReduce_80 = happySpecReduce_1 20# happyReduction_80 +happyReduction_80 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_77 = happySpecReduce_1 18# happyReduction_77 -happyReduction_77 happy_x_1 +happyReduce_81 = happySpecReduce_1 20# happyReduction_81 +happyReduction_81 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_78 = happySpecReduce_1 18# happyReduction_78 -happyReduction_78 happy_x_1 +happyReduce_82 = happySpecReduce_1 20# happyReduction_82 +happyReduction_82 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_79 = happySpecReduce_1 18# happyReduction_79 -happyReduction_79 happy_x_1 +happyReduce_83 = happySpecReduce_1 20# happyReduction_83 +happyReduction_83 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_80 = happySpecReduce_1 18# happyReduction_80 -happyReduction_80 happy_x_1 +happyReduce_84 = happySpecReduce_1 20# happyReduction_84 +happyReduction_84 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_81 = happySpecReduce_1 18# happyReduction_81 -happyReduction_81 happy_x_1 +happyReduce_85 = happySpecReduce_1 20# happyReduction_85 +happyReduction_85 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_82 = happySpecReduce_1 18# happyReduction_82 -happyReduction_82 happy_x_1 +happyReduce_86 = happySpecReduce_1 20# happyReduction_86 +happyReduction_86 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_83 = happySpecReduce_1 18# happyReduction_83 -happyReduction_83 happy_x_1 +happyReduce_87 = happySpecReduce_1 20# happyReduction_87 +happyReduction_87 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_84 = happyReduce 4# 18# happyReduction_84 -happyReduction_84 (happy_x_4 `HappyStk` +happyReduce_88 = happyReduce 4# 20# happyReduction_88 +happyReduction_88 (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 + 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_85 = happyReduce 10# 18# happyReduction_85 -happyReduction_85 (happy_x_10 `HappyStk` +happyReduce_89 = happyReduce 10# 20# happyReduction_89 +happyReduction_89 (happy_x_10 `HappyStk` happy_x_9 `HappyStk` happy_x_8 `HappyStk` happy_x_7 `HappyStk` @@ -1031,75 +1063,75 @@ happyReduction_85 (happy_x_10 `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 + 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_86 = happyReduce 5# 18# happyReduction_86 -happyReduction_86 (happy_x_5 `HappyStk` +happyReduce_90 = happyReduce 5# 20# 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 happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> - case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> - happyIn45 + 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_87 = happyReduce 5# 18# happyReduction_87 -happyReduction_87 (happy_x_5 `HappyStk` +happyReduce_91 = happyReduce 5# 20# happyReduction_91 +happyReduction_91 (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 + 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_88 = happySpecReduce_1 18# happyReduction_88 -happyReduction_88 happy_x_1 +happyReduce_92 = happySpecReduce_1 20# happyReduction_92 +happyReduction_92 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn45 + 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_89 = happySpecReduce_3 18# happyReduction_89 -happyReduction_89 happy_x_3 +happyReduce_93 = happySpecReduce_3 20# happyReduction_93 +happyReduction_93 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 + 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_90 = happyReduce 5# 18# happyReduction_90 -happyReduction_90 (happy_x_5 `HappyStk` +happyReduce_94 = happyReduce 5# 20# happyReduction_94 +happyReduction_94 (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 + 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_91 = happyReduce 14# 18# happyReduction_91 -happyReduction_91 (happy_x_14 `HappyStk` +happyReduce_95 = happyReduce 14# 20# happyReduction_95 +happyReduction_95 (happy_x_14 `HappyStk` happy_x_13 `HappyStk` happy_x_12 `HappyStk` happy_x_11 `HappyStk` @@ -1115,130 +1147,130 @@ happyReduction_91 (happy_x_14 `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 + 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_92 = happySpecReduce_1 18# happyReduction_92 -happyReduction_92 happy_x_1 - = case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> - happyIn45 +happyReduce_96 = happySpecReduce_1 20# happyReduction_96 +happyReduction_96 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_93 = happySpecReduce_1 18# happyReduction_93 -happyReduction_93 happy_x_1 - = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> - happyIn45 +happyReduce_97 = happySpecReduce_1 20# happyReduction_97 +happyReduction_97 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_94 = happySpecReduce_3 18# happyReduction_94 -happyReduction_94 happy_x_3 +happyReduce_98 = happySpecReduce_3 20# happyReduction_98 +happyReduction_98 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 + 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_95 = happySpecReduce_3 19# happyReduction_95 -happyReduction_95 happy_x_3 +happyReduce_99 = happySpecReduce_3 21# happyReduction_99 +happyReduction_99 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 + = 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_96 = happySpecReduce_1 19# happyReduction_96 -happyReduction_96 happy_x_1 - = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> - happyIn46 +happyReduce_100 = happySpecReduce_1 21# happyReduction_100 +happyReduction_100 happy_x_1 + = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> + happyIn50 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_97 = happySpecReduce_3 20# happyReduction_97 -happyReduction_97 happy_x_3 +happyReduce_101 = happySpecReduce_3 22# happyReduction_101 +happyReduction_101 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 + = 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_98 = happySpecReduce_3 20# happyReduction_98 -happyReduction_98 happy_x_3 +happyReduce_102 = happySpecReduce_3 22# happyReduction_102 +happyReduction_102 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 + = 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_99 = happySpecReduce_1 20# happyReduction_99 -happyReduction_99 happy_x_1 - = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> - happyIn47 +happyReduce_103 = happySpecReduce_1 22# happyReduction_103 +happyReduction_103 happy_x_1 + = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> + happyIn51 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_100 = happySpecReduce_3 21# happyReduction_100 -happyReduction_100 happy_x_3 +happyReduce_104 = happySpecReduce_3 23# happyReduction_104 +happyReduction_104 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 + = 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_101 = happySpecReduce_1 21# happyReduction_101 -happyReduction_101 happy_x_1 - = case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> - happyIn48 +happyReduce_105 = happySpecReduce_1 23# happyReduction_105 +happyReduction_105 happy_x_1 + = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> + happyIn52 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_102 = happySpecReduce_3 22# happyReduction_102 -happyReduction_102 happy_x_3 +happyReduce_106 = happySpecReduce_3 24# happyReduction_106 +happyReduction_106 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 + = 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_103 = happySpecReduce_1 22# happyReduction_103 -happyReduction_103 happy_x_1 - = case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> - happyIn49 +happyReduce_107 = happySpecReduce_1 24# happyReduction_107 +happyReduction_107 happy_x_1 + = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> + happyIn53 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_104 = happySpecReduce_3 23# happyReduction_104 -happyReduction_104 happy_x_3 +happyReduce_108 = happySpecReduce_3 25# happyReduction_108 +happyReduction_108 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 + = 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_105 = happyReduce 8# 23# happyReduction_105 -happyReduction_105 (happy_x_8 `HappyStk` +happyReduce_109 = happyReduce 8# 25# happyReduction_109 +happyReduction_109 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1248,69 +1280,69 @@ happyReduction_105 (happy_x_8 `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 + 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_106 = happyReduce 5# 23# happyReduction_106 -happyReduction_106 (happy_x_5 `HappyStk` +happyReduce_110 = happyReduce 5# 25# happyReduction_110 +happyReduction_110 (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 + = 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_107 = happySpecReduce_3 23# happyReduction_107 -happyReduction_107 happy_x_3 +happyReduce_111 = happySpecReduce_3 25# happyReduction_111 +happyReduction_111 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 + = 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_108 = happyReduce 4# 23# happyReduction_108 -happyReduction_108 (happy_x_4 `HappyStk` +happyReduce_112 = happyReduce 4# 25# happyReduction_112 +happyReduction_112 (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 + 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_109 = happySpecReduce_1 23# happyReduction_109 -happyReduction_109 happy_x_1 - = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> - happyIn50 +happyReduce_113 = happySpecReduce_1 25# happyReduction_113 +happyReduction_113 happy_x_1 + = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> + happyIn54 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_110 = happySpecReduce_3 23# happyReduction_110 -happyReduction_110 happy_x_3 +happyReduce_114 = happySpecReduce_3 25# happyReduction_114 +happyReduction_114 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 + = 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_111 = happyReduce 8# 23# happyReduction_111 -happyReduction_111 (happy_x_8 `HappyStk` +happyReduce_115 = happyReduce 8# 25# happyReduction_115 +happyReduction_115 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1320,15 +1352,15 @@ happyReduction_111 (happy_x_8 `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 + 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_112 = happyReduce 8# 23# happyReduction_112 -happyReduction_112 (happy_x_8 `HappyStk` +happyReduce_116 = happyReduce 8# 25# happyReduction_116 +happyReduction_116 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1338,90 +1370,90 @@ happyReduction_112 (happy_x_8 `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 + 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_113 = happyReduce 4# 24# happyReduction_113 -happyReduction_113 (happy_x_4 `HappyStk` +happyReduce_117 = happyReduce 4# 26# happyReduction_117 +happyReduction_117 (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 + = 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_114 = happySpecReduce_2 24# happyReduction_114 -happyReduction_114 happy_x_2 +happyReduce_118 = happySpecReduce_2 26# happyReduction_118 +happyReduction_118 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 + = 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_115 = happySpecReduce_2 24# happyReduction_115 -happyReduction_115 happy_x_2 +happyReduce_119 = happySpecReduce_2 26# happyReduction_119 +happyReduction_119 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 + 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_116 = happySpecReduce_2 24# happyReduction_116 -happyReduction_116 happy_x_2 +happyReduce_120 = happySpecReduce_2 26# happyReduction_120 +happyReduction_120 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 + 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_117 = happySpecReduce_1 24# happyReduction_117 -happyReduction_117 happy_x_1 - = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - happyIn51 +happyReduce_121 = happySpecReduce_1 26# happyReduction_121 +happyReduction_121 happy_x_1 + = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> + happyIn55 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_118 = happySpecReduce_3 25# happyReduction_118 -happyReduction_118 happy_x_3 +happyReduce_122 = happySpecReduce_3 27# happyReduction_122 +happyReduction_122 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 + = 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_119 = happySpecReduce_1 25# happyReduction_119 -happyReduction_119 happy_x_1 - = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> - happyIn52 +happyReduce_123 = happySpecReduce_1 27# happyReduction_123 +happyReduction_123 happy_x_1 + = case happyOut54 happy_x_1 of { (HappyWrap54 happy_var_1) -> + happyIn56 ((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 +happyReduce_124 = happySpecReduce_1 28# happyReduction_124 +happyReduction_124 happy_x_1 + = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> + happyIn57 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_121 = happySpecReduce_3 26# happyReduction_121 -happyReduction_121 happy_x_3 +happyReduce_125 = happySpecReduce_3 28# happyReduction_125 +happyReduction_125 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 + = 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)) )}} @@ -1495,8 +1527,8 @@ happyNewToken action sts stk (tk:tks) = PT _ (TS _ 62) -> cont 62#; PT _ (TS _ 63) -> cont 63#; PT _ (TL _) -> cont 64#; - PT _ (T_VarIdent _) -> cont 65#; - PT _ (T_HoleIdent _) -> cont 66#; + PT _ (T_VarIdentToken _) -> cont 65#; + PT _ (T_HoleIdentToken _) -> cont 66#; _ -> happyError' ((tk:tks), []) } @@ -1513,76 +1545,82 @@ 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')) + 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 1# tks) (\x -> happyReturn (let {(HappyWrap31 x') = happyOut31 x} in x')) + happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (let {(HappyWrap35 x') = happyOut35 x} in x')) pLanguageDecl_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (let {(HappyWrap32 x') = happyOut32 x} in x')) + happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (let {(HappyWrap36 x') = happyOut36 x} in x')) pLanguage_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (let {(HappyWrap33 x') = happyOut33 x} in x')) + happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (let {(HappyWrap37 x') = happyOut37 x} in x')) pCommand_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (let {(HappyWrap34 x') = happyOut34 x} in x')) + happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (let {(HappyWrap38 x') = happyOut38 x} in x')) pListCommand_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (let {(HappyWrap35 x') = happyOut35 x} in x')) + happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (let {(HappyWrap39 x') = happyOut39 x} in x')) pDeclUsedVars_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (let {(HappyWrap36 x') = happyOut36 x} in x')) + happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (let {(HappyWrap40 x') = happyOut40 x} in x')) pSectionName_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (let {(HappyWrap37 x') = happyOut37 x} in x')) + happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (let {(HappyWrap41 x') = happyOut41 x} in x')) pPattern_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (let {(HappyWrap38 x') = happyOut38 x} in x')) + happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (let {(HappyWrap42 x') = happyOut42 x} in x')) pListPattern_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (let {(HappyWrap39 x') = happyOut39 x} in x')) + happySomeParser = happyThen (happyParse 11# tks) (\x -> happyReturn (let {(HappyWrap43 x') = happyOut43 x} in x')) pParam_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (let {(HappyWrap40 x') = happyOut40 x} in x')) + happySomeParser = happyThen (happyParse 12# tks) (\x -> happyReturn (let {(HappyWrap44 x') = happyOut44 x} in x')) pListParam_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 11# tks) (\x -> happyReturn (let {(HappyWrap41 x') = happyOut41 x} in x')) + happySomeParser = happyThen (happyParse 13# tks) (\x -> happyReturn (let {(HappyWrap45 x') = happyOut45 x} in x')) pParamDecl_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 12# tks) (\x -> happyReturn (let {(HappyWrap42 x') = happyOut42 x} in x')) + happySomeParser = happyThen (happyParse 14# tks) (\x -> happyReturn (let {(HappyWrap46 x') = happyOut46 x} in x')) pRestriction_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 13# tks) (\x -> happyReturn (let {(HappyWrap43 x') = happyOut43 x} in x')) + happySomeParser = happyThen (happyParse 15# tks) (\x -> happyReturn (let {(HappyWrap47 x') = happyOut47 x} in x')) pListRestriction_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 14# tks) (\x -> happyReturn (let {(HappyWrap44 x') = happyOut44 x} in x')) + happySomeParser = happyThen (happyParse 16# tks) (\x -> happyReturn (let {(HappyWrap48 x') = happyOut48 x} in x')) pTerm7_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 15# tks) (\x -> happyReturn (let {(HappyWrap45 x') = happyOut45 x} in x')) + happySomeParser = happyThen (happyParse 17# tks) (\x -> happyReturn (let {(HappyWrap49 x') = happyOut49 x} in x')) pTerm5_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 16# tks) (\x -> happyReturn (let {(HappyWrap46 x') = happyOut46 x} in x')) + happySomeParser = happyThen (happyParse 18# tks) (\x -> happyReturn (let {(HappyWrap50 x') = happyOut50 x} in x')) pTerm4_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 17# tks) (\x -> happyReturn (let {(HappyWrap47 x') = happyOut47 x} in x')) + happySomeParser = happyThen (happyParse 19# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x')) pTerm3_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 18# tks) (\x -> happyReturn (let {(HappyWrap48 x') = happyOut48 x} in x')) + happySomeParser = happyThen (happyParse 20# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x')) pTerm2_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 19# tks) (\x -> happyReturn (let {(HappyWrap49 x') = happyOut49 x} in x')) + happySomeParser = happyThen (happyParse 21# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x')) pTerm1_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 20# tks) (\x -> happyReturn (let {(HappyWrap50 x') = happyOut50 x} in x')) + happySomeParser = happyThen (happyParse 22# tks) (\x -> happyReturn (let {(HappyWrap54 x') = happyOut54 x} in x')) pTerm6_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 21# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x')) + happySomeParser = happyThen (happyParse 23# tks) (\x -> happyReturn (let {(HappyWrap55 x') = happyOut55 x} in x')) pTerm_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 22# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x')) + happySomeParser = happyThen (happyParse 24# tks) (\x -> happyReturn (let {(HappyWrap56 x') = happyOut56 x} in x')) pListTerm_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 23# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x')) + happySomeParser = happyThen (happyParse 25# tks) (\x -> happyReturn (let {(HappyWrap57 x') = happyOut57 x} in x')) happySeq = happyDontSeq @@ -1605,6 +1643,12 @@ myLexer = tokens 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/rzk/src/Language/Rzk/Syntax/Par.info b/rzk/src/Language/Rzk/Syntax/Par.info index f8f3de205..c3e70c696 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.info +++ b/rzk/src/Language/Rzk/Syntax/Par.info @@ -7,127 +7,131 @@ Info file generated by Happy Version 1.20.1.1 from Language/Rzk/Syntax/Par.y Grammar ----------------------------------------------------------------------------- %start_pModule_internal -> Module (0) - %start_pListVarIdent_internal -> ListVarIdent (1) - %start_pLanguageDecl_internal -> LanguageDecl (2) - %start_pLanguage_internal -> Language (3) - %start_pCommand_internal -> Command (4) - %start_pListCommand_internal -> ListCommand (5) - %start_pDeclUsedVars_internal -> DeclUsedVars (6) - %start_pSectionName_internal -> SectionName (7) - %start_pPattern_internal -> Pattern (8) - %start_pListPattern_internal -> ListPattern (9) - %start_pParam_internal -> Param (10) - %start_pListParam_internal -> ListParam (11) - %start_pParamDecl_internal -> ParamDecl (12) - %start_pRestriction_internal -> Restriction (13) - %start_pListRestriction_internal -> ListRestriction (14) - %start_pTerm7_internal -> Term7 (15) - %start_pTerm5_internal -> Term5 (16) - %start_pTerm4_internal -> Term4 (17) - %start_pTerm3_internal -> Term3 (18) - %start_pTerm2_internal -> Term2 (19) - %start_pTerm1_internal -> Term1 (20) - %start_pTerm6_internal -> Term6 (21) - %start_pTerm_internal -> Term (22) - %start_pListTerm_internal -> ListTerm (23) - String -> L_quoted (24) - VarIdent -> L_VarIdent (25) - HoleIdent -> L_HoleIdent (26) - Module -> LanguageDecl ListCommand (27) - ListVarIdent -> VarIdent (28) - ListVarIdent -> VarIdent ListVarIdent (29) - LanguageDecl -> '#lang' Language ';' (30) - Language -> 'rzk-1' (31) - Command -> '#set-option' String '=' String (32) - Command -> '#unset-option' String (33) - Command -> '#check' Term ':' Term (34) - Command -> '#compute' Term (35) - Command -> '#compute-whnf' Term (36) - Command -> '#compute-nf' Term (37) - Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term (38) - Command -> '#postulate' VarIdent DeclUsedVars ':' Term (39) - Command -> '#assume' ListVarIdent ':' Term (40) - Command -> '#variable' VarIdent ':' Term (41) - Command -> '#variables' ListVarIdent ':' Term (42) - Command -> '#section' SectionName ';' ListCommand '#end' SectionName (43) - Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term (44) - Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term (45) - Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term (46) - Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term (47) - ListCommand -> (48) - ListCommand -> Command ';' ListCommand (49) - DeclUsedVars -> 'uses' '(' ListVarIdent ')' (50) - DeclUsedVars -> (51) - SectionName -> (52) - SectionName -> VarIdent (53) - Pattern -> '_' (54) - Pattern -> VarIdent (55) - Pattern -> '(' Pattern ',' Pattern ')' (56) - ListPattern -> Pattern (57) - ListPattern -> Pattern ListPattern (58) - Param -> Pattern (59) - Param -> '(' ListPattern ':' Term ')' (60) - Param -> '{' Pattern ':' Term '|' Term '}' (61) - ListParam -> Param (62) - ListParam -> Param ListParam (63) - ParamDecl -> Term6 (64) - ParamDecl -> '(' '_' ':' Term ')' (65) - ParamDecl -> '{' Pattern ':' Term '}' (66) - ParamDecl -> '(' VarIdent ':' Term ')' (67) - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (68) - ParamDecl -> '{' Pattern ':' Term '|' Term '}' (69) - Restriction -> Term '|->' Term (70) - ListRestriction -> Restriction (71) - ListRestriction -> Restriction ',' ListRestriction (72) - Term7 -> 'U' (73) - Term7 -> 'CUBE' (74) - Term7 -> 'TOPE' (75) - Term7 -> '1' (76) - Term7 -> '*_1' (77) - Term7 -> '2' (78) - Term7 -> '0_2' (79) - Term7 -> '1_2' (80) - Term7 -> 'TOP' (81) - Term7 -> 'BOT' (82) - Term7 -> 'recBOT' (83) - Term7 -> 'recOR' '(' ListRestriction ')' (84) - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (85) - Term7 -> '<' ParamDecl '->' Term '>' (86) - Term7 -> '(' Term ',' Term ')' (87) - Term7 -> 'refl' (88) - Term7 -> 'refl_{' Term '}' (89) - Term7 -> 'refl_{' Term ':' Term '}' (90) - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (91) - Term7 -> HoleIdent (92) - Term7 -> VarIdent (93) - Term7 -> '(' Term ')' (94) - Term5 -> Term5 '*' Term6 (95) - Term5 -> Term6 (96) - Term4 -> Term5 '===' Term5 (97) - Term4 -> Term5 '<=' Term5 (98) - Term4 -> Term5 (99) - Term3 -> Term4 '/\\' Term3 (100) - Term3 -> Term4 (101) - Term2 -> Term3 '\\/' Term2 (102) - Term2 -> Term3 (103) - Term1 -> ParamDecl '->' Term1 (104) - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (105) - Term1 -> Term2 '=_{' Term '}' Term2 (106) - Term1 -> Term2 '=' Term2 (107) - Term1 -> '\\' ListParam '->' Term1 (108) - Term1 -> Term2 (109) - Term1 -> ParamDecl '→' Term1 (110) - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (111) - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (112) - Term6 -> Term6 '[' ListRestriction ']' (113) - Term6 -> Term6 Term7 (114) - Term6 -> 'first' Term7 (115) - Term6 -> 'second' Term7 (116) - Term6 -> Term7 (117) - Term -> Term2 'as' Term1 (118) - Term -> Term1 (119) - ListTerm -> Term (120) - ListTerm -> Term ',' ListTerm (121) + %start_pHoleIdent_internal -> HoleIdent (1) + %start_pVarIdent_internal -> VarIdent (2) + %start_pListVarIdent_internal -> ListVarIdent (3) + %start_pLanguageDecl_internal -> LanguageDecl (4) + %start_pLanguage_internal -> Language (5) + %start_pCommand_internal -> Command (6) + %start_pListCommand_internal -> ListCommand (7) + %start_pDeclUsedVars_internal -> DeclUsedVars (8) + %start_pSectionName_internal -> SectionName (9) + %start_pPattern_internal -> Pattern (10) + %start_pListPattern_internal -> ListPattern (11) + %start_pParam_internal -> Param (12) + %start_pListParam_internal -> ListParam (13) + %start_pParamDecl_internal -> ParamDecl (14) + %start_pRestriction_internal -> Restriction (15) + %start_pListRestriction_internal -> ListRestriction (16) + %start_pTerm7_internal -> Term7 (17) + %start_pTerm5_internal -> Term5 (18) + %start_pTerm4_internal -> Term4 (19) + %start_pTerm3_internal -> Term3 (20) + %start_pTerm2_internal -> Term2 (21) + %start_pTerm1_internal -> Term1 (22) + %start_pTerm6_internal -> Term6 (23) + %start_pTerm_internal -> Term (24) + %start_pListTerm_internal -> ListTerm (25) + String -> L_quoted (26) + VarIdentToken -> L_VarIdentToken (27) + HoleIdentToken -> L_HoleIdentToken (28) + Module -> LanguageDecl ListCommand (29) + HoleIdent -> HoleIdentToken (30) + VarIdent -> VarIdentToken (31) + ListVarIdent -> VarIdent (32) + ListVarIdent -> VarIdent ListVarIdent (33) + LanguageDecl -> '#lang' Language ';' (34) + Language -> 'rzk-1' (35) + Command -> '#set-option' String '=' String (36) + Command -> '#unset-option' String (37) + Command -> '#check' Term ':' Term (38) + Command -> '#compute' Term (39) + Command -> '#compute-whnf' Term (40) + Command -> '#compute-nf' Term (41) + Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term (42) + Command -> '#postulate' VarIdent DeclUsedVars ':' Term (43) + Command -> '#assume' ListVarIdent ':' Term (44) + Command -> '#variable' VarIdent ':' Term (45) + Command -> '#variables' ListVarIdent ':' Term (46) + Command -> '#section' SectionName ';' ListCommand '#end' SectionName (47) + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term (48) + Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term (49) + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term (50) + Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term (51) + ListCommand -> (52) + ListCommand -> Command ';' ListCommand (53) + DeclUsedVars -> 'uses' '(' ListVarIdent ')' (54) + DeclUsedVars -> (55) + SectionName -> (56) + SectionName -> VarIdent (57) + Pattern -> '_' (58) + Pattern -> VarIdent (59) + Pattern -> '(' Pattern ',' Pattern ')' (60) + ListPattern -> Pattern (61) + ListPattern -> Pattern ListPattern (62) + Param -> Pattern (63) + Param -> '(' ListPattern ':' Term ')' (64) + Param -> '{' Pattern ':' Term '|' Term '}' (65) + ListParam -> Param (66) + ListParam -> Param ListParam (67) + ParamDecl -> Term6 (68) + ParamDecl -> '(' '_' ':' Term ')' (69) + ParamDecl -> '{' Pattern ':' Term '}' (70) + ParamDecl -> '(' VarIdent ':' Term ')' (71) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (72) + ParamDecl -> '{' Pattern ':' Term '|' Term '}' (73) + Restriction -> Term '|->' Term (74) + ListRestriction -> Restriction (75) + ListRestriction -> Restriction ',' ListRestriction (76) + Term7 -> 'U' (77) + Term7 -> 'CUBE' (78) + Term7 -> 'TOPE' (79) + Term7 -> '1' (80) + Term7 -> '*_1' (81) + Term7 -> '2' (82) + Term7 -> '0_2' (83) + Term7 -> '1_2' (84) + Term7 -> 'TOP' (85) + Term7 -> 'BOT' (86) + Term7 -> 'recBOT' (87) + Term7 -> 'recOR' '(' ListRestriction ')' (88) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (89) + Term7 -> '<' ParamDecl '->' Term '>' (90) + Term7 -> '(' Term ',' Term ')' (91) + Term7 -> 'refl' (92) + Term7 -> 'refl_{' Term '}' (93) + Term7 -> 'refl_{' Term ':' Term '}' (94) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (95) + Term7 -> HoleIdent (96) + Term7 -> VarIdent (97) + Term7 -> '(' Term ')' (98) + Term5 -> Term5 '*' Term6 (99) + Term5 -> Term6 (100) + Term4 -> Term5 '===' Term5 (101) + Term4 -> Term5 '<=' Term5 (102) + Term4 -> Term5 (103) + Term3 -> Term4 '/\\' Term3 (104) + Term3 -> Term4 (105) + Term2 -> Term3 '\\/' Term2 (106) + Term2 -> Term3 (107) + Term1 -> ParamDecl '->' Term1 (108) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (109) + Term1 -> Term2 '=_{' Term '}' Term2 (110) + Term1 -> Term2 '=' Term2 (111) + Term1 -> '\\' ListParam '->' Term1 (112) + Term1 -> Term2 (113) + Term1 -> ParamDecl '→' Term1 (114) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (115) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (116) + Term6 -> Term6 '[' ListRestriction ']' (117) + Term6 -> Term6 Term7 (118) + Term6 -> 'first' Term7 (119) + Term6 -> 'second' Term7 (120) + Term6 -> Term7 (121) + Term -> Term2 'as' Term1 (122) + Term -> Term1 (123) + ListTerm -> Term (124) + ListTerm -> Term ',' ListTerm (125) ----------------------------------------------------------------------------- Terminals @@ -196,63 +200,67 @@ Terminals '→' { PT _ (TS _ 62) } '∑' { PT _ (TS _ 63) } L_quoted { PT _ (TL _) } - L_VarIdent { PT _ (T_VarIdent _) } - L_HoleIdent { PT _ (T_HoleIdent _) } + L_VarIdentToken{ PT _ (T_VarIdentToken _) } + L_HoleIdentToken{ PT _ (T_HoleIdentToken _) } ----------------------------------------------------------------------------- Non-terminals ----------------------------------------------------------------------------- %start_pModule_internal rule 0 - %start_pListVarIdent_internal rule 1 - %start_pLanguageDecl_internal rule 2 - %start_pLanguage_internal rule 3 - %start_pCommand_internal rule 4 - %start_pListCommand_internal rule 5 - %start_pDeclUsedVars_internal rule 6 - %start_pSectionName_internal rule 7 - %start_pPattern_internal rule 8 - %start_pListPattern_internal rule 9 - %start_pParam_internal rule 10 - %start_pListParam_internal rule 11 - %start_pParamDecl_internal rule 12 - %start_pRestriction_internal rule 13 - %start_pListRestriction_internal rule 14 - %start_pTerm7_internal rule 15 - %start_pTerm5_internal rule 16 - %start_pTerm4_internal rule 17 - %start_pTerm3_internal rule 18 - %start_pTerm2_internal rule 19 - %start_pTerm1_internal rule 20 - %start_pTerm6_internal rule 21 - %start_pTerm_internal rule 22 - %start_pListTerm_internal rule 23 - String rule 24 - VarIdent rule 25 - HoleIdent rule 26 - Module rule 27 - ListVarIdent rules 28, 29 - LanguageDecl rule 30 - Language rule 31 - Command rules 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 - ListCommand rules 48, 49 - DeclUsedVars rules 50, 51 - SectionName rules 52, 53 - Pattern rules 54, 55, 56 - ListPattern rules 57, 58 - Param rules 59, 60, 61 - ListParam rules 62, 63 - ParamDecl rules 64, 65, 66, 67, 68, 69 - Restriction rule 70 - ListRestriction rules 71, 72 - Term7 rules 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94 - Term5 rules 95, 96 - Term4 rules 97, 98, 99 - Term3 rules 100, 101 - Term2 rules 102, 103 - Term1 rules 104, 105, 106, 107, 108, 109, 110, 111, 112 - Term6 rules 113, 114, 115, 116, 117 - Term rules 118, 119 - ListTerm rules 120, 121 + %start_pHoleIdent_internal rule 1 + %start_pVarIdent_internal rule 2 + %start_pListVarIdent_internal rule 3 + %start_pLanguageDecl_internal rule 4 + %start_pLanguage_internal rule 5 + %start_pCommand_internal rule 6 + %start_pListCommand_internal rule 7 + %start_pDeclUsedVars_internal rule 8 + %start_pSectionName_internal rule 9 + %start_pPattern_internal rule 10 + %start_pListPattern_internal rule 11 + %start_pParam_internal rule 12 + %start_pListParam_internal rule 13 + %start_pParamDecl_internal rule 14 + %start_pRestriction_internal rule 15 + %start_pListRestriction_internal rule 16 + %start_pTerm7_internal rule 17 + %start_pTerm5_internal rule 18 + %start_pTerm4_internal rule 19 + %start_pTerm3_internal rule 20 + %start_pTerm2_internal rule 21 + %start_pTerm1_internal rule 22 + %start_pTerm6_internal rule 23 + %start_pTerm_internal rule 24 + %start_pListTerm_internal rule 25 + String rule 26 + VarIdentToken rule 27 + HoleIdentToken rule 28 + Module rule 29 + HoleIdent rule 30 + VarIdent rule 31 + ListVarIdent rules 32, 33 + LanguageDecl rule 34 + Language rule 35 + Command rules 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 + ListCommand rules 52, 53 + DeclUsedVars rules 54, 55 + SectionName rules 56, 57 + Pattern rules 58, 59, 60 + ListPattern rules 61, 62 + Param rules 63, 64, 65 + ListParam rules 66, 67 + ParamDecl rules 68, 69, 70, 71, 72, 73 + Restriction rule 74 + ListRestriction rules 75, 76 + Term7 rules 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 + Term5 rules 99, 100 + Term4 rules 101, 102, 103 + Term3 rules 104, 105 + Term2 rules 106, 107 + Term1 rules 108, 109, 110, 111, 112, 113, 114, 115, 116 + Term6 rules 117, 118, 119, 120, 121 + Term rules 122, 123 + ListTerm rules 124, 125 ----------------------------------------------------------------------------- States @@ -261,822 +269,922 @@ State 0 %start_pModule_internal -> . Module (rule 0) - '#lang' shift, and enter state 116 + '#lang' shift, and enter state 120 - Module goto state 119 - LanguageDecl goto state 120 + Module goto state 125 + LanguageDecl goto state 126 State 1 - %start_pListVarIdent_internal -> . ListVarIdent (rule 1) + %start_pHoleIdent_internal -> . HoleIdent (rule 1) - L_VarIdent shift, and enter state 62 + L_HoleIdentTokenshift, and enter state 67 - VarIdent goto state 117 - ListVarIdent goto state 118 + HoleIdentToken goto state 29 + HoleIdent goto state 124 State 2 - %start_pLanguageDecl_internal -> . LanguageDecl (rule 2) + %start_pVarIdent_internal -> . VarIdent (rule 2) - '#lang' shift, and enter state 116 + L_VarIdentTokenshift, and enter state 66 - LanguageDecl goto state 115 + VarIdentToken goto state 28 + VarIdent goto state 123 State 3 - %start_pLanguage_internal -> . Language (rule 3) + %start_pListVarIdent_internal -> . ListVarIdent (rule 3) - 'rzk-1' shift, and enter state 114 + L_VarIdentTokenshift, and enter state 66 - Language goto state 113 + VarIdentToken goto state 28 + VarIdent goto state 121 + ListVarIdent goto state 122 State 4 - %start_pCommand_internal -> . Command (rule 4) + %start_pLanguageDecl_internal -> . LanguageDecl (rule 4) - '#assume' shift, and enter state 99 - '#check' shift, and enter state 100 - '#compute' shift, and enter state 101 - '#compute-nf' shift, and enter state 102 - '#compute-whnf'shift, and enter state 103 - '#def' shift, and enter state 104 - '#define' shift, and enter state 105 - '#postulate' shift, and enter state 106 - '#section' shift, and enter state 107 - '#set-option' shift, and enter state 108 - '#unset-option'shift, and enter state 109 - '#variable' shift, and enter state 110 - '#variables' shift, and enter state 111 + '#lang' shift, and enter state 120 - Command goto state 112 + LanguageDecl goto state 119 State 5 - %start_pListCommand_internal -> . ListCommand (rule 5) - - '#assume' shift, and enter state 99 - '#check' shift, and enter state 100 - '#compute' shift, and enter state 101 - '#compute-nf' shift, and enter state 102 - '#compute-whnf'shift, and enter state 103 - '#def' shift, and enter state 104 - '#define' shift, and enter state 105 - '#postulate' shift, and enter state 106 - '#section' shift, and enter state 107 - '#set-option' shift, and enter state 108 - '#unset-option'shift, and enter state 109 - '#variable' shift, and enter state 110 - '#variables' shift, and enter state 111 - %eof reduce using rule 48 + %start_pLanguage_internal -> . Language (rule 5) - Command goto state 97 - ListCommand goto state 98 + 'rzk-1' shift, and enter state 118 + + Language goto state 117 State 6 - %start_pDeclUsedVars_internal -> . DeclUsedVars (rule 6) + %start_pCommand_internal -> . Command (rule 6) - 'uses' shift, and enter state 96 - %eof reduce using rule 51 + '#assume' shift, and enter state 103 + '#check' shift, and enter state 104 + '#compute' shift, and enter state 105 + '#compute-nf' shift, and enter state 106 + '#compute-whnf'shift, and enter state 107 + '#def' shift, and enter state 108 + '#define' shift, and enter state 109 + '#postulate' shift, and enter state 110 + '#section' shift, and enter state 111 + '#set-option' shift, and enter state 112 + '#unset-option'shift, and enter state 113 + '#variable' shift, and enter state 114 + '#variables' shift, and enter state 115 - DeclUsedVars goto state 95 + Command goto state 116 State 7 - %start_pSectionName_internal -> . SectionName (rule 7) - - L_VarIdent shift, and enter state 62 + %start_pListCommand_internal -> . ListCommand (rule 7) + + '#assume' shift, and enter state 103 + '#check' shift, and enter state 104 + '#compute' shift, and enter state 105 + '#compute-nf' shift, and enter state 106 + '#compute-whnf'shift, and enter state 107 + '#def' shift, and enter state 108 + '#define' shift, and enter state 109 + '#postulate' shift, and enter state 110 + '#section' shift, and enter state 111 + '#set-option' shift, and enter state 112 + '#unset-option'shift, and enter state 113 + '#variable' shift, and enter state 114 + '#variables' shift, and enter state 115 %eof reduce using rule 52 - VarIdent goto state 93 - SectionName goto state 94 + Command goto state 101 + ListCommand goto state 102 State 8 - %start_pPattern_internal -> . Pattern (rule 8) + %start_pDeclUsedVars_internal -> . DeclUsedVars (rule 8) - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + 'uses' shift, and enter state 100 + %eof reduce using rule 55 - VarIdent goto state 81 - Pattern goto state 92 + DeclUsedVars goto state 99 State 9 - %start_pListPattern_internal -> . ListPattern (rule 9) + %start_pSectionName_internal -> . SectionName (rule 9) - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + %eof reduce using rule 56 - VarIdent goto state 81 - Pattern goto state 89 - ListPattern goto state 90 + VarIdentToken goto state 28 + VarIdent goto state 97 + SectionName goto state 98 State 10 - %start_pParam_internal -> . Param (rule 10) + %start_pPattern_internal -> . Pattern (rule 10) - '(' shift, and enter state 85 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 88 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 96 State 11 - %start_pListParam_internal -> . ListParam (rule 11) + %start_pListPattern_internal -> . ListPattern (rule 11) - '(' shift, and enter state 85 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 83 - ListParam goto state 84 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 93 + ListPattern goto state 94 State 12 - %start_pParamDecl_internal -> . ParamDecl (rule 12) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 79 - Term7 goto state 29 - Term6 goto state 80 + %start_pParam_internal -> . Param (rule 12) + + '(' shift, and enter state 89 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 92 State 13 - %start_pRestriction_internal -> . Restriction (rule 13) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Restriction goto state 78 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 77 + %start_pListParam_internal -> . ListParam (rule 13) + + '(' shift, and enter state 89 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 87 + ListParam goto state 88 State 14 - %start_pListRestriction_internal -> . ListRestriction (rule 14) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Restriction goto state 75 - ListRestrictiongoto state 76 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 77 + %start_pParamDecl_internal -> . ParamDecl (rule 14) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 83 + Term7 goto state 33 + Term6 goto state 84 State 15 - %start_pTerm7_internal -> . Term7 (rule 15) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 74 + %start_pRestriction_internal -> . Restriction (rule 15) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Restriction goto state 82 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 81 State 16 - %start_pTerm5_internal -> . Term5 (rule 16) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 73 - Term6 goto state 70 + %start_pListRestriction_internal -> . ListRestriction (rule 16) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Restriction goto state 79 + ListRestrictiongoto state 80 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 81 State 17 - %start_pTerm4_internal -> . Term4 (rule 17) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 72 - Term6 goto state 70 + %start_pTerm7_internal -> . Term7 (rule 17) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 78 State 18 - %start_pTerm3_internal -> . Term3 (rule 18) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 71 - Term6 goto state 70 + %start_pTerm5_internal -> . Term5 (rule 18) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 77 + Term6 goto state 74 State 19 - %start_pTerm2_internal -> . Term2 (rule 19) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 69 - Term6 goto state 70 + %start_pTerm4_internal -> . Term4 (rule 19) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 76 + Term6 goto state 74 State 20 - %start_pTerm1_internal -> . Term1 (rule 20) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 68 - Term6 goto state 35 + %start_pTerm3_internal -> . Term3 (rule 20) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 75 + Term6 goto state 74 State 21 - %start_pTerm6_internal -> . Term6 (rule 21) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term6 goto state 65 + %start_pTerm2_internal -> . Term2 (rule 21) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 73 + Term6 goto state 74 State 22 - %start_pTerm_internal -> . Term (rule 22) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 64 + %start_pTerm1_internal -> . Term1 (rule 22) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 72 + Term6 goto state 39 State 23 - %start_pListTerm_internal -> . ListTerm (rule 23) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 36 - ListTerm goto state 37 + %start_pTerm6_internal -> . Term6 (rule 23) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term6 goto state 69 State 24 - String -> . L_quoted (rule 24) - - L_quoted shift, and enter state 25 - + %start_pTerm_internal -> . Term (rule 24) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 68 State 25 - String -> L_quoted . (rule 24) - - ';' reduce using rule 24 - '=' reduce using rule 24 - %eof reduce using rule 24 - + %start_pListTerm_internal -> . ListTerm (rule 25) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 40 + ListTerm goto state 41 State 26 - Term7 -> VarIdent . (rule 93) + String -> . L_quoted (rule 26) - '(' reduce using rule 93 - ')' reduce using rule 93 - '*' reduce using rule 93 - '*_1' reduce using rule 93 - ',' reduce using rule 93 - '->' reduce using rule 93 - '/\\' reduce using rule 93 - '0_2' reduce using rule 93 - '1' reduce using rule 93 - '1_2' reduce using rule 93 - '2' reduce using rule 93 - ':' reduce using rule 93 - ':=' reduce using rule 93 - ';' reduce using rule 93 - '<' reduce using rule 93 - '<=' reduce using rule 93 - '=' reduce using rule 93 - '===' reduce using rule 93 - '=_{' reduce using rule 93 - '>' reduce using rule 93 - 'BOT' reduce using rule 93 - 'CUBE' reduce using rule 93 - 'TOP' reduce using rule 93 - 'TOPE' reduce using rule 93 - 'U' reduce using rule 93 - '[' reduce using rule 93 - '\\/' reduce using rule 93 - ']' reduce using rule 93 - 'as' reduce using rule 93 - 'idJ' reduce using rule 93 - 'recBOT' reduce using rule 93 - 'recOR' reduce using rule 93 - 'refl' reduce using rule 93 - 'refl_{' reduce using rule 93 - '|' reduce using rule 93 - '|->' reduce using rule 93 - '}' reduce using rule 93 - '→' reduce using rule 93 - L_VarIdent reduce using rule 93 - L_HoleIdent reduce using rule 93 - %eof reduce using rule 93 + L_quoted shift, and enter state 27 State 27 - Term7 -> HoleIdent . (rule 92) + String -> L_quoted . (rule 26) - '(' reduce using rule 92 - ')' reduce using rule 92 - '*' reduce using rule 92 - '*_1' reduce using rule 92 - ',' reduce using rule 92 - '->' reduce using rule 92 - '/\\' reduce using rule 92 - '0_2' reduce using rule 92 - '1' reduce using rule 92 - '1_2' reduce using rule 92 - '2' reduce using rule 92 - ':' reduce using rule 92 - ':=' reduce using rule 92 - ';' reduce using rule 92 - '<' reduce using rule 92 - '<=' reduce using rule 92 - '=' reduce using rule 92 - '===' reduce using rule 92 - '=_{' reduce using rule 92 - '>' reduce using rule 92 - 'BOT' reduce using rule 92 - 'CUBE' reduce using rule 92 - 'TOP' reduce using rule 92 - 'TOPE' reduce using rule 92 - 'U' reduce using rule 92 - '[' reduce using rule 92 - '\\/' reduce using rule 92 - ']' reduce using rule 92 - 'as' reduce using rule 92 - 'idJ' reduce using rule 92 - 'recBOT' reduce using rule 92 - 'recOR' reduce using rule 92 - 'refl' reduce using rule 92 - 'refl_{' reduce using rule 92 - '|' reduce using rule 92 - '|->' reduce using rule 92 - '}' reduce using rule 92 - '→' reduce using rule 92 - L_VarIdent reduce using rule 92 - L_HoleIdent reduce using rule 92 - %eof reduce using rule 92 + ';' reduce using rule 26 + '=' reduce using rule 26 + %eof reduce using rule 26 State 28 - Term1 -> ParamDecl . '->' Term1 (rule 104) - Term1 -> ParamDecl . '→' Term1 (rule 110) - - '->' shift, and enter state 173 - '→' shift, and enter state 174 + VarIdent -> VarIdentToken . (rule 31) + + '(' reduce using rule 31 + ')' reduce using rule 31 + '*' reduce using rule 31 + '*_1' reduce using rule 31 + ',' reduce using rule 31 + '->' reduce using rule 31 + '/\\' reduce using rule 31 + '0_2' reduce using rule 31 + '1' reduce using rule 31 + '1_2' reduce using rule 31 + '2' reduce using rule 31 + ':' reduce using rule 31 + ':=' reduce using rule 31 + ';' reduce using rule 31 + '<' reduce using rule 31 + '<=' reduce using rule 31 + '=' reduce using rule 31 + '===' reduce using rule 31 + '=_{' reduce using rule 31 + '>' reduce using rule 31 + 'BOT' reduce using rule 31 + 'CUBE' reduce using rule 31 + 'TOP' reduce using rule 31 + 'TOPE' reduce using rule 31 + 'U' reduce using rule 31 + '[' reduce using rule 31 + '\\/' reduce using rule 31 + ']' reduce using rule 31 + '_' reduce using rule 31 + 'as' reduce using rule 31 + 'idJ' reduce using rule 31 + 'recBOT' reduce using rule 31 + 'recOR' reduce using rule 31 + 'refl' reduce using rule 31 + 'refl_{' reduce using rule 31 + 'uses' reduce using rule 31 + '{' reduce using rule 31 + '|' reduce using rule 31 + '|->' reduce using rule 31 + '}' reduce using rule 31 + '→' reduce using rule 31 + L_VarIdentTokenreduce using rule 31 + L_HoleIdentTokenreduce using rule 31 + %eof reduce using rule 31 State 29 - Term6 -> Term7 . (rule 117) - - '(' reduce using rule 117 - ')' reduce using rule 117 - '*' reduce using rule 117 - '*_1' reduce using rule 117 - ',' reduce using rule 117 - '->' reduce using rule 117 - '/\\' reduce using rule 117 - '0_2' reduce using rule 117 - '1' reduce using rule 117 - '1_2' reduce using rule 117 - '2' reduce using rule 117 - ':' reduce using rule 117 - ':=' reduce using rule 117 - ';' reduce using rule 117 - '<' reduce using rule 117 - '<=' reduce using rule 117 - '=' reduce using rule 117 - '===' reduce using rule 117 - '=_{' reduce using rule 117 - '>' reduce using rule 117 - 'BOT' reduce using rule 117 - 'CUBE' reduce using rule 117 - 'TOP' reduce using rule 117 - 'TOPE' reduce using rule 117 - 'U' reduce using rule 117 - '[' reduce using rule 117 - '\\/' reduce using rule 117 - ']' reduce using rule 117 - 'as' reduce using rule 117 - 'idJ' reduce using rule 117 - 'recBOT' reduce using rule 117 - 'recOR' reduce using rule 117 - 'refl' reduce using rule 117 - 'refl_{' reduce using rule 117 - '|' reduce using rule 117 - '|->' reduce using rule 117 - '}' reduce using rule 117 - '→' reduce using rule 117 - L_VarIdent reduce using rule 117 - L_HoleIdent reduce using rule 117 - %eof reduce using rule 117 + HoleIdent -> HoleIdentToken . (rule 30) + + '(' reduce using rule 30 + ')' reduce using rule 30 + '*' reduce using rule 30 + '*_1' reduce using rule 30 + ',' reduce using rule 30 + '->' reduce using rule 30 + '/\\' reduce using rule 30 + '0_2' reduce using rule 30 + '1' reduce using rule 30 + '1_2' reduce using rule 30 + '2' reduce using rule 30 + ':' reduce using rule 30 + ':=' reduce using rule 30 + ';' reduce using rule 30 + '<' reduce using rule 30 + '<=' reduce using rule 30 + '=' reduce using rule 30 + '===' reduce using rule 30 + '=_{' reduce using rule 30 + '>' reduce using rule 30 + 'BOT' reduce using rule 30 + 'CUBE' reduce using rule 30 + 'TOP' reduce using rule 30 + 'TOPE' reduce using rule 30 + 'U' reduce using rule 30 + '[' reduce using rule 30 + '\\/' reduce using rule 30 + ']' reduce using rule 30 + 'as' reduce using rule 30 + 'idJ' reduce using rule 30 + 'recBOT' reduce using rule 30 + 'recOR' reduce using rule 30 + 'refl' reduce using rule 30 + 'refl_{' reduce using rule 30 + '|' reduce using rule 30 + '|->' reduce using rule 30 + '}' reduce using rule 30 + '→' reduce using rule 30 + L_VarIdentTokenreduce using rule 30 + L_HoleIdentTokenreduce using rule 30 + %eof reduce using rule 30 State 30 - Term5 -> Term5 . '*' Term6 (rule 95) - Term4 -> Term5 . '===' Term5 (rule 97) - Term4 -> Term5 . '<=' Term5 (rule 98) - Term4 -> Term5 . (rule 99) + Term7 -> HoleIdent . (rule 96) - ')' reduce using rule 99 - '*' shift, and enter state 149 - ',' reduce using rule 99 - '/\\' reduce using rule 99 - ':' reduce using rule 99 - ':=' reduce using rule 99 - ';' reduce using rule 99 - '<=' shift, and enter state 171 - '=' reduce using rule 99 - '===' shift, and enter state 172 - '=_{' reduce using rule 99 - '>' reduce using rule 99 - '\\/' reduce using rule 99 - ']' reduce using rule 99 - 'as' reduce using rule 99 - '|' reduce using rule 99 - '|->' reduce using rule 99 - '}' reduce using rule 99 - %eof reduce using rule 99 + '(' reduce using rule 96 + ')' reduce using rule 96 + '*' reduce using rule 96 + '*_1' reduce using rule 96 + ',' reduce using rule 96 + '->' reduce using rule 96 + '/\\' reduce using rule 96 + '0_2' reduce using rule 96 + '1' reduce using rule 96 + '1_2' reduce using rule 96 + '2' reduce using rule 96 + ':' reduce using rule 96 + ':=' reduce using rule 96 + ';' reduce using rule 96 + '<' reduce using rule 96 + '<=' reduce using rule 96 + '=' reduce using rule 96 + '===' reduce using rule 96 + '=_{' reduce using rule 96 + '>' reduce using rule 96 + 'BOT' reduce using rule 96 + 'CUBE' reduce using rule 96 + 'TOP' reduce using rule 96 + 'TOPE' reduce using rule 96 + 'U' reduce using rule 96 + '[' reduce using rule 96 + '\\/' reduce using rule 96 + ']' reduce using rule 96 + 'as' reduce using rule 96 + 'idJ' reduce using rule 96 + 'recBOT' reduce using rule 96 + 'recOR' reduce using rule 96 + 'refl' reduce using rule 96 + 'refl_{' reduce using rule 96 + '|' reduce using rule 96 + '|->' reduce using rule 96 + '}' reduce using rule 96 + '→' reduce using rule 96 + L_VarIdentTokenreduce using rule 96 + L_HoleIdentTokenreduce using rule 96 + %eof reduce using rule 96 State 31 - Term3 -> Term4 . '/\\' Term3 (rule 100) - Term3 -> Term4 . (rule 101) + Term7 -> VarIdent . (rule 97) - ')' reduce using rule 101 - ',' reduce using rule 101 - '/\\' shift, and enter state 170 - ':' reduce using rule 101 - ':=' reduce using rule 101 - ';' reduce using rule 101 - '=' reduce using rule 101 - '=_{' reduce using rule 101 - '>' reduce using rule 101 - '\\/' reduce using rule 101 - ']' reduce using rule 101 - 'as' reduce using rule 101 - '|' reduce using rule 101 - '|->' reduce using rule 101 - '}' reduce using rule 101 - %eof reduce using rule 101 + '(' reduce using rule 97 + ')' reduce using rule 97 + '*' reduce using rule 97 + '*_1' reduce using rule 97 + ',' reduce using rule 97 + '->' reduce using rule 97 + '/\\' reduce using rule 97 + '0_2' reduce using rule 97 + '1' reduce using rule 97 + '1_2' reduce using rule 97 + '2' reduce using rule 97 + ':' reduce using rule 97 + ':=' reduce using rule 97 + ';' reduce using rule 97 + '<' reduce using rule 97 + '<=' reduce using rule 97 + '=' reduce using rule 97 + '===' reduce using rule 97 + '=_{' reduce using rule 97 + '>' reduce using rule 97 + 'BOT' reduce using rule 97 + 'CUBE' reduce using rule 97 + 'TOP' reduce using rule 97 + 'TOPE' reduce using rule 97 + 'U' reduce using rule 97 + '[' reduce using rule 97 + '\\/' reduce using rule 97 + ']' reduce using rule 97 + 'as' reduce using rule 97 + 'idJ' reduce using rule 97 + 'recBOT' reduce using rule 97 + 'recOR' reduce using rule 97 + 'refl' reduce using rule 97 + 'refl_{' reduce using rule 97 + '|' reduce using rule 97 + '|->' reduce using rule 97 + '}' reduce using rule 97 + '→' reduce using rule 97 + L_VarIdentTokenreduce using rule 97 + L_HoleIdentTokenreduce using rule 97 + %eof reduce using rule 97 State 32 - Term2 -> Term3 . '\\/' Term2 (rule 102) - Term2 -> Term3 . (rule 103) + Term1 -> ParamDecl . '->' Term1 (rule 108) + Term1 -> ParamDecl . '→' Term1 (rule 114) + + '->' shift, and enter state 179 + '→' shift, and enter state 180 + + +State 33 + + Term6 -> Term7 . (rule 121) + + '(' reduce using rule 121 + ')' reduce using rule 121 + '*' reduce using rule 121 + '*_1' reduce using rule 121 + ',' reduce using rule 121 + '->' reduce using rule 121 + '/\\' reduce using rule 121 + '0_2' reduce using rule 121 + '1' reduce using rule 121 + '1_2' reduce using rule 121 + '2' reduce using rule 121 + ':' reduce using rule 121 + ':=' reduce using rule 121 + ';' reduce using rule 121 + '<' reduce using rule 121 + '<=' reduce using rule 121 + '=' reduce using rule 121 + '===' reduce using rule 121 + '=_{' reduce using rule 121 + '>' reduce using rule 121 + 'BOT' reduce using rule 121 + 'CUBE' reduce using rule 121 + 'TOP' reduce using rule 121 + 'TOPE' reduce using rule 121 + 'U' reduce using rule 121 + '[' reduce using rule 121 + '\\/' reduce using rule 121 + ']' reduce using rule 121 + 'as' reduce using rule 121 + 'idJ' reduce using rule 121 + 'recBOT' reduce using rule 121 + 'recOR' reduce using rule 121 + 'refl' reduce using rule 121 + 'refl_{' reduce using rule 121 + '|' reduce using rule 121 + '|->' reduce using rule 121 + '}' reduce using rule 121 + '→' reduce using rule 121 + L_VarIdentTokenreduce using rule 121 + L_HoleIdentTokenreduce using rule 121 + %eof reduce using rule 121 + + +State 34 + + Term5 -> Term5 . '*' Term6 (rule 99) + Term4 -> Term5 . '===' Term5 (rule 101) + Term4 -> Term5 . '<=' Term5 (rule 102) + Term4 -> Term5 . (rule 103) ')' reduce using rule 103 + '*' shift, and enter state 155 ',' reduce using rule 103 + '/\\' reduce using rule 103 ':' reduce using rule 103 ':=' reduce using rule 103 ';' reduce using rule 103 + '<=' shift, and enter state 177 '=' reduce using rule 103 + '===' shift, and enter state 178 '=_{' reduce using rule 103 '>' reduce using rule 103 - '\\/' shift, and enter state 169 + '\\/' reduce using rule 103 ']' reduce using rule 103 'as' reduce using rule 103 '|' reduce using rule 103 @@ -1085,306 +1193,308 @@ State 32 %eof reduce using rule 103 -State 33 - - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 106) - Term1 -> Term2 . '=' Term2 (rule 107) - Term1 -> Term2 . (rule 109) - Term -> Term2 . 'as' Term1 (rule 118) - - ')' reduce using rule 109 - ',' reduce using rule 109 - ':' reduce using rule 109 - ':=' reduce using rule 109 - ';' reduce using rule 109 - '=' shift, and enter state 150 - '=_{' shift, and enter state 151 - '>' reduce using rule 109 - ']' reduce using rule 109 - 'as' shift, and enter state 168 - '|' reduce using rule 109 - '|->' reduce using rule 109 - '}' reduce using rule 109 - %eof reduce using rule 109 +State 35 + Term3 -> Term4 . '/\\' Term3 (rule 104) + Term3 -> Term4 . (rule 105) -State 34 + ')' reduce using rule 105 + ',' reduce using rule 105 + '/\\' shift, and enter state 176 + ':' reduce using rule 105 + ':=' reduce using rule 105 + ';' reduce using rule 105 + '=' reduce using rule 105 + '=_{' reduce using rule 105 + '>' reduce using rule 105 + '\\/' reduce using rule 105 + ']' reduce using rule 105 + 'as' reduce using rule 105 + '|' reduce using rule 105 + '|->' reduce using rule 105 + '}' reduce using rule 105 + %eof reduce using rule 105 - Term -> Term1 . (rule 119) - ')' reduce using rule 119 - ',' reduce using rule 119 - ':' reduce using rule 119 - ':=' reduce using rule 119 - ';' reduce using rule 119 - '>' reduce using rule 119 - ']' reduce using rule 119 - '|' reduce using rule 119 - '|->' reduce using rule 119 - '}' reduce using rule 119 - %eof reduce using rule 119 +State 36 + Term2 -> Term3 . '\\/' Term2 (rule 106) + Term2 -> Term3 . (rule 107) -State 35 - - ParamDecl -> Term6 . (rule 64) - Term5 -> Term6 . (rule 96) - Term6 -> Term6 . '[' ListRestriction ']' (rule 113) - Term6 -> Term6 . Term7 (rule 114) - - '(' shift, and enter state 66 - ')' reduce using rule 96 - '*' reduce using rule 96 - '*_1' shift, and enter state 39 - ',' reduce using rule 96 - '->' reduce using rule 64 - '/\\' reduce using rule 96 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '<' shift, and enter state 44 - '<=' reduce using rule 96 - '=' reduce using rule 96 - '===' reduce using rule 96 - '=_{' reduce using rule 96 - '>' reduce using rule 96 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '[' shift, and enter state 146 - '\\/' reduce using rule 96 - ']' reduce using rule 96 - 'as' reduce using rule 96 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - '→' reduce using rule 64 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - %eof reduce using rule 96 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 145 - -State 36 - - ListTerm -> Term . (rule 120) - ListTerm -> Term . ',' ListTerm (rule 121) - - ',' shift, and enter state 167 - %eof reduce using rule 120 + ')' reduce using rule 107 + ',' reduce using rule 107 + ':' reduce using rule 107 + ':=' reduce using rule 107 + ';' reduce using rule 107 + '=' reduce using rule 107 + '=_{' reduce using rule 107 + '>' reduce using rule 107 + '\\/' shift, and enter state 175 + ']' reduce using rule 107 + 'as' reduce using rule 107 + '|' reduce using rule 107 + '|->' reduce using rule 107 + '}' reduce using rule 107 + %eof reduce using rule 107 State 37 - %start_pListTerm_internal -> ListTerm . (rule 23) + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 110) + Term1 -> Term2 . '=' Term2 (rule 111) + Term1 -> Term2 . (rule 113) + Term -> Term2 . 'as' Term1 (rule 122) - %eof accept + ')' reduce using rule 113 + ',' reduce using rule 113 + ':' reduce using rule 113 + ':=' reduce using rule 113 + ';' reduce using rule 113 + '=' shift, and enter state 156 + '=_{' shift, and enter state 157 + '>' reduce using rule 113 + ']' reduce using rule 113 + 'as' shift, and enter state 174 + '|' reduce using rule 113 + '|->' reduce using rule 113 + '}' reduce using rule 113 + %eof reduce using rule 113 State 38 - ParamDecl -> '(' . '_' ':' Term ')' (rule 65) - ParamDecl -> '(' . VarIdent ':' Term ')' (rule 67) - Term7 -> '(' . Term ',' Term ')' (rule 87) - Term7 -> '(' . Term ')' (rule 94) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - '_' shift, and enter state 166 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 165 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 152 + Term -> Term1 . (rule 123) + + ')' reduce using rule 123 + ',' reduce using rule 123 + ':' reduce using rule 123 + ':=' reduce using rule 123 + ';' reduce using rule 123 + '>' reduce using rule 123 + ']' reduce using rule 123 + '|' reduce using rule 123 + '|->' reduce using rule 123 + '}' reduce using rule 123 + %eof reduce using rule 123 + State 39 - Term7 -> '*_1' . (rule 77) + ParamDecl -> Term6 . (rule 68) + Term5 -> Term6 . (rule 100) + Term6 -> Term6 . '[' ListRestriction ']' (rule 117) + Term6 -> Term6 . Term7 (rule 118) - '(' reduce using rule 77 - ')' reduce using rule 77 - '*' reduce using rule 77 - '*_1' reduce using rule 77 - ',' reduce using rule 77 - '->' reduce using rule 77 - '/\\' reduce using rule 77 - '0_2' reduce using rule 77 - '1' reduce using rule 77 - '1_2' reduce using rule 77 - '2' reduce using rule 77 - ':' reduce using rule 77 - ':=' reduce using rule 77 - ';' reduce using rule 77 - '<' reduce using rule 77 - '<=' reduce using rule 77 - '=' reduce using rule 77 - '===' reduce using rule 77 - '=_{' reduce using rule 77 - '>' reduce using rule 77 - 'BOT' reduce using rule 77 - 'CUBE' reduce using rule 77 - 'TOP' reduce using rule 77 - 'TOPE' reduce using rule 77 - 'U' reduce using rule 77 - '[' reduce using rule 77 - '\\/' reduce using rule 77 - ']' reduce using rule 77 - 'as' reduce using rule 77 - 'idJ' reduce using rule 77 - 'recBOT' reduce using rule 77 - 'recOR' reduce using rule 77 - 'refl' reduce using rule 77 - 'refl_{' reduce using rule 77 - '|' reduce using rule 77 - '|->' reduce using rule 77 - '}' reduce using rule 77 - '→' reduce using rule 77 - L_VarIdent reduce using rule 77 - L_HoleIdent reduce using rule 77 - %eof reduce using rule 77 + '(' shift, and enter state 70 + ')' reduce using rule 100 + '*' reduce using rule 100 + '*_1' shift, and enter state 43 + ',' reduce using rule 100 + '->' reduce using rule 68 + '/\\' reduce using rule 100 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + ':' reduce using rule 100 + ':=' reduce using rule 100 + ';' reduce using rule 100 + '<' shift, and enter state 48 + '<=' reduce using rule 100 + '=' reduce using rule 100 + '===' reduce using rule 100 + '=_{' reduce using rule 100 + '>' reduce using rule 100 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '[' shift, and enter state 152 + '\\/' reduce using rule 100 + ']' reduce using rule 100 + 'as' reduce using rule 100 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + '|' reduce using rule 100 + '|->' reduce using rule 100 + '}' reduce using rule 100 + '→' reduce using rule 68 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + %eof reduce using rule 100 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 151 State 40 - Term7 -> '0_2' . (rule 79) + ListTerm -> Term . (rule 124) + ListTerm -> Term . ',' ListTerm (rule 125) - '(' reduce using rule 79 - ')' reduce using rule 79 - '*' reduce using rule 79 - '*_1' reduce using rule 79 - ',' reduce using rule 79 - '->' reduce using rule 79 - '/\\' reduce using rule 79 - '0_2' reduce using rule 79 - '1' reduce using rule 79 - '1_2' reduce using rule 79 - '2' reduce using rule 79 - ':' reduce using rule 79 - ':=' reduce using rule 79 - ';' reduce using rule 79 - '<' reduce using rule 79 - '<=' reduce using rule 79 - '=' reduce using rule 79 - '===' reduce using rule 79 - '=_{' reduce using rule 79 - '>' reduce using rule 79 - 'BOT' reduce using rule 79 - 'CUBE' reduce using rule 79 - 'TOP' reduce using rule 79 - 'TOPE' reduce using rule 79 - 'U' reduce using rule 79 - '[' reduce using rule 79 - '\\/' reduce using rule 79 - ']' reduce using rule 79 - 'as' reduce using rule 79 - 'idJ' reduce using rule 79 - 'recBOT' reduce using rule 79 - 'recOR' reduce using rule 79 - 'refl' reduce using rule 79 - 'refl_{' reduce using rule 79 - '|' reduce using rule 79 - '|->' reduce using rule 79 - '}' reduce using rule 79 - '→' reduce using rule 79 - L_VarIdent reduce using rule 79 - L_HoleIdent reduce using rule 79 - %eof reduce using rule 79 + ',' shift, and enter state 173 + %eof reduce using rule 124 State 41 - Term7 -> '1' . (rule 76) + %start_pListTerm_internal -> ListTerm . (rule 25) - '(' reduce using rule 76 - ')' reduce using rule 76 - '*' reduce using rule 76 - '*_1' reduce using rule 76 - ',' reduce using rule 76 - '->' reduce using rule 76 - '/\\' reduce using rule 76 - '0_2' reduce using rule 76 - '1' reduce using rule 76 - '1_2' reduce using rule 76 - '2' reduce using rule 76 - ':' reduce using rule 76 - ':=' reduce using rule 76 - ';' reduce using rule 76 - '<' reduce using rule 76 - '<=' reduce using rule 76 - '=' reduce using rule 76 - '===' reduce using rule 76 - '=_{' reduce using rule 76 - '>' reduce using rule 76 - 'BOT' reduce using rule 76 - 'CUBE' reduce using rule 76 - 'TOP' reduce using rule 76 - 'TOPE' reduce using rule 76 - 'U' reduce using rule 76 - '[' reduce using rule 76 - '\\/' reduce using rule 76 - ']' reduce using rule 76 - 'as' reduce using rule 76 - 'idJ' reduce using rule 76 - 'recBOT' reduce using rule 76 - 'recOR' reduce using rule 76 - 'refl' reduce using rule 76 - 'refl_{' reduce using rule 76 - '|' reduce using rule 76 - '|->' reduce using rule 76 - '}' reduce using rule 76 - '→' reduce using rule 76 - L_VarIdent reduce using rule 76 - L_HoleIdent reduce using rule 76 - %eof reduce using rule 76 + %eof accept State 42 - Term7 -> '1_2' . (rule 80) + ParamDecl -> '(' . '_' ':' Term ')' (rule 69) + ParamDecl -> '(' . VarIdent ':' Term ')' (rule 71) + Term7 -> '(' . Term ',' Term ')' (rule 91) + Term7 -> '(' . Term ')' (rule 98) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + '_' shift, and enter state 172 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 171 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 158 + +State 43 + + Term7 -> '*_1' . (rule 81) + + '(' reduce using rule 81 + ')' reduce using rule 81 + '*' reduce using rule 81 + '*_1' reduce using rule 81 + ',' reduce using rule 81 + '->' reduce using rule 81 + '/\\' reduce using rule 81 + '0_2' reduce using rule 81 + '1' reduce using rule 81 + '1_2' reduce using rule 81 + '2' reduce using rule 81 + ':' reduce using rule 81 + ':=' reduce using rule 81 + ';' reduce using rule 81 + '<' reduce using rule 81 + '<=' reduce using rule 81 + '=' reduce using rule 81 + '===' reduce using rule 81 + '=_{' reduce using rule 81 + '>' reduce using rule 81 + 'BOT' reduce using rule 81 + 'CUBE' reduce using rule 81 + 'TOP' reduce using rule 81 + 'TOPE' reduce using rule 81 + 'U' reduce using rule 81 + '[' reduce using rule 81 + '\\/' reduce using rule 81 + ']' reduce using rule 81 + 'as' reduce using rule 81 + 'idJ' reduce using rule 81 + 'recBOT' reduce using rule 81 + 'recOR' reduce using rule 81 + 'refl' reduce using rule 81 + 'refl_{' reduce using rule 81 + '|' reduce using rule 81 + '|->' reduce using rule 81 + '}' reduce using rule 81 + '→' reduce using rule 81 + L_VarIdentTokenreduce using rule 81 + L_HoleIdentTokenreduce using rule 81 + %eof reduce using rule 81 + + +State 44 + + Term7 -> '0_2' . (rule 83) + + '(' reduce using rule 83 + ')' reduce using rule 83 + '*' reduce using rule 83 + '*_1' reduce using rule 83 + ',' reduce using rule 83 + '->' reduce using rule 83 + '/\\' reduce using rule 83 + '0_2' reduce using rule 83 + '1' reduce using rule 83 + '1_2' reduce using rule 83 + '2' reduce using rule 83 + ':' reduce using rule 83 + ':=' reduce using rule 83 + ';' reduce using rule 83 + '<' reduce using rule 83 + '<=' reduce using rule 83 + '=' reduce using rule 83 + '===' reduce using rule 83 + '=_{' reduce using rule 83 + '>' reduce using rule 83 + 'BOT' reduce using rule 83 + 'CUBE' reduce using rule 83 + 'TOP' reduce using rule 83 + 'TOPE' reduce using rule 83 + 'U' reduce using rule 83 + '[' reduce using rule 83 + '\\/' reduce using rule 83 + ']' reduce using rule 83 + 'as' reduce using rule 83 + 'idJ' reduce using rule 83 + 'recBOT' reduce using rule 83 + 'recOR' reduce using rule 83 + 'refl' reduce using rule 83 + 'refl_{' reduce using rule 83 + '|' reduce using rule 83 + '|->' reduce using rule 83 + '}' reduce using rule 83 + '→' reduce using rule 83 + L_VarIdentTokenreduce using rule 83 + L_HoleIdentTokenreduce using rule 83 + %eof reduce using rule 83 + + +State 45 + + Term7 -> '1' . (rule 80) '(' reduce using rule 80 ')' reduce using rule 80 @@ -1424,94 +1534,61 @@ State 42 '|->' reduce using rule 80 '}' reduce using rule 80 '→' reduce using rule 80 - L_VarIdent reduce using rule 80 - L_HoleIdent reduce using rule 80 + L_VarIdentTokenreduce using rule 80 + L_HoleIdentTokenreduce using rule 80 %eof reduce using rule 80 -State 43 +State 46 - Term7 -> '2' . (rule 78) + Term7 -> '1_2' . (rule 84) - '(' reduce using rule 78 - ')' reduce using rule 78 - '*' reduce using rule 78 - '*_1' reduce using rule 78 - ',' reduce using rule 78 - '->' reduce using rule 78 - '/\\' reduce using rule 78 - '0_2' reduce using rule 78 - '1' reduce using rule 78 - '1_2' reduce using rule 78 - '2' reduce using rule 78 - ':' reduce using rule 78 - ':=' reduce using rule 78 - ';' reduce using rule 78 - '<' reduce using rule 78 - '<=' reduce using rule 78 - '=' reduce using rule 78 - '===' reduce using rule 78 - '=_{' reduce using rule 78 - '>' reduce using rule 78 - 'BOT' reduce using rule 78 - 'CUBE' reduce using rule 78 - 'TOP' reduce using rule 78 - 'TOPE' reduce using rule 78 - 'U' reduce using rule 78 - '[' reduce using rule 78 - '\\/' reduce using rule 78 - ']' reduce using rule 78 - 'as' reduce using rule 78 - 'idJ' reduce using rule 78 - 'recBOT' reduce using rule 78 - 'recOR' reduce using rule 78 - 'refl' reduce using rule 78 - 'refl_{' reduce using rule 78 - '|' reduce using rule 78 - '|->' reduce using rule 78 - '}' reduce using rule 78 - '→' reduce using rule 78 - L_VarIdent reduce using rule 78 - L_HoleIdent reduce using rule 78 - %eof reduce using rule 78 - - -State 44 + '(' reduce using rule 84 + ')' reduce using rule 84 + '*' reduce using rule 84 + '*_1' reduce using rule 84 + ',' reduce using rule 84 + '->' reduce using rule 84 + '/\\' reduce using rule 84 + '0_2' reduce using rule 84 + '1' reduce using rule 84 + '1_2' reduce using rule 84 + '2' reduce using rule 84 + ':' reduce using rule 84 + ':=' reduce using rule 84 + ';' reduce using rule 84 + '<' reduce using rule 84 + '<=' reduce using rule 84 + '=' reduce using rule 84 + '===' reduce using rule 84 + '=_{' reduce using rule 84 + '>' reduce using rule 84 + 'BOT' reduce using rule 84 + 'CUBE' reduce using rule 84 + 'TOP' reduce using rule 84 + 'TOPE' reduce using rule 84 + 'U' reduce using rule 84 + '[' reduce using rule 84 + '\\/' reduce using rule 84 + ']' reduce using rule 84 + 'as' reduce using rule 84 + 'idJ' reduce using rule 84 + 'recBOT' reduce using rule 84 + 'recOR' reduce using rule 84 + 'refl' reduce using rule 84 + 'refl_{' reduce using rule 84 + '|' reduce using rule 84 + '|->' reduce using rule 84 + '}' reduce using rule 84 + '→' reduce using rule 84 + L_VarIdentTokenreduce using rule 84 + L_HoleIdentTokenreduce using rule 84 + %eof reduce using rule 84 - Term7 -> '<' . ParamDecl '->' Term '>' (rule 86) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 164 - Term7 goto state 29 - Term6 goto state 80 -State 45 +State 47 - Term7 -> 'BOT' . (rule 82) + Term7 -> '2' . (rule 82) '(' reduce using rule 82 ')' reduce using rule 82 @@ -1551,4318 +1628,4473 @@ State 45 '|->' reduce using rule 82 '}' reduce using rule 82 '→' reduce using rule 82 - L_VarIdent reduce using rule 82 - L_HoleIdent reduce using rule 82 + L_VarIdentTokenreduce using rule 82 + L_HoleIdentTokenreduce using rule 82 %eof reduce using rule 82 -State 46 - - Term7 -> 'CUBE' . (rule 74) - - '(' reduce using rule 74 - ')' reduce using rule 74 - '*' reduce using rule 74 - '*_1' reduce using rule 74 - ',' reduce using rule 74 - '->' reduce using rule 74 - '/\\' reduce using rule 74 - '0_2' reduce using rule 74 - '1' reduce using rule 74 - '1_2' reduce using rule 74 - '2' reduce using rule 74 - ':' reduce using rule 74 - ':=' reduce using rule 74 - ';' reduce using rule 74 - '<' reduce using rule 74 - '<=' reduce using rule 74 - '=' reduce using rule 74 - '===' reduce using rule 74 - '=_{' reduce using rule 74 - '>' reduce using rule 74 - 'BOT' reduce using rule 74 - 'CUBE' reduce using rule 74 - 'TOP' reduce using rule 74 - 'TOPE' reduce using rule 74 - 'U' reduce using rule 74 - '[' reduce using rule 74 - '\\/' reduce using rule 74 - ']' reduce using rule 74 - 'as' reduce using rule 74 - 'idJ' reduce using rule 74 - 'recBOT' reduce using rule 74 - 'recOR' reduce using rule 74 - 'refl' reduce using rule 74 - 'refl_{' reduce using rule 74 - '|' reduce using rule 74 - '|->' reduce using rule 74 - '}' reduce using rule 74 - '→' reduce using rule 74 - L_VarIdent reduce using rule 74 - L_HoleIdent reduce using rule 74 - %eof reduce using rule 74 - - -State 47 - - Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 105) - - '(' shift, and enter state 163 - - State 48 - Term7 -> 'TOP' . (rule 81) - - '(' reduce using rule 81 - ')' reduce using rule 81 - '*' reduce using rule 81 - '*_1' reduce using rule 81 - ',' reduce using rule 81 - '->' reduce using rule 81 - '/\\' reduce using rule 81 - '0_2' reduce using rule 81 - '1' reduce using rule 81 - '1_2' reduce using rule 81 - '2' reduce using rule 81 - ':' reduce using rule 81 - ':=' reduce using rule 81 - ';' reduce using rule 81 - '<' reduce using rule 81 - '<=' reduce using rule 81 - '=' reduce using rule 81 - '===' reduce using rule 81 - '=_{' reduce using rule 81 - '>' reduce using rule 81 - 'BOT' reduce using rule 81 - 'CUBE' reduce using rule 81 - 'TOP' reduce using rule 81 - 'TOPE' reduce using rule 81 - 'U' reduce using rule 81 - '[' reduce using rule 81 - '\\/' reduce using rule 81 - ']' reduce using rule 81 - 'as' reduce using rule 81 - 'idJ' reduce using rule 81 - 'recBOT' reduce using rule 81 - 'recOR' reduce using rule 81 - 'refl' reduce using rule 81 - 'refl_{' reduce using rule 81 - '|' reduce using rule 81 - '|->' reduce using rule 81 - '}' reduce using rule 81 - '→' reduce using rule 81 - L_VarIdent reduce using rule 81 - L_HoleIdent reduce using rule 81 - %eof reduce using rule 81 - + Term7 -> '<' . ParamDecl '->' Term '>' (rule 90) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 170 + Term7 goto state 33 + Term6 goto state 84 State 49 - Term7 -> 'TOPE' . (rule 75) + Term7 -> 'BOT' . (rule 86) - '(' reduce using rule 75 - ')' reduce using rule 75 - '*' reduce using rule 75 - '*_1' reduce using rule 75 - ',' reduce using rule 75 - '->' reduce using rule 75 - '/\\' reduce using rule 75 - '0_2' reduce using rule 75 - '1' reduce using rule 75 - '1_2' reduce using rule 75 - '2' reduce using rule 75 - ':' reduce using rule 75 - ':=' reduce using rule 75 - ';' reduce using rule 75 - '<' reduce using rule 75 - '<=' reduce using rule 75 - '=' reduce using rule 75 - '===' reduce using rule 75 - '=_{' reduce using rule 75 - '>' reduce using rule 75 - 'BOT' reduce using rule 75 - 'CUBE' reduce using rule 75 - 'TOP' reduce using rule 75 - 'TOPE' reduce using rule 75 - 'U' reduce using rule 75 - '[' reduce using rule 75 - '\\/' reduce using rule 75 - ']' reduce using rule 75 - 'as' reduce using rule 75 - 'idJ' reduce using rule 75 - 'recBOT' reduce using rule 75 - 'recOR' reduce using rule 75 - 'refl' reduce using rule 75 - 'refl_{' reduce using rule 75 - '|' reduce using rule 75 - '|->' reduce using rule 75 - '}' reduce using rule 75 - '→' reduce using rule 75 - L_VarIdent reduce using rule 75 - L_HoleIdent reduce using rule 75 - %eof reduce using rule 75 + '(' reduce using rule 86 + ')' reduce using rule 86 + '*' reduce using rule 86 + '*_1' reduce using rule 86 + ',' reduce using rule 86 + '->' reduce using rule 86 + '/\\' reduce using rule 86 + '0_2' reduce using rule 86 + '1' reduce using rule 86 + '1_2' reduce using rule 86 + '2' reduce using rule 86 + ':' reduce using rule 86 + ':=' reduce using rule 86 + ';' reduce using rule 86 + '<' reduce using rule 86 + '<=' reduce using rule 86 + '=' reduce using rule 86 + '===' reduce using rule 86 + '=_{' reduce using rule 86 + '>' reduce using rule 86 + 'BOT' reduce using rule 86 + 'CUBE' reduce using rule 86 + 'TOP' reduce using rule 86 + 'TOPE' reduce using rule 86 + 'U' reduce using rule 86 + '[' reduce using rule 86 + '\\/' reduce using rule 86 + ']' reduce using rule 86 + 'as' reduce using rule 86 + 'idJ' reduce using rule 86 + 'recBOT' reduce using rule 86 + 'recOR' reduce using rule 86 + 'refl' reduce using rule 86 + 'refl_{' reduce using rule 86 + '|' reduce using rule 86 + '|->' reduce using rule 86 + '}' reduce using rule 86 + '→' reduce using rule 86 + L_VarIdentTokenreduce using rule 86 + L_HoleIdentTokenreduce using rule 86 + %eof reduce using rule 86 State 50 - Term7 -> 'U' . (rule 73) + Term7 -> 'CUBE' . (rule 78) - '(' reduce using rule 73 - ')' reduce using rule 73 - '*' reduce using rule 73 - '*_1' reduce using rule 73 - ',' reduce using rule 73 - '->' reduce using rule 73 - '/\\' reduce using rule 73 - '0_2' reduce using rule 73 - '1' reduce using rule 73 - '1_2' reduce using rule 73 - '2' reduce using rule 73 - ':' reduce using rule 73 - ':=' reduce using rule 73 - ';' reduce using rule 73 - '<' reduce using rule 73 - '<=' reduce using rule 73 - '=' reduce using rule 73 - '===' reduce using rule 73 - '=_{' reduce using rule 73 - '>' reduce using rule 73 - 'BOT' reduce using rule 73 - 'CUBE' reduce using rule 73 - 'TOP' reduce using rule 73 - 'TOPE' reduce using rule 73 - 'U' reduce using rule 73 - '[' reduce using rule 73 - '\\/' reduce using rule 73 - ']' reduce using rule 73 - 'as' reduce using rule 73 - 'idJ' reduce using rule 73 - 'recBOT' reduce using rule 73 - 'recOR' reduce using rule 73 - 'refl' reduce using rule 73 - 'refl_{' reduce using rule 73 - '|' reduce using rule 73 - '|->' reduce using rule 73 - '}' reduce using rule 73 - '→' reduce using rule 73 - L_VarIdent reduce using rule 73 - L_HoleIdent reduce using rule 73 - %eof reduce using rule 73 + '(' reduce using rule 78 + ')' reduce using rule 78 + '*' reduce using rule 78 + '*_1' reduce using rule 78 + ',' reduce using rule 78 + '->' reduce using rule 78 + '/\\' reduce using rule 78 + '0_2' reduce using rule 78 + '1' reduce using rule 78 + '1_2' reduce using rule 78 + '2' reduce using rule 78 + ':' reduce using rule 78 + ':=' reduce using rule 78 + ';' reduce using rule 78 + '<' reduce using rule 78 + '<=' reduce using rule 78 + '=' reduce using rule 78 + '===' reduce using rule 78 + '=_{' reduce using rule 78 + '>' reduce using rule 78 + 'BOT' reduce using rule 78 + 'CUBE' reduce using rule 78 + 'TOP' reduce using rule 78 + 'TOPE' reduce using rule 78 + 'U' reduce using rule 78 + '[' reduce using rule 78 + '\\/' reduce using rule 78 + ']' reduce using rule 78 + 'as' reduce using rule 78 + 'idJ' reduce using rule 78 + 'recBOT' reduce using rule 78 + 'recOR' reduce using rule 78 + 'refl' reduce using rule 78 + 'refl_{' reduce using rule 78 + '|' reduce using rule 78 + '|->' reduce using rule 78 + '}' reduce using rule 78 + '→' reduce using rule 78 + L_VarIdentTokenreduce using rule 78 + L_HoleIdentTokenreduce using rule 78 + %eof reduce using rule 78 State 51 - Term1 -> '\\' . ListParam '->' Term1 (rule 108) + Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 109) - '(' shift, and enter state 85 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 169 - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 83 - ListParam goto state 162 State 52 - Term6 -> 'first' . Term7 (rule 115) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 161 + Term7 -> 'TOP' . (rule 85) + + '(' reduce using rule 85 + ')' reduce using rule 85 + '*' reduce using rule 85 + '*_1' reduce using rule 85 + ',' reduce using rule 85 + '->' reduce using rule 85 + '/\\' reduce using rule 85 + '0_2' reduce using rule 85 + '1' reduce using rule 85 + '1_2' reduce using rule 85 + '2' reduce using rule 85 + ':' reduce using rule 85 + ':=' reduce using rule 85 + ';' reduce using rule 85 + '<' reduce using rule 85 + '<=' reduce using rule 85 + '=' reduce using rule 85 + '===' reduce using rule 85 + '=_{' reduce using rule 85 + '>' reduce using rule 85 + 'BOT' reduce using rule 85 + 'CUBE' reduce using rule 85 + 'TOP' reduce using rule 85 + 'TOPE' reduce using rule 85 + 'U' reduce using rule 85 + '[' reduce using rule 85 + '\\/' reduce using rule 85 + ']' reduce using rule 85 + 'as' reduce using rule 85 + 'idJ' reduce using rule 85 + 'recBOT' reduce using rule 85 + 'recOR' reduce using rule 85 + 'refl' reduce using rule 85 + 'refl_{' reduce using rule 85 + '|' reduce using rule 85 + '|->' reduce using rule 85 + '}' reduce using rule 85 + '→' reduce using rule 85 + L_VarIdentTokenreduce using rule 85 + L_HoleIdentTokenreduce using rule 85 + %eof reduce using rule 85 + State 53 - Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) + Term7 -> 'TOPE' . (rule 79) - '(' shift, and enter state 160 + '(' reduce using rule 79 + ')' reduce using rule 79 + '*' reduce using rule 79 + '*_1' reduce using rule 79 + ',' reduce using rule 79 + '->' reduce using rule 79 + '/\\' reduce using rule 79 + '0_2' reduce using rule 79 + '1' reduce using rule 79 + '1_2' reduce using rule 79 + '2' reduce using rule 79 + ':' reduce using rule 79 + ':=' reduce using rule 79 + ';' reduce using rule 79 + '<' reduce using rule 79 + '<=' reduce using rule 79 + '=' reduce using rule 79 + '===' reduce using rule 79 + '=_{' reduce using rule 79 + '>' reduce using rule 79 + 'BOT' reduce using rule 79 + 'CUBE' reduce using rule 79 + 'TOP' reduce using rule 79 + 'TOPE' reduce using rule 79 + 'U' reduce using rule 79 + '[' reduce using rule 79 + '\\/' reduce using rule 79 + ']' reduce using rule 79 + 'as' reduce using rule 79 + 'idJ' reduce using rule 79 + 'recBOT' reduce using rule 79 + 'recOR' reduce using rule 79 + 'refl' reduce using rule 79 + 'refl_{' reduce using rule 79 + '|' reduce using rule 79 + '|->' reduce using rule 79 + '}' reduce using rule 79 + '→' reduce using rule 79 + L_VarIdentTokenreduce using rule 79 + L_HoleIdentTokenreduce using rule 79 + %eof reduce using rule 79 State 54 - Term7 -> 'recBOT' . (rule 83) + Term7 -> 'U' . (rule 77) - '(' reduce using rule 83 - ')' reduce using rule 83 - '*' reduce using rule 83 - '*_1' reduce using rule 83 - ',' reduce using rule 83 - '->' reduce using rule 83 - '/\\' reduce using rule 83 - '0_2' reduce using rule 83 - '1' reduce using rule 83 - '1_2' reduce using rule 83 - '2' reduce using rule 83 - ':' reduce using rule 83 - ':=' reduce using rule 83 - ';' reduce using rule 83 - '<' reduce using rule 83 - '<=' reduce using rule 83 - '=' reduce using rule 83 - '===' reduce using rule 83 - '=_{' reduce using rule 83 - '>' reduce using rule 83 - 'BOT' reduce using rule 83 - 'CUBE' reduce using rule 83 - 'TOP' reduce using rule 83 - 'TOPE' reduce using rule 83 - 'U' reduce using rule 83 - '[' reduce using rule 83 - '\\/' reduce using rule 83 - ']' reduce using rule 83 - 'as' reduce using rule 83 - 'idJ' reduce using rule 83 - 'recBOT' reduce using rule 83 - 'recOR' reduce using rule 83 - 'refl' reduce using rule 83 - 'refl_{' reduce using rule 83 - '|' reduce using rule 83 - '|->' reduce using rule 83 - '}' reduce using rule 83 - '→' reduce using rule 83 - L_VarIdent reduce using rule 83 - L_HoleIdent reduce using rule 83 - %eof reduce using rule 83 + '(' reduce using rule 77 + ')' reduce using rule 77 + '*' reduce using rule 77 + '*_1' reduce using rule 77 + ',' reduce using rule 77 + '->' reduce using rule 77 + '/\\' reduce using rule 77 + '0_2' reduce using rule 77 + '1' reduce using rule 77 + '1_2' reduce using rule 77 + '2' reduce using rule 77 + ':' reduce using rule 77 + ':=' reduce using rule 77 + ';' reduce using rule 77 + '<' reduce using rule 77 + '<=' reduce using rule 77 + '=' reduce using rule 77 + '===' reduce using rule 77 + '=_{' reduce using rule 77 + '>' reduce using rule 77 + 'BOT' reduce using rule 77 + 'CUBE' reduce using rule 77 + 'TOP' reduce using rule 77 + 'TOPE' reduce using rule 77 + 'U' reduce using rule 77 + '[' reduce using rule 77 + '\\/' reduce using rule 77 + ']' reduce using rule 77 + 'as' reduce using rule 77 + 'idJ' reduce using rule 77 + 'recBOT' reduce using rule 77 + 'recOR' reduce using rule 77 + 'refl' reduce using rule 77 + 'refl_{' reduce using rule 77 + '|' reduce using rule 77 + '|->' reduce using rule 77 + '}' reduce using rule 77 + '→' reduce using rule 77 + L_VarIdentTokenreduce using rule 77 + L_HoleIdentTokenreduce using rule 77 + %eof reduce using rule 77 State 55 - Term7 -> 'recOR' . '(' ListRestriction ')' (rule 84) - Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 85) + Term1 -> '\\' . ListParam '->' Term1 (rule 112) - '(' shift, and enter state 159 + '(' shift, and enter state 89 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 87 + ListParam goto state 168 State 56 - Term7 -> 'refl' . (rule 88) + Term6 -> 'first' . Term7 (rule 119) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 167 - '(' reduce using rule 88 - ')' reduce using rule 88 - '*' reduce using rule 88 - '*_1' reduce using rule 88 - ',' reduce using rule 88 - '->' reduce using rule 88 - '/\\' reduce using rule 88 - '0_2' reduce using rule 88 - '1' reduce using rule 88 - '1_2' reduce using rule 88 - '2' reduce using rule 88 - ':' reduce using rule 88 - ':=' reduce using rule 88 - ';' reduce using rule 88 - '<' reduce using rule 88 - '<=' reduce using rule 88 - '=' reduce using rule 88 - '===' reduce using rule 88 - '=_{' reduce using rule 88 - '>' reduce using rule 88 - 'BOT' reduce using rule 88 - 'CUBE' reduce using rule 88 - 'TOP' reduce using rule 88 - 'TOPE' reduce using rule 88 - 'U' reduce using rule 88 - '[' reduce using rule 88 - '\\/' reduce using rule 88 - ']' reduce using rule 88 - 'as' reduce using rule 88 - 'idJ' reduce using rule 88 - 'recBOT' reduce using rule 88 - 'recOR' reduce using rule 88 - 'refl' reduce using rule 88 - 'refl_{' reduce using rule 88 - '|' reduce using rule 88 - '|->' reduce using rule 88 - '}' reduce using rule 88 - '→' reduce using rule 88 - L_VarIdent reduce using rule 88 - L_HoleIdent reduce using rule 88 - %eof reduce using rule 88 +State 57 + Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) -State 57 + '(' shift, and enter state 166 - Term7 -> 'refl_{' . Term '}' (rule 89) - Term7 -> 'refl_{' . Term ':' Term '}' (rule 90) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 158 State 58 - Term6 -> 'second' . Term7 (rule 116) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 157 + Term7 -> 'recBOT' . (rule 87) + + '(' reduce using rule 87 + ')' reduce using rule 87 + '*' reduce using rule 87 + '*_1' reduce using rule 87 + ',' reduce using rule 87 + '->' reduce using rule 87 + '/\\' reduce using rule 87 + '0_2' reduce using rule 87 + '1' reduce using rule 87 + '1_2' reduce using rule 87 + '2' reduce using rule 87 + ':' reduce using rule 87 + ':=' reduce using rule 87 + ';' reduce using rule 87 + '<' reduce using rule 87 + '<=' reduce using rule 87 + '=' reduce using rule 87 + '===' reduce using rule 87 + '=_{' reduce using rule 87 + '>' reduce using rule 87 + 'BOT' reduce using rule 87 + 'CUBE' reduce using rule 87 + 'TOP' reduce using rule 87 + 'TOPE' reduce using rule 87 + 'U' reduce using rule 87 + '[' reduce using rule 87 + '\\/' reduce using rule 87 + ']' reduce using rule 87 + 'as' reduce using rule 87 + 'idJ' reduce using rule 87 + 'recBOT' reduce using rule 87 + 'recOR' reduce using rule 87 + 'refl' reduce using rule 87 + 'refl_{' reduce using rule 87 + '|' reduce using rule 87 + '|->' reduce using rule 87 + '}' reduce using rule 87 + '→' reduce using rule 87 + L_VarIdentTokenreduce using rule 87 + L_HoleIdentTokenreduce using rule 87 + %eof reduce using rule 87 + State 59 - ParamDecl -> '{' . Pattern ':' Term '}' (rule 66) - ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 68) - ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 69) + Term7 -> 'recOR' . '(' ListRestriction ')' (rule 88) + Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 89) - '(' shift, and enter state 156 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 165 - VarIdent goto state 81 - Pattern goto state 155 State 60 - Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 111) + Term7 -> 'refl' . (rule 92) - '(' shift, and enter state 154 + '(' reduce using rule 92 + ')' reduce using rule 92 + '*' reduce using rule 92 + '*_1' reduce using rule 92 + ',' reduce using rule 92 + '->' reduce using rule 92 + '/\\' reduce using rule 92 + '0_2' reduce using rule 92 + '1' reduce using rule 92 + '1_2' reduce using rule 92 + '2' reduce using rule 92 + ':' reduce using rule 92 + ':=' reduce using rule 92 + ';' reduce using rule 92 + '<' reduce using rule 92 + '<=' reduce using rule 92 + '=' reduce using rule 92 + '===' reduce using rule 92 + '=_{' reduce using rule 92 + '>' reduce using rule 92 + 'BOT' reduce using rule 92 + 'CUBE' reduce using rule 92 + 'TOP' reduce using rule 92 + 'TOPE' reduce using rule 92 + 'U' reduce using rule 92 + '[' reduce using rule 92 + '\\/' reduce using rule 92 + ']' reduce using rule 92 + 'as' reduce using rule 92 + 'idJ' reduce using rule 92 + 'recBOT' reduce using rule 92 + 'recOR' reduce using rule 92 + 'refl' reduce using rule 92 + 'refl_{' reduce using rule 92 + '|' reduce using rule 92 + '|->' reduce using rule 92 + '}' reduce using rule 92 + '→' reduce using rule 92 + L_VarIdentTokenreduce using rule 92 + L_HoleIdentTokenreduce using rule 92 + %eof reduce using rule 92 State 61 - Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 112) - - '(' shift, and enter state 153 - + Term7 -> 'refl_{' . Term '}' (rule 93) + Term7 -> 'refl_{' . Term ':' Term '}' (rule 94) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 164 State 62 - VarIdent -> L_VarIdent . (rule 25) - - '(' reduce using rule 25 - ')' reduce using rule 25 - '*' reduce using rule 25 - '*_1' reduce using rule 25 - ',' reduce using rule 25 - '->' reduce using rule 25 - '/\\' reduce using rule 25 - '0_2' reduce using rule 25 - '1' reduce using rule 25 - '1_2' reduce using rule 25 - '2' reduce using rule 25 - ':' reduce using rule 25 - ':=' reduce using rule 25 - ';' reduce using rule 25 - '<' reduce using rule 25 - '<=' reduce using rule 25 - '=' reduce using rule 25 - '===' reduce using rule 25 - '=_{' reduce using rule 25 - '>' reduce using rule 25 - 'BOT' reduce using rule 25 - 'CUBE' reduce using rule 25 - 'TOP' reduce using rule 25 - 'TOPE' reduce using rule 25 - 'U' reduce using rule 25 - '[' reduce using rule 25 - '\\/' reduce using rule 25 - ']' reduce using rule 25 - '_' reduce using rule 25 - 'as' reduce using rule 25 - 'idJ' reduce using rule 25 - 'recBOT' reduce using rule 25 - 'recOR' reduce using rule 25 - 'refl' reduce using rule 25 - 'refl_{' reduce using rule 25 - 'uses' reduce using rule 25 - '{' reduce using rule 25 - '|' reduce using rule 25 - '|->' reduce using rule 25 - '}' reduce using rule 25 - '→' reduce using rule 25 - L_VarIdent reduce using rule 25 - L_HoleIdent reduce using rule 25 - %eof reduce using rule 25 - + Term6 -> 'second' . Term7 (rule 120) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 163 State 63 - HoleIdent -> L_HoleIdent . (rule 26) - - '(' reduce using rule 26 - ')' reduce using rule 26 - '*' reduce using rule 26 - '*_1' reduce using rule 26 - ',' reduce using rule 26 - '->' reduce using rule 26 - '/\\' reduce using rule 26 - '0_2' reduce using rule 26 - '1' reduce using rule 26 - '1_2' reduce using rule 26 - '2' reduce using rule 26 - ':' reduce using rule 26 - ':=' reduce using rule 26 - ';' reduce using rule 26 - '<' reduce using rule 26 - '<=' reduce using rule 26 - '=' reduce using rule 26 - '===' reduce using rule 26 - '=_{' reduce using rule 26 - '>' reduce using rule 26 - 'BOT' reduce using rule 26 - 'CUBE' reduce using rule 26 - 'TOP' reduce using rule 26 - 'TOPE' reduce using rule 26 - 'U' reduce using rule 26 - '[' reduce using rule 26 - '\\/' reduce using rule 26 - ']' reduce using rule 26 - 'as' reduce using rule 26 - 'idJ' reduce using rule 26 - 'recBOT' reduce using rule 26 - 'recOR' reduce using rule 26 - 'refl' reduce using rule 26 - 'refl_{' reduce using rule 26 - '|' reduce using rule 26 - '|->' reduce using rule 26 - '}' reduce using rule 26 - '→' reduce using rule 26 - L_VarIdent reduce using rule 26 - L_HoleIdent reduce using rule 26 - %eof reduce using rule 26 + ParamDecl -> '{' . Pattern ':' Term '}' (rule 70) + ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 72) + ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 73) + '(' shift, and enter state 162 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 161 State 64 - %start_pTerm_internal -> Term . (rule 22) + Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 115) - %eof accept + '(' shift, and enter state 160 State 65 - %start_pTerm6_internal -> Term6 . (rule 21) - Term6 -> Term6 . '[' ListRestriction ']' (rule 113) - Term6 -> Term6 . Term7 (rule 114) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '[' shift, and enter state 146 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - %eof accept + Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 116) + + '(' shift, and enter state 159 - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 145 State 66 - Term7 -> '(' . Term ',' Term ')' (rule 87) - Term7 -> '(' . Term ')' (rule 94) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 152 + VarIdentToken -> L_VarIdentToken . (rule 27) + + '(' reduce using rule 27 + ')' reduce using rule 27 + '*' reduce using rule 27 + '*_1' reduce using rule 27 + ',' reduce using rule 27 + '->' reduce using rule 27 + '/\\' reduce using rule 27 + '0_2' reduce using rule 27 + '1' reduce using rule 27 + '1_2' reduce using rule 27 + '2' reduce using rule 27 + ':' reduce using rule 27 + ':=' reduce using rule 27 + ';' reduce using rule 27 + '<' reduce using rule 27 + '<=' reduce using rule 27 + '=' reduce using rule 27 + '===' reduce using rule 27 + '=_{' reduce using rule 27 + '>' reduce using rule 27 + 'BOT' reduce using rule 27 + 'CUBE' reduce using rule 27 + 'TOP' reduce using rule 27 + 'TOPE' reduce using rule 27 + 'U' reduce using rule 27 + '[' reduce using rule 27 + '\\/' reduce using rule 27 + ']' reduce using rule 27 + '_' reduce using rule 27 + 'as' reduce using rule 27 + 'idJ' reduce using rule 27 + 'recBOT' reduce using rule 27 + 'recOR' reduce using rule 27 + 'refl' reduce using rule 27 + 'refl_{' reduce using rule 27 + 'uses' reduce using rule 27 + '{' reduce using rule 27 + '|' reduce using rule 27 + '|->' reduce using rule 27 + '}' reduce using rule 27 + '→' reduce using rule 27 + L_VarIdentTokenreduce using rule 27 + L_HoleIdentTokenreduce using rule 27 + %eof reduce using rule 27 + State 67 - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 106) - Term1 -> Term2 . '=' Term2 (rule 107) - Term1 -> Term2 . (rule 109) + HoleIdentToken -> L_HoleIdentToken . (rule 28) - ')' reduce using rule 109 - ',' reduce using rule 109 - ':' reduce using rule 109 - ':=' reduce using rule 109 - ';' reduce using rule 109 - '=' shift, and enter state 150 - '=_{' shift, and enter state 151 - '>' reduce using rule 109 - ']' reduce using rule 109 - '|' reduce using rule 109 - '|->' reduce using rule 109 - '}' reduce using rule 109 - %eof reduce using rule 109 + '(' reduce using rule 28 + ')' reduce using rule 28 + '*' reduce using rule 28 + '*_1' reduce using rule 28 + ',' reduce using rule 28 + '->' reduce using rule 28 + '/\\' reduce using rule 28 + '0_2' reduce using rule 28 + '1' reduce using rule 28 + '1_2' reduce using rule 28 + '2' reduce using rule 28 + ':' reduce using rule 28 + ':=' reduce using rule 28 + ';' reduce using rule 28 + '<' reduce using rule 28 + '<=' reduce using rule 28 + '=' reduce using rule 28 + '===' reduce using rule 28 + '=_{' reduce using rule 28 + '>' reduce using rule 28 + 'BOT' reduce using rule 28 + 'CUBE' reduce using rule 28 + 'TOP' reduce using rule 28 + 'TOPE' reduce using rule 28 + 'U' reduce using rule 28 + '[' reduce using rule 28 + '\\/' reduce using rule 28 + ']' reduce using rule 28 + 'as' reduce using rule 28 + 'idJ' reduce using rule 28 + 'recBOT' reduce using rule 28 + 'recOR' reduce using rule 28 + 'refl' reduce using rule 28 + 'refl_{' reduce using rule 28 + '|' reduce using rule 28 + '|->' reduce using rule 28 + '}' reduce using rule 28 + '→' reduce using rule 28 + L_VarIdentTokenreduce using rule 28 + L_HoleIdentTokenreduce using rule 28 + %eof reduce using rule 28 State 68 - %start_pTerm1_internal -> Term1 . (rule 20) + %start_pTerm_internal -> Term . (rule 24) %eof accept State 69 - %start_pTerm2_internal -> Term2 . (rule 19) - + %start_pTerm6_internal -> Term6 . (rule 23) + Term6 -> Term6 . '[' ListRestriction ']' (rule 117) + Term6 -> Term6 . Term7 (rule 118) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '[' shift, and enter state 152 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 %eof accept + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 151 State 70 - Term5 -> Term6 . (rule 96) - Term6 -> Term6 . '[' ListRestriction ']' (rule 113) - Term6 -> Term6 . Term7 (rule 114) - - '(' shift, and enter state 66 - ')' reduce using rule 96 - '*' reduce using rule 96 - '*_1' shift, and enter state 39 - ',' reduce using rule 96 - '/\\' reduce using rule 96 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '<' shift, and enter state 44 - '<=' reduce using rule 96 - '=' reduce using rule 96 - '===' reduce using rule 96 - '=_{' reduce using rule 96 - '>' reduce using rule 96 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '[' shift, and enter state 146 - '\\/' reduce using rule 96 - ']' reduce using rule 96 - 'as' reduce using rule 96 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - %eof reduce using rule 96 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 145 + Term7 -> '(' . Term ',' Term ')' (rule 91) + Term7 -> '(' . Term ')' (rule 98) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 158 State 71 - %start_pTerm3_internal -> Term3 . (rule 18) + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 110) + Term1 -> Term2 . '=' Term2 (rule 111) + Term1 -> Term2 . (rule 113) - %eof accept + ')' reduce using rule 113 + ',' reduce using rule 113 + ':' reduce using rule 113 + ':=' reduce using rule 113 + ';' reduce using rule 113 + '=' shift, and enter state 156 + '=_{' shift, and enter state 157 + '>' reduce using rule 113 + ']' reduce using rule 113 + '|' reduce using rule 113 + '|->' reduce using rule 113 + '}' reduce using rule 113 + %eof reduce using rule 113 State 72 - %start_pTerm4_internal -> Term4 . (rule 17) + %start_pTerm1_internal -> Term1 . (rule 22) %eof accept State 73 - %start_pTerm5_internal -> Term5 . (rule 16) - Term5 -> Term5 . '*' Term6 (rule 95) + %start_pTerm2_internal -> Term2 . (rule 21) - '*' shift, and enter state 149 %eof accept State 74 - %start_pTerm7_internal -> Term7 . (rule 15) + Term5 -> Term6 . (rule 100) + Term6 -> Term6 . '[' ListRestriction ']' (rule 117) + Term6 -> Term6 . Term7 (rule 118) - %eof accept + '(' shift, and enter state 70 + ')' reduce using rule 100 + '*' reduce using rule 100 + '*_1' shift, and enter state 43 + ',' reduce using rule 100 + '/\\' reduce using rule 100 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + ':' reduce using rule 100 + ':=' reduce using rule 100 + ';' reduce using rule 100 + '<' shift, and enter state 48 + '<=' reduce using rule 100 + '=' reduce using rule 100 + '===' reduce using rule 100 + '=_{' reduce using rule 100 + '>' reduce using rule 100 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '[' shift, and enter state 152 + '\\/' reduce using rule 100 + ']' reduce using rule 100 + 'as' reduce using rule 100 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + '|' reduce using rule 100 + '|->' reduce using rule 100 + '}' reduce using rule 100 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + %eof reduce using rule 100 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 151 State 75 - ListRestriction -> Restriction . (rule 71) - ListRestriction -> Restriction . ',' ListRestriction (rule 72) + %start_pTerm3_internal -> Term3 . (rule 20) - ')' reduce using rule 71 - ',' shift, and enter state 148 - ']' reduce using rule 71 - %eof reduce using rule 71 + %eof accept State 76 - %start_pListRestriction_internal -> ListRestriction . (rule 14) + %start_pTerm4_internal -> Term4 . (rule 19) %eof accept State 77 - Restriction -> Term . '|->' Term (rule 70) + %start_pTerm5_internal -> Term5 . (rule 18) + Term5 -> Term5 . '*' Term6 (rule 99) - '|->' shift, and enter state 147 + '*' shift, and enter state 155 + %eof accept State 78 - %start_pRestriction_internal -> Restriction . (rule 13) + %start_pTerm7_internal -> Term7 . (rule 17) %eof accept State 79 - %start_pParamDecl_internal -> ParamDecl . (rule 12) + ListRestriction -> Restriction . (rule 75) + ListRestriction -> Restriction . ',' ListRestriction (rule 76) - %eof accept + ')' reduce using rule 75 + ',' shift, and enter state 154 + ']' reduce using rule 75 + %eof reduce using rule 75 State 80 - ParamDecl -> Term6 . (rule 64) - Term6 -> Term6 . '[' ListRestriction ']' (rule 113) - Term6 -> Term6 . Term7 (rule 114) + %start_pListRestriction_internal -> ListRestriction . (rule 16) - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '->' reduce using rule 64 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '[' shift, and enter state 146 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - %eof reduce using rule 64 + %eof accept - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 145 State 81 - Pattern -> VarIdent . (rule 55) + Restriction -> Term . '|->' Term (rule 74) - '(' reduce using rule 55 - ')' reduce using rule 55 - ',' reduce using rule 55 - '->' reduce using rule 55 - ':' reduce using rule 55 - '_' reduce using rule 55 - '{' reduce using rule 55 - L_VarIdent reduce using rule 55 - %eof reduce using rule 55 + '|->' shift, and enter state 153 State 82 - Param -> Pattern . (rule 59) + %start_pRestriction_internal -> Restriction . (rule 15) - '(' reduce using rule 59 - '->' reduce using rule 59 - ':' reduce using rule 59 - '_' reduce using rule 59 - '{' reduce using rule 59 - L_VarIdent reduce using rule 59 - %eof reduce using rule 59 + %eof accept State 83 - ListParam -> Param . (rule 62) - ListParam -> Param . ListParam (rule 63) + %start_pParamDecl_internal -> ParamDecl . (rule 14) - '(' shift, and enter state 85 - '->' reduce using rule 62 - ':' reduce using rule 62 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 - %eof reduce using rule 62 + %eof accept - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 83 - ListParam goto state 144 State 84 - %start_pListParam_internal -> ListParam . (rule 11) + ParamDecl -> Term6 . (rule 68) + Term6 -> Term6 . '[' ListRestriction ']' (rule 117) + Term6 -> Term6 . Term7 (rule 118) - %eof accept + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '->' reduce using rule 68 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '[' shift, and enter state 152 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + %eof reduce using rule 68 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 151 State 85 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 56) - Param -> '(' . ListPattern ':' Term ')' (rule 60) + Pattern -> VarIdent . (rule 59) - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + '(' reduce using rule 59 + ')' reduce using rule 59 + ',' reduce using rule 59 + '->' reduce using rule 59 + ':' reduce using rule 59 + '_' reduce using rule 59 + '{' reduce using rule 59 + L_VarIdentTokenreduce using rule 59 + %eof reduce using rule 59 - VarIdent goto state 81 - Pattern goto state 142 - ListPattern goto state 143 State 86 - Pattern -> '_' . (rule 54) + Param -> Pattern . (rule 63) - '(' reduce using rule 54 - ')' reduce using rule 54 - ',' reduce using rule 54 - '->' reduce using rule 54 - ':' reduce using rule 54 - '_' reduce using rule 54 - '{' reduce using rule 54 - L_VarIdent reduce using rule 54 - %eof reduce using rule 54 + '(' reduce using rule 63 + '->' reduce using rule 63 + ':' reduce using rule 63 + '_' reduce using rule 63 + '{' reduce using rule 63 + L_VarIdentTokenreduce using rule 63 + %eof reduce using rule 63 State 87 - Param -> '{' . Pattern ':' Term '|' Term '}' (rule 61) + ListParam -> Param . (rule 66) + ListParam -> Param . ListParam (rule 67) - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 89 + '->' reduce using rule 66 + ':' reduce using rule 66 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + %eof reduce using rule 66 - VarIdent goto state 81 - Pattern goto state 141 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 87 + ListParam goto state 150 State 88 - %start_pParam_internal -> Param . (rule 10) + %start_pListParam_internal -> ListParam . (rule 13) %eof accept State 89 - ListPattern -> Pattern . (rule 57) - ListPattern -> Pattern . ListPattern (rule 58) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 60) + Param -> '(' . ListPattern ':' Term ')' (rule 64) - '(' shift, and enter state 91 - ':' reduce using rule 57 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 - %eof reduce using rule 57 + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 81 - Pattern goto state 89 - ListPattern goto state 140 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 148 + ListPattern goto state 149 State 90 - %start_pListPattern_internal -> ListPattern . (rule 9) + Pattern -> '_' . (rule 58) - %eof accept + '(' reduce using rule 58 + ')' reduce using rule 58 + ',' reduce using rule 58 + '->' reduce using rule 58 + ':' reduce using rule 58 + '_' reduce using rule 58 + '{' reduce using rule 58 + L_VarIdentTokenreduce using rule 58 + %eof reduce using rule 58 State 91 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 56) + Param -> '{' . Pattern ':' Term '|' Term '}' (rule 65) - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 81 - Pattern goto state 139 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 147 State 92 - %start_pPattern_internal -> Pattern . (rule 8) + %start_pParam_internal -> Param . (rule 12) %eof accept State 93 - SectionName -> VarIdent . (rule 53) + ListPattern -> Pattern . (rule 61) + ListPattern -> Pattern . ListPattern (rule 62) - ';' reduce using rule 53 - %eof reduce using rule 53 + '(' shift, and enter state 95 + ':' reduce using rule 61 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + %eof reduce using rule 61 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 93 + ListPattern goto state 146 State 94 - %start_pSectionName_internal -> SectionName . (rule 7) + %start_pListPattern_internal -> ListPattern . (rule 11) %eof accept State 95 - %start_pDeclUsedVars_internal -> DeclUsedVars . (rule 6) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 60) - %eof accept + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 145 State 96 - DeclUsedVars -> 'uses' . '(' ListVarIdent ')' (rule 50) + %start_pPattern_internal -> Pattern . (rule 10) - '(' shift, and enter state 138 + %eof accept State 97 - ListCommand -> Command . ';' ListCommand (rule 49) + SectionName -> VarIdent . (rule 57) - ';' shift, and enter state 137 + ';' reduce using rule 57 + %eof reduce using rule 57 State 98 - %start_pListCommand_internal -> ListCommand . (rule 5) + %start_pSectionName_internal -> SectionName . (rule 9) %eof accept State 99 - Command -> '#assume' . ListVarIdent ':' Term (rule 40) + %start_pDeclUsedVars_internal -> DeclUsedVars . (rule 8) - L_VarIdent shift, and enter state 62 + %eof accept - VarIdent goto state 117 - ListVarIdent goto state 136 State 100 - Command -> '#check' . Term ':' Term (rule 34) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 135 + DeclUsedVars -> 'uses' . '(' ListVarIdent ')' (rule 54) -State 101 + '(' shift, and enter state 144 - Command -> '#compute' . Term (rule 35) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 134 -State 102 +State 101 - Command -> '#compute-nf' . Term (rule 37) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 133 + ListCommand -> Command . ';' ListCommand (rule 53) -State 103 + ';' shift, and enter state 143 - Command -> '#compute-whnf' . Term (rule 36) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 132 -State 104 +State 102 - Command -> '#def' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 46) - Command -> '#def' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 47) + %start_pListCommand_internal -> ListCommand . (rule 7) - L_VarIdent shift, and enter state 62 + %eof accept - VarIdent goto state 131 -State 105 +State 103 - Command -> '#define' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 44) - Command -> '#define' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 45) + Command -> '#assume' . ListVarIdent ':' Term (rule 44) - L_VarIdent shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 130 + VarIdentToken goto state 28 + VarIdent goto state 121 + ListVarIdent goto state 142 -State 106 +State 104 - Command -> '#postulate' . VarIdent DeclUsedVars ListParam ':' Term (rule 38) - Command -> '#postulate' . VarIdent DeclUsedVars ':' Term (rule 39) + Command -> '#check' . Term ':' Term (rule 38) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 141 - L_VarIdent shift, and enter state 62 +State 105 - VarIdent goto state 129 + Command -> '#compute' . Term (rule 39) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 140 -State 107 +State 106 - Command -> '#section' . SectionName ';' ListCommand '#end' SectionName (rule 43) + Command -> '#compute-nf' . Term (rule 41) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 139 - ';' reduce using rule 52 - L_VarIdent shift, and enter state 62 +State 107 - VarIdent goto state 93 - SectionName goto state 128 + Command -> '#compute-whnf' . Term (rule 40) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 138 State 108 - Command -> '#set-option' . String '=' String (rule 32) + Command -> '#def' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 50) + Command -> '#def' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 51) - L_quoted shift, and enter state 25 + L_VarIdentTokenshift, and enter state 66 - String goto state 127 + VarIdentToken goto state 28 + VarIdent goto state 137 State 109 - Command -> '#unset-option' . String (rule 33) + Command -> '#define' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 48) + Command -> '#define' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 49) - L_quoted shift, and enter state 25 + L_VarIdentTokenshift, and enter state 66 - String goto state 126 + VarIdentToken goto state 28 + VarIdent goto state 136 State 110 - Command -> '#variable' . VarIdent ':' Term (rule 41) + Command -> '#postulate' . VarIdent DeclUsedVars ListParam ':' Term (rule 42) + Command -> '#postulate' . VarIdent DeclUsedVars ':' Term (rule 43) - L_VarIdent shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 125 + VarIdentToken goto state 28 + VarIdent goto state 135 State 111 - Command -> '#variables' . ListVarIdent ':' Term (rule 42) + Command -> '#section' . SectionName ';' ListCommand '#end' SectionName (rule 47) - L_VarIdent shift, and enter state 62 + ';' reduce using rule 56 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 117 - ListVarIdent goto state 124 + VarIdentToken goto state 28 + VarIdent goto state 97 + SectionName goto state 134 State 112 - %start_pCommand_internal -> Command . (rule 4) + Command -> '#set-option' . String '=' String (rule 36) - %eof accept + L_quoted shift, and enter state 27 + String goto state 133 State 113 - %start_pLanguage_internal -> Language . (rule 3) + Command -> '#unset-option' . String (rule 37) - %eof accept + L_quoted shift, and enter state 27 + String goto state 132 State 114 - Language -> 'rzk-1' . (rule 31) + Command -> '#variable' . VarIdent ':' Term (rule 45) - ';' reduce using rule 31 - %eof reduce using rule 31 + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 131 State 115 - %start_pLanguageDecl_internal -> LanguageDecl . (rule 2) + Command -> '#variables' . ListVarIdent ':' Term (rule 46) - %eof accept + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 121 + ListVarIdent goto state 130 State 116 - LanguageDecl -> '#lang' . Language ';' (rule 30) + %start_pCommand_internal -> Command . (rule 6) - 'rzk-1' shift, and enter state 114 + %eof accept - Language goto state 123 State 117 - ListVarIdent -> VarIdent . (rule 28) - ListVarIdent -> VarIdent . ListVarIdent (rule 29) + %start_pLanguage_internal -> Language . (rule 5) - ')' reduce using rule 28 - ':' reduce using rule 28 - L_VarIdent shift, and enter state 62 - %eof reduce using rule 28 + %eof accept - VarIdent goto state 117 - ListVarIdent goto state 122 State 118 - %start_pListVarIdent_internal -> ListVarIdent . (rule 1) + Language -> 'rzk-1' . (rule 35) - %eof accept + ';' reduce using rule 35 + %eof reduce using rule 35 State 119 - %start_pModule_internal -> Module . (rule 0) + %start_pLanguageDecl_internal -> LanguageDecl . (rule 4) %eof accept State 120 - Module -> LanguageDecl . ListCommand (rule 27) - - '#assume' shift, and enter state 99 - '#check' shift, and enter state 100 - '#compute' shift, and enter state 101 - '#compute-nf' shift, and enter state 102 - '#compute-whnf'shift, and enter state 103 - '#def' shift, and enter state 104 - '#define' shift, and enter state 105 - '#postulate' shift, and enter state 106 - '#section' shift, and enter state 107 - '#set-option' shift, and enter state 108 - '#unset-option'shift, and enter state 109 - '#variable' shift, and enter state 110 - '#variables' shift, and enter state 111 - %eof reduce using rule 48 + LanguageDecl -> '#lang' . Language ';' (rule 34) + + 'rzk-1' shift, and enter state 118 - Command goto state 97 - ListCommand goto state 121 + Language goto state 129 State 121 - Module -> LanguageDecl ListCommand . (rule 27) + ListVarIdent -> VarIdent . (rule 32) + ListVarIdent -> VarIdent . ListVarIdent (rule 33) - %eof reduce using rule 27 + ')' reduce using rule 32 + ':' reduce using rule 32 + L_VarIdentTokenshift, and enter state 66 + %eof reduce using rule 32 + VarIdentToken goto state 28 + VarIdent goto state 121 + ListVarIdent goto state 128 State 122 - ListVarIdent -> VarIdent ListVarIdent . (rule 29) + %start_pListVarIdent_internal -> ListVarIdent . (rule 3) - ')' reduce using rule 29 - ':' reduce using rule 29 - %eof reduce using rule 29 + %eof accept State 123 - LanguageDecl -> '#lang' Language . ';' (rule 30) + %start_pVarIdent_internal -> VarIdent . (rule 2) - ';' shift, and enter state 219 + %eof accept State 124 - Command -> '#variables' ListVarIdent . ':' Term (rule 42) + %start_pHoleIdent_internal -> HoleIdent . (rule 1) - ':' shift, and enter state 218 + %eof accept State 125 - Command -> '#variable' VarIdent . ':' Term (rule 41) + %start_pModule_internal -> Module . (rule 0) - ':' shift, and enter state 217 + %eof accept State 126 - Command -> '#unset-option' String . (rule 33) - - ';' reduce using rule 33 - %eof reduce using rule 33 + Module -> LanguageDecl . ListCommand (rule 29) + + '#assume' shift, and enter state 103 + '#check' shift, and enter state 104 + '#compute' shift, and enter state 105 + '#compute-nf' shift, and enter state 106 + '#compute-whnf'shift, and enter state 107 + '#def' shift, and enter state 108 + '#define' shift, and enter state 109 + '#postulate' shift, and enter state 110 + '#section' shift, and enter state 111 + '#set-option' shift, and enter state 112 + '#unset-option'shift, and enter state 113 + '#variable' shift, and enter state 114 + '#variables' shift, and enter state 115 + %eof reduce using rule 52 + Command goto state 101 + ListCommand goto state 127 State 127 - Command -> '#set-option' String . '=' String (rule 32) + Module -> LanguageDecl ListCommand . (rule 29) - '=' shift, and enter state 216 + %eof reduce using rule 29 State 128 - Command -> '#section' SectionName . ';' ListCommand '#end' SectionName (rule 43) + ListVarIdent -> VarIdent ListVarIdent . (rule 33) - ';' shift, and enter state 215 + ')' reduce using rule 33 + ':' reduce using rule 33 + %eof reduce using rule 33 State 129 - Command -> '#postulate' VarIdent . DeclUsedVars ListParam ':' Term (rule 38) - Command -> '#postulate' VarIdent . DeclUsedVars ':' Term (rule 39) + LanguageDecl -> '#lang' Language . ';' (rule 34) - '(' reduce using rule 51 - ':' reduce using rule 51 - '_' reduce using rule 51 - 'uses' shift, and enter state 96 - '{' reduce using rule 51 - L_VarIdent reduce using rule 51 + ';' shift, and enter state 225 - DeclUsedVars goto state 214 State 130 - Command -> '#define' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 44) - Command -> '#define' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 45) + Command -> '#variables' ListVarIdent . ':' Term (rule 46) - '(' reduce using rule 51 - ':' reduce using rule 51 - '_' reduce using rule 51 - 'uses' shift, and enter state 96 - '{' reduce using rule 51 - L_VarIdent reduce using rule 51 + ':' shift, and enter state 224 - DeclUsedVars goto state 213 State 131 - Command -> '#def' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 46) - Command -> '#def' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 47) + Command -> '#variable' VarIdent . ':' Term (rule 45) - '(' reduce using rule 51 - ':' reduce using rule 51 - '_' reduce using rule 51 - 'uses' shift, and enter state 96 - '{' reduce using rule 51 - L_VarIdent reduce using rule 51 + ':' shift, and enter state 223 - DeclUsedVars goto state 212 State 132 - Command -> '#compute-whnf' Term . (rule 36) + Command -> '#unset-option' String . (rule 37) - ';' reduce using rule 36 - %eof reduce using rule 36 + ';' reduce using rule 37 + %eof reduce using rule 37 State 133 - Command -> '#compute-nf' Term . (rule 37) + Command -> '#set-option' String . '=' String (rule 36) - ';' reduce using rule 37 - %eof reduce using rule 37 + '=' shift, and enter state 222 State 134 - Command -> '#compute' Term . (rule 35) + Command -> '#section' SectionName . ';' ListCommand '#end' SectionName (rule 47) - ';' reduce using rule 35 - %eof reduce using rule 35 + ';' shift, and enter state 221 State 135 - Command -> '#check' Term . ':' Term (rule 34) + Command -> '#postulate' VarIdent . DeclUsedVars ListParam ':' Term (rule 42) + Command -> '#postulate' VarIdent . DeclUsedVars ':' Term (rule 43) - ':' shift, and enter state 211 + '(' reduce using rule 55 + ':' reduce using rule 55 + '_' reduce using rule 55 + 'uses' shift, and enter state 100 + '{' reduce using rule 55 + L_VarIdentTokenreduce using rule 55 + DeclUsedVars goto state 220 State 136 - Command -> '#assume' ListVarIdent . ':' Term (rule 40) + Command -> '#define' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 48) + Command -> '#define' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 49) - ':' shift, and enter state 210 + '(' reduce using rule 55 + ':' reduce using rule 55 + '_' reduce using rule 55 + 'uses' shift, and enter state 100 + '{' reduce using rule 55 + L_VarIdentTokenreduce using rule 55 + DeclUsedVars goto state 219 State 137 - ListCommand -> Command ';' . ListCommand (rule 49) - - '#assume' shift, and enter state 99 - '#check' shift, and enter state 100 - '#compute' shift, and enter state 101 - '#compute-nf' shift, and enter state 102 - '#compute-whnf'shift, and enter state 103 - '#def' shift, and enter state 104 - '#define' shift, and enter state 105 - '#end' reduce using rule 48 - '#postulate' shift, and enter state 106 - '#section' shift, and enter state 107 - '#set-option' shift, and enter state 108 - '#unset-option'shift, and enter state 109 - '#variable' shift, and enter state 110 - '#variables' shift, and enter state 111 - %eof reduce using rule 48 + Command -> '#def' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 50) + Command -> '#def' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 51) + + '(' reduce using rule 55 + ':' reduce using rule 55 + '_' reduce using rule 55 + 'uses' shift, and enter state 100 + '{' reduce using rule 55 + L_VarIdentTokenreduce using rule 55 - Command goto state 97 - ListCommand goto state 209 + DeclUsedVars goto state 218 State 138 - DeclUsedVars -> 'uses' '(' . ListVarIdent ')' (rule 50) + Command -> '#compute-whnf' Term . (rule 40) - L_VarIdent shift, and enter state 62 + ';' reduce using rule 40 + %eof reduce using rule 40 - VarIdent goto state 117 - ListVarIdent goto state 208 State 139 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 56) + Command -> '#compute-nf' Term . (rule 41) - ',' shift, and enter state 206 + ';' reduce using rule 41 + %eof reduce using rule 41 State 140 - ListPattern -> Pattern ListPattern . (rule 58) + Command -> '#compute' Term . (rule 39) - ':' reduce using rule 58 - %eof reduce using rule 58 + ';' reduce using rule 39 + %eof reduce using rule 39 State 141 - Param -> '{' Pattern . ':' Term '|' Term '}' (rule 61) + Command -> '#check' Term . ':' Term (rule 38) - ':' shift, and enter state 207 + ':' shift, and enter state 217 State 142 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 56) - ListPattern -> Pattern . (rule 57) - ListPattern -> Pattern . ListPattern (rule 58) + Command -> '#assume' ListVarIdent . ':' Term (rule 44) - '(' shift, and enter state 91 - ',' shift, and enter state 206 - ':' reduce using rule 57 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + ':' shift, and enter state 216 - VarIdent goto state 81 - Pattern goto state 89 - ListPattern goto state 140 State 143 - Param -> '(' ListPattern . ':' Term ')' (rule 60) - - ':' shift, and enter state 205 + ListCommand -> Command ';' . ListCommand (rule 53) + + '#assume' shift, and enter state 103 + '#check' shift, and enter state 104 + '#compute' shift, and enter state 105 + '#compute-nf' shift, and enter state 106 + '#compute-whnf'shift, and enter state 107 + '#def' shift, and enter state 108 + '#define' shift, and enter state 109 + '#end' reduce using rule 52 + '#postulate' shift, and enter state 110 + '#section' shift, and enter state 111 + '#set-option' shift, and enter state 112 + '#unset-option'shift, and enter state 113 + '#variable' shift, and enter state 114 + '#variables' shift, and enter state 115 + %eof reduce using rule 52 + Command goto state 101 + ListCommand goto state 215 State 144 - ListParam -> Param ListParam . (rule 63) + DeclUsedVars -> 'uses' '(' . ListVarIdent ')' (rule 54) - '->' reduce using rule 63 - ':' reduce using rule 63 - %eof reduce using rule 63 + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 121 + ListVarIdent goto state 214 State 145 - Term6 -> Term6 Term7 . (rule 114) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 60) - '(' reduce using rule 114 - ')' reduce using rule 114 - '*' reduce using rule 114 - '*_1' reduce using rule 114 - ',' reduce using rule 114 - '->' reduce using rule 114 - '/\\' reduce using rule 114 - '0_2' reduce using rule 114 - '1' reduce using rule 114 - '1_2' reduce using rule 114 - '2' reduce using rule 114 - ':' reduce using rule 114 - ':=' reduce using rule 114 - ';' reduce using rule 114 - '<' reduce using rule 114 - '<=' reduce using rule 114 - '=' reduce using rule 114 - '===' reduce using rule 114 - '=_{' reduce using rule 114 - '>' reduce using rule 114 - 'BOT' reduce using rule 114 - 'CUBE' reduce using rule 114 - 'TOP' reduce using rule 114 - 'TOPE' reduce using rule 114 - 'U' reduce using rule 114 - '[' reduce using rule 114 - '\\/' reduce using rule 114 - ']' reduce using rule 114 - 'as' reduce using rule 114 - 'idJ' reduce using rule 114 - 'recBOT' reduce using rule 114 - 'recOR' reduce using rule 114 - 'refl' reduce using rule 114 - 'refl_{' reduce using rule 114 - '|' reduce using rule 114 - '|->' reduce using rule 114 - '}' reduce using rule 114 - '→' reduce using rule 114 - L_VarIdent reduce using rule 114 - L_HoleIdent reduce using rule 114 - %eof reduce using rule 114 + ',' shift, and enter state 212 State 146 - Term6 -> Term6 '[' . ListRestriction ']' (rule 113) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Restriction goto state 75 - ListRestrictiongoto state 204 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 77 + ListPattern -> Pattern ListPattern . (rule 62) + + ':' reduce using rule 62 + %eof reduce using rule 62 + State 147 - Restriction -> Term '|->' . Term (rule 70) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 203 + Param -> '{' Pattern . ':' Term '|' Term '}' (rule 65) + + ':' shift, and enter state 213 + State 148 - ListRestriction -> Restriction ',' . ListRestriction (rule 72) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Restriction goto state 75 - ListRestrictiongoto state 202 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 77 + Pattern -> '(' Pattern . ',' Pattern ')' (rule 60) + ListPattern -> Pattern . (rule 61) + ListPattern -> Pattern . ListPattern (rule 62) + + '(' shift, and enter state 95 + ',' shift, and enter state 212 + ':' reduce using rule 61 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 93 + ListPattern goto state 146 State 149 - Term5 -> Term5 '*' . Term6 (rule 95) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term6 goto state 201 + Param -> '(' ListPattern . ':' Term ')' (rule 64) + + ':' shift, and enter state 211 + State 150 - Term1 -> Term2 '=' . Term2 (rule 107) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 200 - Term6 goto state 70 + ListParam -> Param ListParam . (rule 67) + + '->' reduce using rule 67 + ':' reduce using rule 67 + %eof reduce using rule 67 + State 151 - Term1 -> Term2 '=_{' . Term '}' Term2 (rule 106) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 199 + Term6 -> Term6 Term7 . (rule 118) -State 152 + '(' reduce using rule 118 + ')' reduce using rule 118 + '*' reduce using rule 118 + '*_1' reduce using rule 118 + ',' reduce using rule 118 + '->' reduce using rule 118 + '/\\' reduce using rule 118 + '0_2' reduce using rule 118 + '1' reduce using rule 118 + '1_2' reduce using rule 118 + '2' reduce using rule 118 + ':' reduce using rule 118 + ':=' reduce using rule 118 + ';' reduce using rule 118 + '<' reduce using rule 118 + '<=' reduce using rule 118 + '=' reduce using rule 118 + '===' reduce using rule 118 + '=_{' reduce using rule 118 + '>' reduce using rule 118 + 'BOT' reduce using rule 118 + 'CUBE' reduce using rule 118 + 'TOP' reduce using rule 118 + 'TOPE' reduce using rule 118 + 'U' reduce using rule 118 + '[' reduce using rule 118 + '\\/' reduce using rule 118 + ']' reduce using rule 118 + 'as' reduce using rule 118 + 'idJ' reduce using rule 118 + 'recBOT' reduce using rule 118 + 'recOR' reduce using rule 118 + 'refl' reduce using rule 118 + 'refl_{' reduce using rule 118 + '|' reduce using rule 118 + '|->' reduce using rule 118 + '}' reduce using rule 118 + '→' reduce using rule 118 + L_VarIdentTokenreduce using rule 118 + L_HoleIdentTokenreduce using rule 118 + %eof reduce using rule 118 - Term7 -> '(' Term . ',' Term ')' (rule 87) - Term7 -> '(' Term . ')' (rule 94) - ')' shift, and enter state 197 - ',' shift, and enter state 198 +State 152 + Term6 -> Term6 '[' . ListRestriction ']' (rule 117) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Restriction goto state 79 + ListRestrictiongoto state 210 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 81 State 153 - Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 112) - - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 - - VarIdent goto state 81 - Pattern goto state 196 + Restriction -> Term '|->' . Term (rule 74) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 209 State 154 - Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 111) - - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 - - VarIdent goto state 81 - Pattern goto state 195 + ListRestriction -> Restriction ',' . ListRestriction (rule 76) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Restriction goto state 79 + ListRestrictiongoto state 208 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 81 State 155 - ParamDecl -> '{' Pattern . ':' Term '}' (rule 66) - ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 69) - - ':' shift, and enter state 194 - + Term5 -> Term5 '*' . Term6 (rule 99) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term6 goto state 207 State 156 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 56) - ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 68) - - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 - - VarIdent goto state 81 - Pattern goto state 193 + Term1 -> Term2 '=' . Term2 (rule 111) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 206 + Term6 goto state 74 State 157 - Term6 -> 'second' Term7 . (rule 116) - - '(' reduce using rule 116 - ')' reduce using rule 116 - '*' reduce using rule 116 - '*_1' reduce using rule 116 - ',' reduce using rule 116 - '->' reduce using rule 116 - '/\\' reduce using rule 116 - '0_2' reduce using rule 116 - '1' reduce using rule 116 - '1_2' reduce using rule 116 - '2' reduce using rule 116 - ':' reduce using rule 116 - ':=' reduce using rule 116 - ';' reduce using rule 116 - '<' reduce using rule 116 - '<=' reduce using rule 116 - '=' reduce using rule 116 - '===' reduce using rule 116 - '=_{' reduce using rule 116 - '>' reduce using rule 116 - 'BOT' reduce using rule 116 - 'CUBE' reduce using rule 116 - 'TOP' reduce using rule 116 - 'TOPE' reduce using rule 116 - 'U' reduce using rule 116 - '[' reduce using rule 116 - '\\/' reduce using rule 116 - ']' reduce using rule 116 - 'as' reduce using rule 116 - 'idJ' reduce using rule 116 - 'recBOT' reduce using rule 116 - 'recOR' reduce using rule 116 - 'refl' reduce using rule 116 - 'refl_{' reduce using rule 116 - '|' reduce using rule 116 - '|->' reduce using rule 116 - '}' reduce using rule 116 - '→' reduce using rule 116 - L_VarIdent reduce using rule 116 - L_HoleIdent reduce using rule 116 - %eof reduce using rule 116 - + Term1 -> Term2 '=_{' . Term '}' Term2 (rule 110) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 205 State 158 - Term7 -> 'refl_{' Term . '}' (rule 89) - Term7 -> 'refl_{' Term . ':' Term '}' (rule 90) + Term7 -> '(' Term . ',' Term ')' (rule 91) + Term7 -> '(' Term . ')' (rule 98) - ':' shift, and enter state 191 - '}' shift, and enter state 192 + ')' shift, and enter state 203 + ',' shift, and enter state 204 State 159 - Term7 -> 'recOR' '(' . ListRestriction ')' (rule 84) - Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 85) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Restriction goto state 75 - ListRestrictiongoto state 189 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 190 + Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 116) + + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 202 State 160 - Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 188 + Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 115) + + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 201 State 161 - Term6 -> 'first' Term7 . (rule 115) + ParamDecl -> '{' Pattern . ':' Term '}' (rule 70) + ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 73) - '(' reduce using rule 115 - ')' reduce using rule 115 - '*' reduce using rule 115 - '*_1' reduce using rule 115 - ',' reduce using rule 115 - '->' reduce using rule 115 - '/\\' reduce using rule 115 - '0_2' reduce using rule 115 - '1' reduce using rule 115 - '1_2' reduce using rule 115 - '2' reduce using rule 115 - ':' reduce using rule 115 - ':=' reduce using rule 115 - ';' reduce using rule 115 - '<' reduce using rule 115 - '<=' reduce using rule 115 - '=' reduce using rule 115 - '===' reduce using rule 115 - '=_{' reduce using rule 115 - '>' reduce using rule 115 - 'BOT' reduce using rule 115 - 'CUBE' reduce using rule 115 - 'TOP' reduce using rule 115 - 'TOPE' reduce using rule 115 - 'U' reduce using rule 115 - '[' reduce using rule 115 - '\\/' reduce using rule 115 - ']' reduce using rule 115 - 'as' reduce using rule 115 - 'idJ' reduce using rule 115 - 'recBOT' reduce using rule 115 - 'recOR' reduce using rule 115 - 'refl' reduce using rule 115 - 'refl_{' reduce using rule 115 - '|' reduce using rule 115 - '|->' reduce using rule 115 - '}' reduce using rule 115 - '→' reduce using rule 115 - L_VarIdent reduce using rule 115 - L_HoleIdent reduce using rule 115 - %eof reduce using rule 115 + ':' shift, and enter state 200 State 162 - Term1 -> '\\' ListParam . '->' Term1 (rule 108) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 60) + ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 72) - '->' shift, and enter state 187 + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 199 State 163 - Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 105) - - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + Term6 -> 'second' Term7 . (rule 120) + + '(' reduce using rule 120 + ')' reduce using rule 120 + '*' reduce using rule 120 + '*_1' reduce using rule 120 + ',' reduce using rule 120 + '->' reduce using rule 120 + '/\\' reduce using rule 120 + '0_2' reduce using rule 120 + '1' reduce using rule 120 + '1_2' reduce using rule 120 + '2' reduce using rule 120 + ':' reduce using rule 120 + ':=' reduce using rule 120 + ';' reduce using rule 120 + '<' reduce using rule 120 + '<=' reduce using rule 120 + '=' reduce using rule 120 + '===' reduce using rule 120 + '=_{' reduce using rule 120 + '>' reduce using rule 120 + 'BOT' reduce using rule 120 + 'CUBE' reduce using rule 120 + 'TOP' reduce using rule 120 + 'TOPE' reduce using rule 120 + 'U' reduce using rule 120 + '[' reduce using rule 120 + '\\/' reduce using rule 120 + ']' reduce using rule 120 + 'as' reduce using rule 120 + 'idJ' reduce using rule 120 + 'recBOT' reduce using rule 120 + 'recOR' reduce using rule 120 + 'refl' reduce using rule 120 + 'refl_{' reduce using rule 120 + '|' reduce using rule 120 + '|->' reduce using rule 120 + '}' reduce using rule 120 + '→' reduce using rule 120 + L_VarIdentTokenreduce using rule 120 + L_HoleIdentTokenreduce using rule 120 + %eof reduce using rule 120 - VarIdent goto state 81 - Pattern goto state 186 State 164 - Term7 -> '<' ParamDecl . '->' Term '>' (rule 86) + Term7 -> 'refl_{' Term . '}' (rule 93) + Term7 -> 'refl_{' Term . ':' Term '}' (rule 94) - '->' shift, and enter state 185 + ':' shift, and enter state 197 + '}' shift, and enter state 198 State 165 - ParamDecl -> '(' VarIdent . ':' Term ')' (rule 67) - Term7 -> VarIdent . (rule 93) - - '(' reduce using rule 93 - ')' reduce using rule 93 - '*' reduce using rule 93 - '*_1' reduce using rule 93 - ',' reduce using rule 93 - '->' reduce using rule 93 - '/\\' reduce using rule 93 - '0_2' reduce using rule 93 - '1' reduce using rule 93 - '1_2' reduce using rule 93 - '2' reduce using rule 93 - ':' shift, and enter state 184 - '<' reduce using rule 93 - '<=' reduce using rule 93 - '=' reduce using rule 93 - '===' reduce using rule 93 - '=_{' reduce using rule 93 - 'BOT' reduce using rule 93 - 'CUBE' reduce using rule 93 - 'TOP' reduce using rule 93 - 'TOPE' reduce using rule 93 - 'U' reduce using rule 93 - '[' reduce using rule 93 - '\\/' reduce using rule 93 - 'as' reduce using rule 93 - 'idJ' reduce using rule 93 - 'recBOT' reduce using rule 93 - 'recOR' reduce using rule 93 - 'refl' reduce using rule 93 - 'refl_{' reduce using rule 93 - '→' reduce using rule 93 - L_VarIdent reduce using rule 93 - L_HoleIdent reduce using rule 93 - + Term7 -> 'recOR' '(' . ListRestriction ')' (rule 88) + Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 89) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Restriction goto state 79 + ListRestrictiongoto state 195 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 196 State 166 - ParamDecl -> '(' '_' . ':' Term ')' (rule 65) + Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 194 - ':' shift, and enter state 183 +State 167 + Term6 -> 'first' Term7 . (rule 119) -State 167 + '(' reduce using rule 119 + ')' reduce using rule 119 + '*' reduce using rule 119 + '*_1' reduce using rule 119 + ',' reduce using rule 119 + '->' reduce using rule 119 + '/\\' reduce using rule 119 + '0_2' reduce using rule 119 + '1' reduce using rule 119 + '1_2' reduce using rule 119 + '2' reduce using rule 119 + ':' reduce using rule 119 + ':=' reduce using rule 119 + ';' reduce using rule 119 + '<' reduce using rule 119 + '<=' reduce using rule 119 + '=' reduce using rule 119 + '===' reduce using rule 119 + '=_{' reduce using rule 119 + '>' reduce using rule 119 + 'BOT' reduce using rule 119 + 'CUBE' reduce using rule 119 + 'TOP' reduce using rule 119 + 'TOPE' reduce using rule 119 + 'U' reduce using rule 119 + '[' reduce using rule 119 + '\\/' reduce using rule 119 + ']' reduce using rule 119 + 'as' reduce using rule 119 + 'idJ' reduce using rule 119 + 'recBOT' reduce using rule 119 + 'recOR' reduce using rule 119 + 'refl' reduce using rule 119 + 'refl_{' reduce using rule 119 + '|' reduce using rule 119 + '|->' reduce using rule 119 + '}' reduce using rule 119 + '→' reduce using rule 119 + L_VarIdentTokenreduce using rule 119 + L_HoleIdentTokenreduce using rule 119 + %eof reduce using rule 119 - ListTerm -> Term ',' . ListTerm (rule 121) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 36 - ListTerm goto state 182 State 168 - Term -> Term2 'as' . Term1 (rule 118) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 181 - Term6 goto state 35 + Term1 -> '\\' ListParam . '->' Term1 (rule 112) + + '->' shift, and enter state 193 + State 169 - Term2 -> Term3 '\\/' . Term2 (rule 102) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 180 - Term6 goto state 70 + Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 109) + + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 192 State 170 - Term3 -> Term4 '/\\' . Term3 (rule 100) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 179 - Term6 goto state 70 + Term7 -> '<' ParamDecl . '->' Term '>' (rule 90) + + '->' shift, and enter state 191 + State 171 - Term4 -> Term5 '<=' . Term5 (rule 98) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 178 - Term6 goto state 70 + ParamDecl -> '(' VarIdent . ':' Term ')' (rule 71) + Term7 -> VarIdent . (rule 97) + + '(' reduce using rule 97 + ')' reduce using rule 97 + '*' reduce using rule 97 + '*_1' reduce using rule 97 + ',' reduce using rule 97 + '->' reduce using rule 97 + '/\\' reduce using rule 97 + '0_2' reduce using rule 97 + '1' reduce using rule 97 + '1_2' reduce using rule 97 + '2' reduce using rule 97 + ':' shift, and enter state 190 + '<' reduce using rule 97 + '<=' reduce using rule 97 + '=' reduce using rule 97 + '===' reduce using rule 97 + '=_{' reduce using rule 97 + 'BOT' reduce using rule 97 + 'CUBE' reduce using rule 97 + 'TOP' reduce using rule 97 + 'TOPE' reduce using rule 97 + 'U' reduce using rule 97 + '[' reduce using rule 97 + '\\/' reduce using rule 97 + 'as' reduce using rule 97 + 'idJ' reduce using rule 97 + 'recBOT' reduce using rule 97 + 'recOR' reduce using rule 97 + 'refl' reduce using rule 97 + 'refl_{' reduce using rule 97 + '→' reduce using rule 97 + L_VarIdentTokenreduce using rule 97 + L_HoleIdentTokenreduce using rule 97 + State 172 - Term4 -> Term5 '===' . Term5 (rule 97) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 177 - Term6 goto state 70 + ParamDecl -> '(' '_' . ':' Term ')' (rule 69) + + ':' shift, and enter state 189 + State 173 - Term1 -> ParamDecl '->' . Term1 (rule 104) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 176 - Term6 goto state 35 + ListTerm -> Term ',' . ListTerm (rule 125) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 40 + ListTerm goto state 188 State 174 - Term1 -> ParamDecl '→' . Term1 (rule 110) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 175 - Term6 goto state 35 + Term -> Term2 'as' . Term1 (rule 122) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 187 + Term6 goto state 39 State 175 - Term1 -> ParamDecl '→' Term1 . (rule 110) + Term2 -> Term3 '\\/' . Term2 (rule 106) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 186 + Term6 goto state 74 - ')' reduce using rule 110 - ',' reduce using rule 110 - ':' reduce using rule 110 - ':=' reduce using rule 110 - ';' reduce using rule 110 - '>' reduce using rule 110 - ']' reduce using rule 110 - '|' reduce using rule 110 - '|->' reduce using rule 110 - '}' reduce using rule 110 - %eof reduce using rule 110 +State 176 + Term3 -> Term4 '/\\' . Term3 (rule 104) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 185 + Term6 goto state 74 -State 176 +State 177 - Term1 -> ParamDecl '->' Term1 . (rule 104) + Term4 -> Term5 '<=' . Term5 (rule 102) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 184 + Term6 goto state 74 - ')' reduce using rule 104 - ',' reduce using rule 104 - ':' reduce using rule 104 - ':=' reduce using rule 104 - ';' reduce using rule 104 - '>' reduce using rule 104 - ']' reduce using rule 104 - '|' reduce using rule 104 - '|->' reduce using rule 104 - '}' reduce using rule 104 - %eof reduce using rule 104 +State 178 + Term4 -> Term5 '===' . Term5 (rule 101) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 183 + Term6 goto state 74 -State 177 +State 179 - Term5 -> Term5 . '*' Term6 (rule 95) - Term4 -> Term5 '===' Term5 . (rule 97) + Term1 -> ParamDecl '->' . Term1 (rule 108) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 182 + Term6 goto state 39 - ')' reduce using rule 97 - '*' shift, and enter state 149 - ',' reduce using rule 97 - '/\\' reduce using rule 97 - ':' reduce using rule 97 - ':=' reduce using rule 97 - ';' reduce using rule 97 - '=' reduce using rule 97 - '=_{' reduce using rule 97 - '>' reduce using rule 97 - '\\/' reduce using rule 97 - ']' reduce using rule 97 - 'as' reduce using rule 97 - '|' reduce using rule 97 - '|->' reduce using rule 97 - '}' reduce using rule 97 - %eof reduce using rule 97 +State 180 + Term1 -> ParamDecl '→' . Term1 (rule 114) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 181 + Term6 goto state 39 -State 178 +State 181 - Term5 -> Term5 . '*' Term6 (rule 95) - Term4 -> Term5 '<=' Term5 . (rule 98) + Term1 -> ParamDecl '→' Term1 . (rule 114) - ')' reduce using rule 98 - '*' shift, and enter state 149 - ',' reduce using rule 98 - '/\\' reduce using rule 98 - ':' reduce using rule 98 - ':=' reduce using rule 98 - ';' reduce using rule 98 - '=' reduce using rule 98 - '=_{' reduce using rule 98 - '>' reduce using rule 98 - '\\/' reduce using rule 98 - ']' reduce using rule 98 - 'as' reduce using rule 98 - '|' reduce using rule 98 - '|->' reduce using rule 98 - '}' reduce using rule 98 - %eof reduce using rule 98 + ')' reduce using rule 114 + ',' reduce using rule 114 + ':' reduce using rule 114 + ':=' reduce using rule 114 + ';' reduce using rule 114 + '>' reduce using rule 114 + ']' reduce using rule 114 + '|' reduce using rule 114 + '|->' reduce using rule 114 + '}' reduce using rule 114 + %eof reduce using rule 114 -State 179 +State 182 - Term3 -> Term4 '/\\' Term3 . (rule 100) + Term1 -> ParamDecl '->' Term1 . (rule 108) - ')' reduce using rule 100 - ',' reduce using rule 100 - ':' reduce using rule 100 - ':=' reduce using rule 100 - ';' reduce using rule 100 - '=' reduce using rule 100 - '=_{' reduce using rule 100 - '>' reduce using rule 100 - '\\/' reduce using rule 100 - ']' reduce using rule 100 - 'as' reduce using rule 100 - '|' reduce using rule 100 - '|->' reduce using rule 100 - '}' reduce using rule 100 - %eof reduce using rule 100 + ')' reduce using rule 108 + ',' reduce using rule 108 + ':' reduce using rule 108 + ':=' reduce using rule 108 + ';' reduce using rule 108 + '>' reduce using rule 108 + ']' reduce using rule 108 + '|' reduce using rule 108 + '|->' reduce using rule 108 + '}' reduce using rule 108 + %eof reduce using rule 108 -State 180 +State 183 + + Term5 -> Term5 . '*' Term6 (rule 99) + Term4 -> Term5 '===' Term5 . (rule 101) + + ')' reduce using rule 101 + '*' shift, and enter state 155 + ',' reduce using rule 101 + '/\\' reduce using rule 101 + ':' reduce using rule 101 + ':=' reduce using rule 101 + ';' reduce using rule 101 + '=' reduce using rule 101 + '=_{' reduce using rule 101 + '>' reduce using rule 101 + '\\/' reduce using rule 101 + ']' reduce using rule 101 + 'as' reduce using rule 101 + '|' reduce using rule 101 + '|->' reduce using rule 101 + '}' reduce using rule 101 + %eof reduce using rule 101 - Term2 -> Term3 '\\/' Term2 . (rule 102) + +State 184 + + Term5 -> Term5 . '*' Term6 (rule 99) + Term4 -> Term5 '<=' Term5 . (rule 102) ')' reduce using rule 102 + '*' shift, and enter state 155 ',' reduce using rule 102 + '/\\' reduce using rule 102 ':' reduce using rule 102 ':=' reduce using rule 102 ';' reduce using rule 102 '=' reduce using rule 102 '=_{' reduce using rule 102 '>' reduce using rule 102 + '\\/' reduce using rule 102 ']' reduce using rule 102 'as' reduce using rule 102 - '|' reduce using rule 102 - '|->' reduce using rule 102 - '}' reduce using rule 102 - %eof reduce using rule 102 - - -State 181 - - Term -> Term2 'as' Term1 . (rule 118) - - ')' reduce using rule 118 - ',' reduce using rule 118 - ':' reduce using rule 118 - ':=' reduce using rule 118 - ';' reduce using rule 118 - '>' reduce using rule 118 - ']' reduce using rule 118 - '|' reduce using rule 118 - '|->' reduce using rule 118 - '}' reduce using rule 118 - %eof reduce using rule 118 - - -State 182 - - ListTerm -> Term ',' ListTerm . (rule 121) - - %eof reduce using rule 121 - - -State 183 + '|' reduce using rule 102 + '|->' reduce using rule 102 + '}' reduce using rule 102 + %eof reduce using rule 102 - ParamDecl -> '(' '_' ':' . Term ')' (rule 65) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 251 -State 184 +State 185 - ParamDecl -> '(' VarIdent ':' . Term ')' (rule 67) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 250 + Term3 -> Term4 '/\\' Term3 . (rule 104) -State 185 + ')' reduce using rule 104 + ',' reduce using rule 104 + ':' reduce using rule 104 + ':=' reduce using rule 104 + ';' reduce using rule 104 + '=' reduce using rule 104 + '=_{' reduce using rule 104 + '>' reduce using rule 104 + '\\/' reduce using rule 104 + ']' reduce using rule 104 + 'as' reduce using rule 104 + '|' reduce using rule 104 + '|->' reduce using rule 104 + '}' reduce using rule 104 + %eof reduce using rule 104 - Term7 -> '<' ParamDecl '->' . Term '>' (rule 86) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 249 State 186 - Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 105) + Term2 -> Term3 '\\/' Term2 . (rule 106) - ':' shift, and enter state 248 + ')' reduce using rule 106 + ',' reduce using rule 106 + ':' reduce using rule 106 + ':=' reduce using rule 106 + ';' reduce using rule 106 + '=' reduce using rule 106 + '=_{' reduce using rule 106 + '>' reduce using rule 106 + ']' reduce using rule 106 + 'as' reduce using rule 106 + '|' reduce using rule 106 + '|->' reduce using rule 106 + '}' reduce using rule 106 + %eof reduce using rule 106 State 187 - Term1 -> '\\' ListParam '->' . Term1 (rule 108) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 247 - Term6 goto state 35 + Term -> Term2 'as' Term1 . (rule 122) -State 188 + ')' reduce using rule 122 + ',' reduce using rule 122 + ':' reduce using rule 122 + ':=' reduce using rule 122 + ';' reduce using rule 122 + '>' reduce using rule 122 + ']' reduce using rule 122 + '|' reduce using rule 122 + '|->' reduce using rule 122 + '}' reduce using rule 122 + %eof reduce using rule 122 - Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) - ',' shift, and enter state 246 +State 188 + ListTerm -> Term ',' ListTerm . (rule 125) -State 189 + %eof reduce using rule 125 - Term7 -> 'recOR' '(' ListRestriction . ')' (rule 84) - ')' shift, and enter state 245 +State 189 + ParamDecl -> '(' '_' ':' . Term ')' (rule 69) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 257 State 190 - Restriction -> Term . '|->' Term (rule 70) - Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 85) - - ',' shift, and enter state 244 - '|->' shift, and enter state 147 - + ParamDecl -> '(' VarIdent ':' . Term ')' (rule 71) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 256 State 191 - Term7 -> 'refl_{' Term ':' . Term '}' (rule 90) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 243 + Term7 -> '<' ParamDecl '->' . Term '>' (rule 90) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 255 State 192 - Term7 -> 'refl_{' Term '}' . (rule 89) + Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 109) - '(' reduce using rule 89 - ')' reduce using rule 89 - '*' reduce using rule 89 - '*_1' reduce using rule 89 - ',' reduce using rule 89 - '->' reduce using rule 89 - '/\\' reduce using rule 89 - '0_2' reduce using rule 89 - '1' reduce using rule 89 - '1_2' reduce using rule 89 - '2' reduce using rule 89 - ':' reduce using rule 89 - ':=' reduce using rule 89 - ';' reduce using rule 89 - '<' reduce using rule 89 - '<=' reduce using rule 89 - '=' reduce using rule 89 - '===' reduce using rule 89 - '=_{' reduce using rule 89 - '>' reduce using rule 89 - 'BOT' reduce using rule 89 - 'CUBE' reduce using rule 89 - 'TOP' reduce using rule 89 - 'TOPE' reduce using rule 89 - 'U' reduce using rule 89 - '[' reduce using rule 89 - '\\/' reduce using rule 89 - ']' reduce using rule 89 - 'as' reduce using rule 89 - 'idJ' reduce using rule 89 - 'recBOT' reduce using rule 89 - 'recOR' reduce using rule 89 - 'refl' reduce using rule 89 - 'refl_{' reduce using rule 89 - '|' reduce using rule 89 - '|->' reduce using rule 89 - '}' reduce using rule 89 - '→' reduce using rule 89 - L_VarIdent reduce using rule 89 - L_HoleIdent reduce using rule 89 - %eof reduce using rule 89 + ':' shift, and enter state 254 State 193 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 56) - ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 68) + Term1 -> '\\' ListParam '->' . Term1 (rule 112) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 253 + Term6 goto state 39 - ',' shift, and enter state 206 - ':' shift, and enter state 242 +State 194 + Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) -State 194 + ',' shift, and enter state 252 - ParamDecl -> '{' Pattern ':' . Term '}' (rule 66) - ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 69) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 241 State 195 - Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 111) + Term7 -> 'recOR' '(' ListRestriction . ')' (rule 88) - ':' shift, and enter state 240 + ')' shift, and enter state 251 State 196 - Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 112) + Restriction -> Term . '|->' Term (rule 74) + Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 89) - ':' shift, and enter state 239 + ',' shift, and enter state 250 + '|->' shift, and enter state 153 State 197 - Term7 -> '(' Term ')' . (rule 94) + Term7 -> 'refl_{' Term ':' . Term '}' (rule 94) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 249 - '(' reduce using rule 94 - ')' reduce using rule 94 - '*' reduce using rule 94 - '*_1' reduce using rule 94 - ',' reduce using rule 94 - '->' reduce using rule 94 - '/\\' reduce using rule 94 - '0_2' reduce using rule 94 - '1' reduce using rule 94 - '1_2' reduce using rule 94 - '2' reduce using rule 94 - ':' reduce using rule 94 - ':=' reduce using rule 94 - ';' reduce using rule 94 - '<' reduce using rule 94 - '<=' reduce using rule 94 - '=' reduce using rule 94 - '===' reduce using rule 94 - '=_{' reduce using rule 94 - '>' reduce using rule 94 - 'BOT' reduce using rule 94 - 'CUBE' reduce using rule 94 - 'TOP' reduce using rule 94 - 'TOPE' reduce using rule 94 - 'U' reduce using rule 94 - '[' reduce using rule 94 - '\\/' reduce using rule 94 - ']' reduce using rule 94 - 'as' reduce using rule 94 - 'idJ' reduce using rule 94 - 'recBOT' reduce using rule 94 - 'recOR' reduce using rule 94 - 'refl' reduce using rule 94 - 'refl_{' reduce using rule 94 - '|' reduce using rule 94 - '|->' reduce using rule 94 - '}' reduce using rule 94 - '→' reduce using rule 94 - L_VarIdent reduce using rule 94 - L_HoleIdent reduce using rule 94 - %eof reduce using rule 94 +State 198 + Term7 -> 'refl_{' Term '}' . (rule 93) -State 198 + '(' reduce using rule 93 + ')' reduce using rule 93 + '*' reduce using rule 93 + '*_1' reduce using rule 93 + ',' reduce using rule 93 + '->' reduce using rule 93 + '/\\' reduce using rule 93 + '0_2' reduce using rule 93 + '1' reduce using rule 93 + '1_2' reduce using rule 93 + '2' reduce using rule 93 + ':' reduce using rule 93 + ':=' reduce using rule 93 + ';' reduce using rule 93 + '<' reduce using rule 93 + '<=' reduce using rule 93 + '=' reduce using rule 93 + '===' reduce using rule 93 + '=_{' reduce using rule 93 + '>' reduce using rule 93 + 'BOT' reduce using rule 93 + 'CUBE' reduce using rule 93 + 'TOP' reduce using rule 93 + 'TOPE' reduce using rule 93 + 'U' reduce using rule 93 + '[' reduce using rule 93 + '\\/' reduce using rule 93 + ']' reduce using rule 93 + 'as' reduce using rule 93 + 'idJ' reduce using rule 93 + 'recBOT' reduce using rule 93 + 'recOR' reduce using rule 93 + 'refl' reduce using rule 93 + 'refl_{' reduce using rule 93 + '|' reduce using rule 93 + '|->' reduce using rule 93 + '}' reduce using rule 93 + '→' reduce using rule 93 + L_VarIdentTokenreduce using rule 93 + L_HoleIdentTokenreduce using rule 93 + %eof reduce using rule 93 - Term7 -> '(' Term ',' . Term ')' (rule 87) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 238 State 199 - Term1 -> Term2 '=_{' Term . '}' Term2 (rule 106) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 60) + ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 72) - '}' shift, and enter state 237 + ',' shift, and enter state 212 + ':' shift, and enter state 248 State 200 - Term1 -> Term2 '=' Term2 . (rule 107) - - ')' reduce using rule 107 - ',' reduce using rule 107 - ':' reduce using rule 107 - ':=' reduce using rule 107 - ';' reduce using rule 107 - '>' reduce using rule 107 - ']' reduce using rule 107 - '|' reduce using rule 107 - '|->' reduce using rule 107 - '}' reduce using rule 107 - %eof reduce using rule 107 - + ParamDecl -> '{' Pattern ':' . Term '}' (rule 70) + ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 73) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 247 State 201 - Term5 -> Term5 '*' Term6 . (rule 95) - Term6 -> Term6 . '[' ListRestriction ']' (rule 113) - Term6 -> Term6 . Term7 (rule 114) + Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 115) - '(' shift, and enter state 66 - ')' reduce using rule 95 - '*' reduce using rule 95 - '*_1' shift, and enter state 39 - ',' reduce using rule 95 - '/\\' reduce using rule 95 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - ':' reduce using rule 95 - ':=' reduce using rule 95 - ';' reduce using rule 95 - '<' shift, and enter state 44 - '<=' reduce using rule 95 - '=' reduce using rule 95 - '===' reduce using rule 95 - '=_{' reduce using rule 95 - '>' reduce using rule 95 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '[' shift, and enter state 146 - '\\/' reduce using rule 95 - ']' reduce using rule 95 - 'as' reduce using rule 95 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - '|' reduce using rule 95 - '|->' reduce using rule 95 - '}' reduce using rule 95 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - %eof reduce using rule 95 + ':' shift, and enter state 246 - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 145 State 202 - ListRestriction -> Restriction ',' ListRestriction . (rule 72) + Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 116) - ')' reduce using rule 72 - ']' reduce using rule 72 - %eof reduce using rule 72 + ':' shift, and enter state 245 State 203 - Restriction -> Term '|->' Term . (rule 70) + Term7 -> '(' Term ')' . (rule 98) - ')' reduce using rule 70 - ',' reduce using rule 70 - ']' reduce using rule 70 - %eof reduce using rule 70 + '(' reduce using rule 98 + ')' reduce using rule 98 + '*' reduce using rule 98 + '*_1' reduce using rule 98 + ',' reduce using rule 98 + '->' reduce using rule 98 + '/\\' reduce using rule 98 + '0_2' reduce using rule 98 + '1' reduce using rule 98 + '1_2' reduce using rule 98 + '2' reduce using rule 98 + ':' reduce using rule 98 + ':=' reduce using rule 98 + ';' reduce using rule 98 + '<' reduce using rule 98 + '<=' reduce using rule 98 + '=' reduce using rule 98 + '===' reduce using rule 98 + '=_{' reduce using rule 98 + '>' reduce using rule 98 + 'BOT' reduce using rule 98 + 'CUBE' reduce using rule 98 + 'TOP' reduce using rule 98 + 'TOPE' reduce using rule 98 + 'U' reduce using rule 98 + '[' reduce using rule 98 + '\\/' reduce using rule 98 + ']' reduce using rule 98 + 'as' reduce using rule 98 + 'idJ' reduce using rule 98 + 'recBOT' reduce using rule 98 + 'recOR' reduce using rule 98 + 'refl' reduce using rule 98 + 'refl_{' reduce using rule 98 + '|' reduce using rule 98 + '|->' reduce using rule 98 + '}' reduce using rule 98 + '→' reduce using rule 98 + L_VarIdentTokenreduce using rule 98 + L_HoleIdentTokenreduce using rule 98 + %eof reduce using rule 98 State 204 - Term6 -> Term6 '[' ListRestriction . ']' (rule 113) + Term7 -> '(' Term ',' . Term ')' (rule 91) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 244 - ']' shift, and enter state 236 +State 205 + Term1 -> Term2 '=_{' Term . '}' Term2 (rule 110) -State 205 + '}' shift, and enter state 243 - Param -> '(' ListPattern ':' . Term ')' (rule 60) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 235 State 206 - Pattern -> '(' Pattern ',' . Pattern ')' (rule 56) + Term1 -> Term2 '=' Term2 . (rule 111) - '(' shift, and enter state 91 - '_' shift, and enter state 86 - L_VarIdent shift, and enter state 62 + ')' reduce using rule 111 + ',' reduce using rule 111 + ':' reduce using rule 111 + ':=' reduce using rule 111 + ';' reduce using rule 111 + '>' reduce using rule 111 + ']' reduce using rule 111 + '|' reduce using rule 111 + '|->' reduce using rule 111 + '}' reduce using rule 111 + %eof reduce using rule 111 - VarIdent goto state 81 - Pattern goto state 234 State 207 - Param -> '{' Pattern ':' . Term '|' Term '}' (rule 61) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 233 + Term5 -> Term5 '*' Term6 . (rule 99) + Term6 -> Term6 . '[' ListRestriction ']' (rule 117) + Term6 -> Term6 . Term7 (rule 118) + + '(' shift, and enter state 70 + ')' reduce using rule 99 + '*' reduce using rule 99 + '*_1' shift, and enter state 43 + ',' reduce using rule 99 + '/\\' reduce using rule 99 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + ':' reduce using rule 99 + ':=' reduce using rule 99 + ';' reduce using rule 99 + '<' shift, and enter state 48 + '<=' reduce using rule 99 + '=' reduce using rule 99 + '===' reduce using rule 99 + '=_{' reduce using rule 99 + '>' reduce using rule 99 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '[' shift, and enter state 152 + '\\/' reduce using rule 99 + ']' reduce using rule 99 + 'as' reduce using rule 99 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + '|' reduce using rule 99 + '|->' reduce using rule 99 + '}' reduce using rule 99 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + %eof reduce using rule 99 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 151 State 208 - DeclUsedVars -> 'uses' '(' ListVarIdent . ')' (rule 50) + ListRestriction -> Restriction ',' ListRestriction . (rule 76) - ')' shift, and enter state 232 + ')' reduce using rule 76 + ']' reduce using rule 76 + %eof reduce using rule 76 State 209 - ListCommand -> Command ';' ListCommand . (rule 49) + Restriction -> Term '|->' Term . (rule 74) - '#end' reduce using rule 49 - %eof reduce using rule 49 + ')' reduce using rule 74 + ',' reduce using rule 74 + ']' reduce using rule 74 + %eof reduce using rule 74 + + +State 210 + Term6 -> Term6 '[' ListRestriction . ']' (rule 117) -State 210 + ']' shift, and enter state 242 - Command -> '#assume' ListVarIdent ':' . Term (rule 40) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 231 State 211 - Command -> '#check' Term ':' . Term (rule 34) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 230 + Param -> '(' ListPattern ':' . Term ')' (rule 64) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 241 State 212 - Command -> '#def' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 46) - Command -> '#def' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 47) + Pattern -> '(' Pattern ',' . Pattern ')' (rule 60) - '(' shift, and enter state 85 - ':' shift, and enter state 229 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 + '(' shift, and enter state 95 + '_' shift, and enter state 90 + L_VarIdentTokenshift, and enter state 66 - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 83 - ListParam goto state 228 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 240 State 213 - Command -> '#define' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 44) - Command -> '#define' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 45) - - '(' shift, and enter state 85 - ':' shift, and enter state 227 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 - - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 83 - ListParam goto state 226 + Param -> '{' Pattern ':' . Term '|' Term '}' (rule 65) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 239 State 214 - Command -> '#postulate' VarIdent DeclUsedVars . ListParam ':' Term (rule 38) - Command -> '#postulate' VarIdent DeclUsedVars . ':' Term (rule 39) + DeclUsedVars -> 'uses' '(' ListVarIdent . ')' (rule 54) - '(' shift, and enter state 85 - ':' shift, and enter state 225 - '_' shift, and enter state 86 - '{' shift, and enter state 87 - L_VarIdent shift, and enter state 62 + ')' shift, and enter state 238 - VarIdent goto state 81 - Pattern goto state 82 - Param goto state 83 - ListParam goto state 224 State 215 - Command -> '#section' SectionName ';' . ListCommand '#end' SectionName (rule 43) - - '#assume' shift, and enter state 99 - '#check' shift, and enter state 100 - '#compute' shift, and enter state 101 - '#compute-nf' shift, and enter state 102 - '#compute-whnf'shift, and enter state 103 - '#def' shift, and enter state 104 - '#define' shift, and enter state 105 - '#end' reduce using rule 48 - '#postulate' shift, and enter state 106 - '#section' shift, and enter state 107 - '#set-option' shift, and enter state 108 - '#unset-option'shift, and enter state 109 - '#variable' shift, and enter state 110 - '#variables' shift, and enter state 111 - - Command goto state 97 - ListCommand goto state 223 + ListCommand -> Command ';' ListCommand . (rule 53) -State 216 + '#end' reduce using rule 53 + %eof reduce using rule 53 - Command -> '#set-option' String '=' . String (rule 32) - L_quoted shift, and enter state 25 +State 216 - String goto state 222 + Command -> '#assume' ListVarIdent ':' . Term (rule 44) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 237 State 217 - Command -> '#variable' VarIdent ':' . Term (rule 41) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 221 + Command -> '#check' Term ':' . Term (rule 38) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 236 State 218 - Command -> '#variables' ListVarIdent ':' . Term (rule 42) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 220 + Command -> '#def' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 50) + Command -> '#def' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 51) + + '(' shift, and enter state 89 + ':' shift, and enter state 235 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 87 + ListParam goto state 234 State 219 - LanguageDecl -> '#lang' Language ';' . (rule 30) - - '#assume' reduce using rule 30 - '#check' reduce using rule 30 - '#compute' reduce using rule 30 - '#compute-nf' reduce using rule 30 - '#compute-whnf'reduce using rule 30 - '#def' reduce using rule 30 - '#define' reduce using rule 30 - '#postulate' reduce using rule 30 - '#section' reduce using rule 30 - '#set-option' reduce using rule 30 - '#unset-option'reduce using rule 30 - '#variable' reduce using rule 30 - '#variables' reduce using rule 30 - %eof reduce using rule 30 + Command -> '#define' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 48) + Command -> '#define' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 49) + '(' shift, and enter state 89 + ':' shift, and enter state 233 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 87 + ListParam goto state 232 State 220 - Command -> '#variables' ListVarIdent ':' Term . (rule 42) + Command -> '#postulate' VarIdent DeclUsedVars . ListParam ':' Term (rule 42) + Command -> '#postulate' VarIdent DeclUsedVars . ':' Term (rule 43) - ';' reduce using rule 42 - %eof reduce using rule 42 + '(' shift, and enter state 89 + ':' shift, and enter state 231 + '_' shift, and enter state 90 + '{' shift, and enter state 91 + L_VarIdentTokenshift, and enter state 66 + VarIdentToken goto state 28 + VarIdent goto state 85 + Pattern goto state 86 + Param goto state 87 + ListParam goto state 230 State 221 - Command -> '#variable' VarIdent ':' Term . (rule 41) - - ';' reduce using rule 41 - %eof reduce using rule 41 - + Command -> '#section' SectionName ';' . ListCommand '#end' SectionName (rule 47) + + '#assume' shift, and enter state 103 + '#check' shift, and enter state 104 + '#compute' shift, and enter state 105 + '#compute-nf' shift, and enter state 106 + '#compute-whnf'shift, and enter state 107 + '#def' shift, and enter state 108 + '#define' shift, and enter state 109 + '#end' reduce using rule 52 + '#postulate' shift, and enter state 110 + '#section' shift, and enter state 111 + '#set-option' shift, and enter state 112 + '#unset-option'shift, and enter state 113 + '#variable' shift, and enter state 114 + '#variables' shift, and enter state 115 + + Command goto state 101 + ListCommand goto state 229 State 222 - Command -> '#set-option' String '=' String . (rule 32) + Command -> '#set-option' String '=' . String (rule 36) - ';' reduce using rule 32 - %eof reduce using rule 32 + L_quoted shift, and enter state 27 + String goto state 228 State 223 - Command -> '#section' SectionName ';' ListCommand . '#end' SectionName (rule 43) - - '#end' shift, and enter state 275 - + Command -> '#variable' VarIdent ':' . Term (rule 45) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 227 State 224 - Command -> '#postulate' VarIdent DeclUsedVars ListParam . ':' Term (rule 38) - - ':' shift, and enter state 274 - + Command -> '#variables' ListVarIdent ':' . Term (rule 46) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 226 State 225 - Command -> '#postulate' VarIdent DeclUsedVars ':' . Term (rule 39) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 273 + LanguageDecl -> '#lang' Language ';' . (rule 34) + + '#assume' reduce using rule 34 + '#check' reduce using rule 34 + '#compute' reduce using rule 34 + '#compute-nf' reduce using rule 34 + '#compute-whnf'reduce using rule 34 + '#def' reduce using rule 34 + '#define' reduce using rule 34 + '#postulate' reduce using rule 34 + '#section' reduce using rule 34 + '#set-option' reduce using rule 34 + '#unset-option'reduce using rule 34 + '#variable' reduce using rule 34 + '#variables' reduce using rule 34 + %eof reduce using rule 34 + State 226 - Command -> '#define' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 44) + Command -> '#variables' ListVarIdent ':' Term . (rule 46) - ':' shift, and enter state 272 + ';' reduce using rule 46 + %eof reduce using rule 46 State 227 - Command -> '#define' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 45) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 271 + Command -> '#variable' VarIdent ':' Term . (rule 45) + + ';' reduce using rule 45 + %eof reduce using rule 45 + State 228 - Command -> '#def' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 46) + Command -> '#set-option' String '=' String . (rule 36) - ':' shift, and enter state 270 + ';' reduce using rule 36 + %eof reduce using rule 36 State 229 - Command -> '#def' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 47) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 269 + Command -> '#section' SectionName ';' ListCommand . '#end' SectionName (rule 47) -State 230 + '#end' shift, and enter state 281 - Command -> '#check' Term ':' Term . (rule 34) - ';' reduce using rule 34 - %eof reduce using rule 34 +State 230 + Command -> '#postulate' VarIdent DeclUsedVars ListParam . ':' Term (rule 42) -State 231 + ':' shift, and enter state 280 - Command -> '#assume' ListVarIdent ':' Term . (rule 40) - ';' reduce using rule 40 - %eof reduce using rule 40 +State 231 + Command -> '#postulate' VarIdent DeclUsedVars ':' . Term (rule 43) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 279 State 232 - DeclUsedVars -> 'uses' '(' ListVarIdent ')' . (rule 50) + Command -> '#define' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 48) - '(' reduce using rule 50 - ':' reduce using rule 50 - '_' reduce using rule 50 - '{' reduce using rule 50 - L_VarIdent reduce using rule 50 - %eof reduce using rule 50 + ':' shift, and enter state 278 State 233 - Param -> '{' Pattern ':' Term . '|' Term '}' (rule 61) - - '|' shift, and enter state 268 - + Command -> '#define' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 49) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 277 State 234 - Pattern -> '(' Pattern ',' Pattern . ')' (rule 56) + Command -> '#def' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 50) - ')' shift, and enter state 267 + ':' shift, and enter state 276 State 235 - Param -> '(' ListPattern ':' Term . ')' (rule 60) - - ')' shift, and enter state 266 - + Command -> '#def' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 51) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 275 State 236 - Term6 -> Term6 '[' ListRestriction ']' . (rule 113) + Command -> '#check' Term ':' Term . (rule 38) - '(' reduce using rule 113 - ')' reduce using rule 113 - '*' reduce using rule 113 - '*_1' reduce using rule 113 - ',' reduce using rule 113 - '->' reduce using rule 113 - '/\\' reduce using rule 113 - '0_2' reduce using rule 113 - '1' reduce using rule 113 - '1_2' reduce using rule 113 - '2' reduce using rule 113 - ':' reduce using rule 113 - ':=' reduce using rule 113 - ';' reduce using rule 113 - '<' reduce using rule 113 - '<=' reduce using rule 113 - '=' reduce using rule 113 - '===' reduce using rule 113 - '=_{' reduce using rule 113 - '>' reduce using rule 113 - 'BOT' reduce using rule 113 - 'CUBE' reduce using rule 113 - 'TOP' reduce using rule 113 - 'TOPE' reduce using rule 113 - 'U' reduce using rule 113 - '[' reduce using rule 113 - '\\/' reduce using rule 113 - ']' reduce using rule 113 - 'as' reduce using rule 113 - 'idJ' reduce using rule 113 - 'recBOT' reduce using rule 113 - 'recOR' reduce using rule 113 - 'refl' reduce using rule 113 - 'refl_{' reduce using rule 113 - '|' reduce using rule 113 - '|->' reduce using rule 113 - '}' reduce using rule 113 - '→' reduce using rule 113 - L_VarIdent reduce using rule 113 - L_HoleIdent reduce using rule 113 - %eof reduce using rule 113 + ';' reduce using rule 38 + %eof reduce using rule 38 State 237 - Term1 -> Term2 '=_{' Term '}' . Term2 (rule 106) - - '(' shift, and enter state 66 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 265 - Term6 goto state 70 + Command -> '#assume' ListVarIdent ':' Term . (rule 44) + + ';' reduce using rule 44 + %eof reduce using rule 44 + State 238 - Term7 -> '(' Term ',' Term . ')' (rule 87) + DeclUsedVars -> 'uses' '(' ListVarIdent ')' . (rule 54) - ')' shift, and enter state 264 + '(' reduce using rule 54 + ':' reduce using rule 54 + '_' reduce using rule 54 + '{' reduce using rule 54 + L_VarIdentTokenreduce using rule 54 + %eof reduce using rule 54 State 239 - Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 112) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 263 + Param -> '{' Pattern ':' Term . '|' Term '}' (rule 65) + + '|' shift, and enter state 274 + State 240 - Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 111) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 262 + Pattern -> '(' Pattern ',' Pattern . ')' (rule 60) + + ')' shift, and enter state 273 + State 241 - ParamDecl -> '{' Pattern ':' Term . '}' (rule 66) - ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 69) + Param -> '(' ListPattern ':' Term . ')' (rule 64) - '|' shift, and enter state 260 - '}' shift, and enter state 261 + ')' shift, and enter state 272 State 242 - ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 68) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 259 + Term6 -> Term6 '[' ListRestriction ']' . (rule 117) -State 243 + '(' reduce using rule 117 + ')' reduce using rule 117 + '*' reduce using rule 117 + '*_1' reduce using rule 117 + ',' reduce using rule 117 + '->' reduce using rule 117 + '/\\' reduce using rule 117 + '0_2' reduce using rule 117 + '1' reduce using rule 117 + '1_2' reduce using rule 117 + '2' reduce using rule 117 + ':' reduce using rule 117 + ':=' reduce using rule 117 + ';' reduce using rule 117 + '<' reduce using rule 117 + '<=' reduce using rule 117 + '=' reduce using rule 117 + '===' reduce using rule 117 + '=_{' reduce using rule 117 + '>' reduce using rule 117 + 'BOT' reduce using rule 117 + 'CUBE' reduce using rule 117 + 'TOP' reduce using rule 117 + 'TOPE' reduce using rule 117 + 'U' reduce using rule 117 + '[' reduce using rule 117 + '\\/' reduce using rule 117 + ']' reduce using rule 117 + 'as' reduce using rule 117 + 'idJ' reduce using rule 117 + 'recBOT' reduce using rule 117 + 'recOR' reduce using rule 117 + 'refl' reduce using rule 117 + 'refl_{' reduce using rule 117 + '|' reduce using rule 117 + '|->' reduce using rule 117 + '}' reduce using rule 117 + '→' reduce using rule 117 + L_VarIdentTokenreduce using rule 117 + L_HoleIdentTokenreduce using rule 117 + %eof reduce using rule 117 - Term7 -> 'refl_{' Term ':' Term . '}' (rule 90) - '}' shift, and enter state 258 +State 243 + Term1 -> Term2 '=_{' Term '}' . Term2 (rule 110) + + '(' shift, and enter state 70 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 271 + Term6 goto state 74 State 244 - Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 85) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 257 + Term7 -> '(' Term ',' Term . ')' (rule 91) -State 245 + ')' shift, and enter state 270 - Term7 -> 'recOR' '(' ListRestriction ')' . (rule 84) - '(' reduce using rule 84 - ')' reduce using rule 84 - '*' reduce using rule 84 - '*_1' reduce using rule 84 - ',' reduce using rule 84 - '->' reduce using rule 84 - '/\\' reduce using rule 84 - '0_2' reduce using rule 84 - '1' reduce using rule 84 - '1_2' reduce using rule 84 - '2' reduce using rule 84 - ':' reduce using rule 84 - ':=' reduce using rule 84 - ';' reduce using rule 84 - '<' reduce using rule 84 - '<=' reduce using rule 84 - '=' reduce using rule 84 - '===' reduce using rule 84 - '=_{' reduce using rule 84 - '>' reduce using rule 84 - 'BOT' reduce using rule 84 - 'CUBE' reduce using rule 84 - 'TOP' reduce using rule 84 - 'TOPE' reduce using rule 84 - 'U' reduce using rule 84 - '[' reduce using rule 84 - '\\/' reduce using rule 84 - ']' reduce using rule 84 - 'as' reduce using rule 84 - 'idJ' reduce using rule 84 - 'recBOT' reduce using rule 84 - 'recOR' reduce using rule 84 - 'refl' reduce using rule 84 - 'refl_{' reduce using rule 84 - '|' reduce using rule 84 - '|->' reduce using rule 84 - '}' reduce using rule 84 - '→' reduce using rule 84 - L_VarIdent reduce using rule 84 - L_HoleIdent reduce using rule 84 - %eof reduce using rule 84 +State 245 + Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 116) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 269 State 246 - Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 256 + Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 115) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 268 State 247 - Term1 -> '\\' ListParam '->' Term1 . (rule 108) + ParamDecl -> '{' Pattern ':' Term . '}' (rule 70) + ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 73) - ')' reduce using rule 108 - ',' reduce using rule 108 - ':' reduce using rule 108 - ':=' reduce using rule 108 - ';' reduce using rule 108 - '>' reduce using rule 108 - ']' reduce using rule 108 - '|' reduce using rule 108 - '|->' reduce using rule 108 - '}' reduce using rule 108 - %eof reduce using rule 108 + '|' shift, and enter state 266 + '}' shift, and enter state 267 State 248 - Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 105) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 255 + ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 72) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 265 State 249 - Term7 -> '<' ParamDecl '->' Term . '>' (rule 86) + Term7 -> 'refl_{' Term ':' Term . '}' (rule 94) - '>' shift, and enter state 254 + '}' shift, and enter state 264 State 250 - ParamDecl -> '(' VarIdent ':' Term . ')' (rule 67) - - ')' shift, and enter state 253 - + Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 89) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 263 State 251 - ParamDecl -> '(' '_' ':' Term . ')' (rule 65) - - ')' shift, and enter state 252 - - -State 252 - - ParamDecl -> '(' '_' ':' Term ')' . (rule 65) - - '->' reduce using rule 65 - '→' reduce using rule 65 - %eof reduce using rule 65 - - -State 253 - - ParamDecl -> '(' VarIdent ':' Term ')' . (rule 67) - - '->' reduce using rule 67 - '→' reduce using rule 67 - %eof reduce using rule 67 - - -State 254 - - Term7 -> '<' ParamDecl '->' Term '>' . (rule 86) + Term7 -> 'recOR' '(' ListRestriction ')' . (rule 88) + + '(' reduce using rule 88 + ')' reduce using rule 88 + '*' reduce using rule 88 + '*_1' reduce using rule 88 + ',' reduce using rule 88 + '->' reduce using rule 88 + '/\\' reduce using rule 88 + '0_2' reduce using rule 88 + '1' reduce using rule 88 + '1_2' reduce using rule 88 + '2' reduce using rule 88 + ':' reduce using rule 88 + ':=' reduce using rule 88 + ';' reduce using rule 88 + '<' reduce using rule 88 + '<=' reduce using rule 88 + '=' reduce using rule 88 + '===' reduce using rule 88 + '=_{' reduce using rule 88 + '>' reduce using rule 88 + 'BOT' reduce using rule 88 + 'CUBE' reduce using rule 88 + 'TOP' reduce using rule 88 + 'TOPE' reduce using rule 88 + 'U' reduce using rule 88 + '[' reduce using rule 88 + '\\/' reduce using rule 88 + ']' reduce using rule 88 + 'as' reduce using rule 88 + 'idJ' reduce using rule 88 + 'recBOT' reduce using rule 88 + 'recOR' reduce using rule 88 + 'refl' reduce using rule 88 + 'refl_{' reduce using rule 88 + '|' reduce using rule 88 + '|->' reduce using rule 88 + '}' reduce using rule 88 + '→' reduce using rule 88 + L_VarIdentTokenreduce using rule 88 + L_HoleIdentTokenreduce using rule 88 + %eof reduce using rule 88 + + +State 252 + + Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 262 + +State 253 + + Term1 -> '\\' ListParam '->' Term1 . (rule 112) + + ')' reduce using rule 112 + ',' reduce using rule 112 + ':' reduce using rule 112 + ':=' reduce using rule 112 + ';' reduce using rule 112 + '>' reduce using rule 112 + ']' reduce using rule 112 + '|' reduce using rule 112 + '|->' reduce using rule 112 + '}' reduce using rule 112 + %eof reduce using rule 112 - '(' reduce using rule 86 - ')' reduce using rule 86 - '*' reduce using rule 86 - '*_1' reduce using rule 86 - ',' reduce using rule 86 - '->' reduce using rule 86 - '/\\' reduce using rule 86 - '0_2' reduce using rule 86 - '1' reduce using rule 86 - '1_2' reduce using rule 86 - '2' reduce using rule 86 - ':' reduce using rule 86 - ':=' reduce using rule 86 - ';' reduce using rule 86 - '<' reduce using rule 86 - '<=' reduce using rule 86 - '=' reduce using rule 86 - '===' reduce using rule 86 - '=_{' reduce using rule 86 - '>' reduce using rule 86 - 'BOT' reduce using rule 86 - 'CUBE' reduce using rule 86 - 'TOP' reduce using rule 86 - 'TOPE' reduce using rule 86 - 'U' reduce using rule 86 - '[' reduce using rule 86 - '\\/' reduce using rule 86 - ']' reduce using rule 86 - 'as' reduce using rule 86 - 'idJ' reduce using rule 86 - 'recBOT' reduce using rule 86 - 'recOR' reduce using rule 86 - 'refl' reduce using rule 86 - 'refl_{' reduce using rule 86 - '|' reduce using rule 86 - '|->' reduce using rule 86 - '}' reduce using rule 86 - '→' reduce using rule 86 - L_VarIdent reduce using rule 86 - L_HoleIdent reduce using rule 86 - %eof reduce using rule 86 +State 254 + + Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 109) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 261 State 255 - Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 105) + Term7 -> '<' ParamDecl '->' Term . '>' (rule 90) - ')' shift, and enter state 289 + '>' shift, and enter state 260 State 256 - Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 91) + ParamDecl -> '(' VarIdent ':' Term . ')' (rule 71) - ',' shift, and enter state 288 + ')' shift, and enter state 259 State 257 - Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 85) + ParamDecl -> '(' '_' ':' Term . ')' (rule 69) - ',' shift, and enter state 287 + ')' shift, and enter state 258 State 258 - Term7 -> 'refl_{' Term ':' Term '}' . (rule 90) + ParamDecl -> '(' '_' ':' Term ')' . (rule 69) + + '->' reduce using rule 69 + '→' reduce using rule 69 + %eof reduce using rule 69 + + +State 259 + + ParamDecl -> '(' VarIdent ':' Term ')' . (rule 71) + + '->' reduce using rule 71 + '→' reduce using rule 71 + %eof reduce using rule 71 + + +State 260 + + Term7 -> '<' ParamDecl '->' Term '>' . (rule 90) '(' reduce using rule 90 ')' reduce using rule 90 @@ -5902,1313 +6134,1420 @@ State 258 '|->' reduce using rule 90 '}' reduce using rule 90 '→' reduce using rule 90 - L_VarIdent reduce using rule 90 - L_HoleIdent reduce using rule 90 + L_VarIdentTokenreduce using rule 90 + L_HoleIdentTokenreduce using rule 90 %eof reduce using rule 90 -State 259 - - ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 68) - - ')' shift, and enter state 286 - - -State 260 - - ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 69) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 285 - State 261 - ParamDecl -> '{' Pattern ':' Term '}' . (rule 66) + Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 109) - '->' reduce using rule 66 - '→' reduce using rule 66 - %eof reduce using rule 66 + ')' shift, and enter state 295 State 262 - Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 111) + Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 95) - ')' shift, and enter state 284 + ',' shift, and enter state 294 State 263 - Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 112) + Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 89) - ')' shift, and enter state 283 + ',' shift, and enter state 293 State 264 - Term7 -> '(' Term ',' Term ')' . (rule 87) + Term7 -> 'refl_{' Term ':' Term '}' . (rule 94) - '(' reduce using rule 87 - ')' reduce using rule 87 - '*' reduce using rule 87 - '*_1' reduce using rule 87 - ',' reduce using rule 87 - '->' reduce using rule 87 - '/\\' reduce using rule 87 - '0_2' reduce using rule 87 - '1' reduce using rule 87 - '1_2' reduce using rule 87 - '2' reduce using rule 87 - ':' reduce using rule 87 - ':=' reduce using rule 87 - ';' reduce using rule 87 - '<' reduce using rule 87 - '<=' reduce using rule 87 - '=' reduce using rule 87 - '===' reduce using rule 87 - '=_{' reduce using rule 87 - '>' reduce using rule 87 - 'BOT' reduce using rule 87 - 'CUBE' reduce using rule 87 - 'TOP' reduce using rule 87 - 'TOPE' reduce using rule 87 - 'U' reduce using rule 87 - '[' reduce using rule 87 - '\\/' reduce using rule 87 - ']' reduce using rule 87 - 'as' reduce using rule 87 - 'idJ' reduce using rule 87 - 'recBOT' reduce using rule 87 - 'recOR' reduce using rule 87 - 'refl' reduce using rule 87 - 'refl_{' reduce using rule 87 - '|' reduce using rule 87 - '|->' reduce using rule 87 - '}' reduce using rule 87 - '→' reduce using rule 87 - L_VarIdent reduce using rule 87 - L_HoleIdent reduce using rule 87 - %eof reduce using rule 87 + '(' reduce using rule 94 + ')' reduce using rule 94 + '*' reduce using rule 94 + '*_1' reduce using rule 94 + ',' reduce using rule 94 + '->' reduce using rule 94 + '/\\' reduce using rule 94 + '0_2' reduce using rule 94 + '1' reduce using rule 94 + '1_2' reduce using rule 94 + '2' reduce using rule 94 + ':' reduce using rule 94 + ':=' reduce using rule 94 + ';' reduce using rule 94 + '<' reduce using rule 94 + '<=' reduce using rule 94 + '=' reduce using rule 94 + '===' reduce using rule 94 + '=_{' reduce using rule 94 + '>' reduce using rule 94 + 'BOT' reduce using rule 94 + 'CUBE' reduce using rule 94 + 'TOP' reduce using rule 94 + 'TOPE' reduce using rule 94 + 'U' reduce using rule 94 + '[' reduce using rule 94 + '\\/' reduce using rule 94 + ']' reduce using rule 94 + 'as' reduce using rule 94 + 'idJ' reduce using rule 94 + 'recBOT' reduce using rule 94 + 'recOR' reduce using rule 94 + 'refl' reduce using rule 94 + 'refl_{' reduce using rule 94 + '|' reduce using rule 94 + '|->' reduce using rule 94 + '}' reduce using rule 94 + '→' reduce using rule 94 + L_VarIdentTokenreduce using rule 94 + L_HoleIdentTokenreduce using rule 94 + %eof reduce using rule 94 State 265 - Term1 -> Term2 '=_{' Term '}' Term2 . (rule 106) + ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 72) - ')' reduce using rule 106 - ',' reduce using rule 106 - ':' reduce using rule 106 - ':=' reduce using rule 106 - ';' reduce using rule 106 - '>' reduce using rule 106 - ']' reduce using rule 106 - '|' reduce using rule 106 - '|->' reduce using rule 106 - '}' reduce using rule 106 - %eof reduce using rule 106 + ')' shift, and enter state 292 State 266 - Param -> '(' ListPattern ':' Term ')' . (rule 60) - - '(' reduce using rule 60 - '->' reduce using rule 60 - ':' reduce using rule 60 - '_' reduce using rule 60 - '{' reduce using rule 60 - L_VarIdent reduce using rule 60 - %eof reduce using rule 60 - + ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 73) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 291 State 267 - Pattern -> '(' Pattern ',' Pattern ')' . (rule 56) + ParamDecl -> '{' Pattern ':' Term '}' . (rule 70) - '(' reduce using rule 56 - ')' reduce using rule 56 - ',' reduce using rule 56 - '->' reduce using rule 56 - ':' reduce using rule 56 - '_' reduce using rule 56 - '{' reduce using rule 56 - L_VarIdent reduce using rule 56 - %eof reduce using rule 56 + '->' reduce using rule 70 + '→' reduce using rule 70 + %eof reduce using rule 70 State 268 - Param -> '{' Pattern ':' Term '|' . Term '}' (rule 61) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 282 + Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 115) + + ')' shift, and enter state 290 + State 269 - Command -> '#def' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 47) + Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 116) - ':=' shift, and enter state 281 + ')' shift, and enter state 289 State 270 - Command -> '#def' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 46) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 280 + Term7 -> '(' Term ',' Term ')' . (rule 91) + + '(' reduce using rule 91 + ')' reduce using rule 91 + '*' reduce using rule 91 + '*_1' reduce using rule 91 + ',' reduce using rule 91 + '->' reduce using rule 91 + '/\\' reduce using rule 91 + '0_2' reduce using rule 91 + '1' reduce using rule 91 + '1_2' reduce using rule 91 + '2' reduce using rule 91 + ':' reduce using rule 91 + ':=' reduce using rule 91 + ';' reduce using rule 91 + '<' reduce using rule 91 + '<=' reduce using rule 91 + '=' reduce using rule 91 + '===' reduce using rule 91 + '=_{' reduce using rule 91 + '>' reduce using rule 91 + 'BOT' reduce using rule 91 + 'CUBE' reduce using rule 91 + 'TOP' reduce using rule 91 + 'TOPE' reduce using rule 91 + 'U' reduce using rule 91 + '[' reduce using rule 91 + '\\/' reduce using rule 91 + ']' reduce using rule 91 + 'as' reduce using rule 91 + 'idJ' reduce using rule 91 + 'recBOT' reduce using rule 91 + 'recOR' reduce using rule 91 + 'refl' reduce using rule 91 + 'refl_{' reduce using rule 91 + '|' reduce using rule 91 + '|->' reduce using rule 91 + '}' reduce using rule 91 + '→' reduce using rule 91 + L_VarIdentTokenreduce using rule 91 + L_HoleIdentTokenreduce using rule 91 + %eof reduce using rule 91 + State 271 - Command -> '#define' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 45) + Term1 -> Term2 '=_{' Term '}' Term2 . (rule 110) - ':=' shift, and enter state 279 + ')' reduce using rule 110 + ',' reduce using rule 110 + ':' reduce using rule 110 + ':=' reduce using rule 110 + ';' reduce using rule 110 + '>' reduce using rule 110 + ']' reduce using rule 110 + '|' reduce using rule 110 + '|->' reduce using rule 110 + '}' reduce using rule 110 + %eof reduce using rule 110 State 272 - Command -> '#define' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 44) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 278 + Param -> '(' ListPattern ':' Term ')' . (rule 64) + + '(' reduce using rule 64 + '->' reduce using rule 64 + ':' reduce using rule 64 + '_' reduce using rule 64 + '{' reduce using rule 64 + L_VarIdentTokenreduce using rule 64 + %eof reduce using rule 64 + State 273 - Command -> '#postulate' VarIdent DeclUsedVars ':' Term . (rule 39) + Pattern -> '(' Pattern ',' Pattern ')' . (rule 60) - ';' reduce using rule 39 - %eof reduce using rule 39 + '(' reduce using rule 60 + ')' reduce using rule 60 + ',' reduce using rule 60 + '->' reduce using rule 60 + ':' reduce using rule 60 + '_' reduce using rule 60 + '{' reduce using rule 60 + L_VarIdentTokenreduce using rule 60 + %eof reduce using rule 60 State 274 - Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' . Term (rule 38) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 277 + Param -> '{' Pattern ':' Term '|' . Term '}' (rule 65) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 288 State 275 - Command -> '#section' SectionName ';' ListCommand '#end' . SectionName (rule 43) + Command -> '#def' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 51) - ';' reduce using rule 52 - L_VarIdent shift, and enter state 62 - %eof reduce using rule 52 + ':=' shift, and enter state 287 - VarIdent goto state 93 - SectionName goto state 276 State 276 - Command -> '#section' SectionName ';' ListCommand '#end' SectionName . (rule 43) - - ';' reduce using rule 43 - %eof reduce using rule 43 - + Command -> '#def' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 50) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 286 State 277 - Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term . (rule 38) + Command -> '#define' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 49) - ';' reduce using rule 38 - %eof reduce using rule 38 + ':=' shift, and enter state 285 State 278 - Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 44) + Command -> '#define' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 48) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 284 - ':=' shift, and enter state 301 +State 279 + Command -> '#postulate' VarIdent DeclUsedVars ':' Term . (rule 43) -State 279 + ';' reduce using rule 43 + %eof reduce using rule 43 - Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 45) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 300 State 280 - Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 46) + Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' . Term (rule 42) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 283 - ':=' shift, and enter state 299 +State 281 + Command -> '#section' SectionName ';' ListCommand '#end' . SectionName (rule 47) -State 281 + ';' reduce using rule 56 + L_VarIdentTokenshift, and enter state 66 + %eof reduce using rule 56 - Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 47) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 298 + VarIdentToken goto state 28 + VarIdent goto state 97 + SectionName goto state 282 State 282 - Param -> '{' Pattern ':' Term '|' Term . '}' (rule 61) + Command -> '#section' SectionName ';' ListCommand '#end' SectionName . (rule 47) - '}' shift, and enter state 297 + ';' reduce using rule 47 + %eof reduce using rule 47 State 283 - Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 112) + Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term . (rule 42) - ',' shift, and enter state 296 + ';' reduce using rule 42 + %eof reduce using rule 42 State 284 - Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 111) + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 48) - ',' shift, and enter state 295 + ':=' shift, and enter state 307 State 285 - ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 69) - - '}' shift, and enter state 294 - + Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 49) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 306 State 286 - ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 68) + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 50) - '|' shift, and enter state 293 + ':=' shift, and enter state 305 State 287 - Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 85) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 292 + Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 51) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 304 State 288 - Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 91) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 291 + Param -> '{' Pattern ':' Term '|' Term . '}' (rule 65) + + '}' shift, and enter state 303 + State 289 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 105) + Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 116) - ',' shift, and enter state 290 + ',' shift, and enter state 302 State 290 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 105) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 309 - Term6 goto state 35 + Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 115) + + ',' shift, and enter state 301 + State 291 - Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 91) + ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 73) - ',' shift, and enter state 308 + '}' shift, and enter state 300 State 292 - Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 85) + ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 72) - ',' shift, and enter state 307 + '|' shift, and enter state 299 State 293 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 68) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 306 + Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 89) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 298 State 294 - ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 69) + Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 95) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 297 - '->' reduce using rule 69 - '→' reduce using rule 69 - %eof reduce using rule 69 +State 295 + Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 109) -State 295 + ',' shift, and enter state 296 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 111) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 305 - Term6 goto state 35 State 296 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 112) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 67 - Term1 goto state 304 - Term6 goto state 35 + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 109) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 315 + Term6 goto state 39 State 297 - Param -> '{' Pattern ':' Term '|' Term '}' . (rule 61) + Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 95) - '(' reduce using rule 61 - '->' reduce using rule 61 - ':' reduce using rule 61 - '_' reduce using rule 61 - '{' reduce using rule 61 - L_VarIdent reduce using rule 61 - %eof reduce using rule 61 + ',' shift, and enter state 314 State 298 - Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 47) + Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 89) - ';' reduce using rule 47 - %eof reduce using rule 47 + ',' shift, and enter state 313 State 299 - Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 46) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 303 + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 72) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 312 State 300 - Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 45) + ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 73) - ';' reduce using rule 45 - %eof reduce using rule 45 + '->' reduce using rule 73 + '→' reduce using rule 73 + %eof reduce using rule 73 State 301 - Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 44) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 302 + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 115) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 311 + Term6 goto state 39 State 302 - Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 44) - - ';' reduce using rule 44 - %eof reduce using rule 44 - + Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 116) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 71 + Term1 goto state 310 + Term6 goto state 39 State 303 - Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 46) + Param -> '{' Pattern ':' Term '|' Term '}' . (rule 65) - ';' reduce using rule 46 - %eof reduce using rule 46 + '(' reduce using rule 65 + '->' reduce using rule 65 + ':' reduce using rule 65 + '_' reduce using rule 65 + '{' reduce using rule 65 + L_VarIdentTokenreduce using rule 65 + %eof reduce using rule 65 State 304 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 112) + Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 51) - ')' reduce using rule 112 - ',' reduce using rule 112 - ':' reduce using rule 112 - ':=' reduce using rule 112 - ';' reduce using rule 112 - '>' reduce using rule 112 - ']' reduce using rule 112 - '|' reduce using rule 112 - '|->' reduce using rule 112 - '}' reduce using rule 112 - %eof reduce using rule 112 + ';' reduce using rule 51 + %eof reduce using rule 51 State 305 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 111) - - ')' reduce using rule 111 - ',' reduce using rule 111 - ':' reduce using rule 111 - ':=' reduce using rule 111 - ';' reduce using rule 111 - '>' reduce using rule 111 - ']' reduce using rule 111 - '|' reduce using rule 111 - '|->' reduce using rule 111 - '}' reduce using rule 111 - %eof reduce using rule 111 - + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 50) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 309 State 306 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 68) + Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 49) - '}' shift, and enter state 312 + ';' reduce using rule 49 + %eof reduce using rule 49 State 307 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 85) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 311 + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 48) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 308 State 308 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 91) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 310 + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 48) + + ';' reduce using rule 48 + %eof reduce using rule 48 + State 309 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 105) + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 50) - ')' reduce using rule 105 - ',' reduce using rule 105 - ':' reduce using rule 105 - ':=' reduce using rule 105 - ';' reduce using rule 105 - '>' reduce using rule 105 - ']' reduce using rule 105 - '|' reduce using rule 105 - '|->' reduce using rule 105 - '}' reduce using rule 105 - %eof reduce using rule 105 + ';' reduce using rule 50 + %eof reduce using rule 50 State 310 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 91) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 116) - ',' shift, and enter state 314 + ')' reduce using rule 116 + ',' reduce using rule 116 + ':' reduce using rule 116 + ':=' reduce using rule 116 + ';' reduce using rule 116 + '>' reduce using rule 116 + ']' reduce using rule 116 + '|' reduce using rule 116 + '|->' reduce using rule 116 + '}' reduce using rule 116 + %eof reduce using rule 116 State 311 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 85) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 115) - ')' shift, and enter state 313 + ')' reduce using rule 115 + ',' reduce using rule 115 + ':' reduce using rule 115 + ':=' reduce using rule 115 + ';' reduce using rule 115 + '>' reduce using rule 115 + ']' reduce using rule 115 + '|' reduce using rule 115 + '|->' reduce using rule 115 + '}' reduce using rule 115 + %eof reduce using rule 115 State 312 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 68) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 72) - '->' reduce using rule 68 - '→' reduce using rule 68 - %eof reduce using rule 68 + '}' shift, and enter state 318 State 313 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 85) - - '(' reduce using rule 85 - ')' reduce using rule 85 - '*' reduce using rule 85 - '*_1' reduce using rule 85 - ',' reduce using rule 85 - '->' reduce using rule 85 - '/\\' reduce using rule 85 - '0_2' reduce using rule 85 - '1' reduce using rule 85 - '1_2' reduce using rule 85 - '2' reduce using rule 85 - ':' reduce using rule 85 - ':=' reduce using rule 85 - ';' reduce using rule 85 - '<' reduce using rule 85 - '<=' reduce using rule 85 - '=' reduce using rule 85 - '===' reduce using rule 85 - '=_{' reduce using rule 85 - '>' reduce using rule 85 - 'BOT' reduce using rule 85 - 'CUBE' reduce using rule 85 - 'TOP' reduce using rule 85 - 'TOPE' reduce using rule 85 - 'U' reduce using rule 85 - '[' reduce using rule 85 - '\\/' reduce using rule 85 - ']' reduce using rule 85 - 'as' reduce using rule 85 - 'idJ' reduce using rule 85 - 'recBOT' reduce using rule 85 - 'recOR' reduce using rule 85 - 'refl' reduce using rule 85 - 'refl_{' reduce using rule 85 - '|' reduce using rule 85 - '|->' reduce using rule 85 - '}' reduce using rule 85 - '→' reduce using rule 85 - L_VarIdent reduce using rule 85 - L_HoleIdent reduce using rule 85 - %eof reduce using rule 85 - + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 89) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 317 State 314 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 91) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 315 + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 95) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 316 State 315 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 91) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 109) - ',' shift, and enter state 316 + ')' reduce using rule 109 + ',' reduce using rule 109 + ':' reduce using rule 109 + ':=' reduce using rule 109 + ';' reduce using rule 109 + '>' reduce using rule 109 + ']' reduce using rule 109 + '|' reduce using rule 109 + '|->' reduce using rule 109 + '}' reduce using rule 109 + %eof reduce using rule 109 State 316 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 91) - - '(' shift, and enter state 38 - '*_1' shift, and enter state 39 - '0_2' shift, and enter state 40 - '1' shift, and enter state 41 - '1_2' shift, and enter state 42 - '2' shift, and enter state 43 - '<' shift, and enter state 44 - 'BOT' shift, and enter state 45 - 'CUBE' shift, and enter state 46 - 'Sigma' shift, and enter state 47 - 'TOP' shift, and enter state 48 - 'TOPE' shift, and enter state 49 - 'U' shift, and enter state 50 - '\\' shift, and enter state 51 - 'first' shift, and enter state 52 - 'idJ' shift, and enter state 53 - 'recBOT' shift, and enter state 54 - 'recOR' shift, and enter state 55 - 'refl' shift, and enter state 56 - 'refl_{' shift, and enter state 57 - 'second' shift, and enter state 58 - '{' shift, and enter state 59 - 'Σ' shift, and enter state 60 - '∑' shift, and enter state 61 - L_VarIdent shift, and enter state 62 - L_HoleIdent shift, and enter state 63 - - VarIdent goto state 26 - HoleIdent goto state 27 - ParamDecl goto state 28 - Term7 goto state 29 - Term5 goto state 30 - Term4 goto state 31 - Term3 goto state 32 - Term2 goto state 33 - Term1 goto state 34 - Term6 goto state 35 - Term goto state 317 + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 95) + + ',' shift, and enter state 320 + State 317 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 91) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 89) - ')' shift, and enter state 318 + ')' shift, and enter state 319 State 318 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 91) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 72) - '(' reduce using rule 91 - ')' reduce using rule 91 - '*' reduce using rule 91 - '*_1' reduce using rule 91 - ',' reduce using rule 91 - '->' reduce using rule 91 - '/\\' reduce using rule 91 - '0_2' reduce using rule 91 - '1' reduce using rule 91 - '1_2' reduce using rule 91 - '2' reduce using rule 91 - ':' reduce using rule 91 - ':=' reduce using rule 91 - ';' reduce using rule 91 - '<' reduce using rule 91 - '<=' reduce using rule 91 - '=' reduce using rule 91 - '===' reduce using rule 91 - '=_{' reduce using rule 91 - '>' reduce using rule 91 - 'BOT' reduce using rule 91 - 'CUBE' reduce using rule 91 - 'TOP' reduce using rule 91 - 'TOPE' reduce using rule 91 - 'U' reduce using rule 91 - '[' reduce using rule 91 - '\\/' reduce using rule 91 - ']' reduce using rule 91 - 'as' reduce using rule 91 - 'idJ' reduce using rule 91 - 'recBOT' reduce using rule 91 - 'recOR' reduce using rule 91 - 'refl' reduce using rule 91 - 'refl_{' reduce using rule 91 - '|' reduce using rule 91 - '|->' reduce using rule 91 - '}' reduce using rule 91 - '→' reduce using rule 91 - L_VarIdent reduce using rule 91 - L_HoleIdent reduce using rule 91 - %eof reduce using rule 91 + '->' reduce using rule 72 + '→' reduce using rule 72 + %eof reduce using rule 72 + + +State 319 + + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 89) + + '(' reduce using rule 89 + ')' reduce using rule 89 + '*' reduce using rule 89 + '*_1' reduce using rule 89 + ',' reduce using rule 89 + '->' reduce using rule 89 + '/\\' reduce using rule 89 + '0_2' reduce using rule 89 + '1' reduce using rule 89 + '1_2' reduce using rule 89 + '2' reduce using rule 89 + ':' reduce using rule 89 + ':=' reduce using rule 89 + ';' reduce using rule 89 + '<' reduce using rule 89 + '<=' reduce using rule 89 + '=' reduce using rule 89 + '===' reduce using rule 89 + '=_{' reduce using rule 89 + '>' reduce using rule 89 + 'BOT' reduce using rule 89 + 'CUBE' reduce using rule 89 + 'TOP' reduce using rule 89 + 'TOPE' reduce using rule 89 + 'U' reduce using rule 89 + '[' reduce using rule 89 + '\\/' reduce using rule 89 + ']' reduce using rule 89 + 'as' reduce using rule 89 + 'idJ' reduce using rule 89 + 'recBOT' reduce using rule 89 + 'recOR' reduce using rule 89 + 'refl' reduce using rule 89 + 'refl_{' reduce using rule 89 + '|' reduce using rule 89 + '|->' reduce using rule 89 + '}' reduce using rule 89 + '→' reduce using rule 89 + L_VarIdentTokenreduce using rule 89 + L_HoleIdentTokenreduce using rule 89 + %eof reduce using rule 89 + + +State 320 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 95) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 321 + +State 321 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 95) + + ',' shift, and enter state 322 + + +State 322 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 95) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'Sigma' shift, and enter state 51 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + '\\' shift, and enter state 55 + 'first' shift, and enter state 56 + 'idJ' shift, and enter state 57 + 'recBOT' shift, and enter state 58 + 'recOR' shift, and enter state 59 + 'refl' shift, and enter state 60 + 'refl_{' shift, and enter state 61 + 'second' shift, and enter state 62 + '{' shift, and enter state 63 + 'Σ' shift, and enter state 64 + '∑' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 66 + L_HoleIdentTokenshift, and enter state 67 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 323 + +State 323 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 95) + + ')' shift, and enter state 324 + + +State 324 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 95) + + '(' reduce using rule 95 + ')' reduce using rule 95 + '*' reduce using rule 95 + '*_1' reduce using rule 95 + ',' reduce using rule 95 + '->' reduce using rule 95 + '/\\' reduce using rule 95 + '0_2' reduce using rule 95 + '1' reduce using rule 95 + '1_2' reduce using rule 95 + '2' reduce using rule 95 + ':' reduce using rule 95 + ':=' reduce using rule 95 + ';' reduce using rule 95 + '<' reduce using rule 95 + '<=' reduce using rule 95 + '=' reduce using rule 95 + '===' reduce using rule 95 + '=_{' reduce using rule 95 + '>' reduce using rule 95 + 'BOT' reduce using rule 95 + 'CUBE' reduce using rule 95 + 'TOP' reduce using rule 95 + 'TOPE' reduce using rule 95 + 'U' reduce using rule 95 + '[' reduce using rule 95 + '\\/' reduce using rule 95 + ']' reduce using rule 95 + 'as' reduce using rule 95 + 'idJ' reduce using rule 95 + 'recBOT' reduce using rule 95 + 'recOR' reduce using rule 95 + 'refl' reduce using rule 95 + 'refl_{' reduce using rule 95 + '|' reduce using rule 95 + '|->' reduce using rule 95 + '}' reduce using rule 95 + '→' reduce using rule 95 + L_VarIdentTokenreduce using rule 95 + L_HoleIdentTokenreduce using rule 95 + %eof reduce using rule 95 ----------------------------------------------------------------------------- Grammar Totals ----------------------------------------------------------------------------- -Number of rules: 122 +Number of rules: 126 Number of terminals: 66 -Number of non-terminals: 51 -Number of states: 319 +Number of non-terminals: 55 +Number of states: 325 diff --git a/rzk/src/Language/Rzk/Syntax/Par.y b/rzk/src/Language/Rzk/Syntax/Par.y index fa0c4ad27..81d59ebeb 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.y +++ b/rzk/src/Language/Rzk/Syntax/Par.y @@ -9,6 +9,8 @@ module Language.Rzk.Syntax.Par ( happyError , myLexer , pModule + , pHoleIdent + , pVarIdent , pListVarIdent , pLanguageDecl , pLanguage @@ -42,6 +44,8 @@ import Language.Rzk.Syntax.Lex } %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,96 @@ import Language.Rzk.Syntax.Lex %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) } + '[' { 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_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)) } @@ -334,6 +346,12 @@ myLexer = tokens 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/rzk/src/Language/Rzk/Syntax/Print.hs b/rzk/src/Language/Rzk/Syntax/Print.hs index e432e56d3..860393168 100644 --- a/rzk/src/Language/Rzk/Syntax/Print.hs +++ b/rzk/src/Language/Rzk/Syntax/Print.hs @@ -1,8 +1,8 @@ -- File generated by the BNF Converter (bnfc 2.9.4.1). -{-# LANGUAGE CPP #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE CPP #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE LambdaCase #-} #if __GLASGOW_HASKELL__ <= 708 {-# LANGUAGE OverlappingInstances #-} #endif @@ -11,13 +11,16 @@ module Language.Rzk.Syntax.Print where -import Data.Char (Char, isSpace) +import Prelude + ( ($), (.) + , Bool(..), (==), (<) + , Int, Integer, Double, (+), (-), (*) + , String, (++) + , ShowS, showChar, showString + , all, elem, foldr, id, map, null, replicate, shows, span + ) +import Data.Char ( Char, isSpace ) import qualified Language.Rzk.Syntax.Abs -import Prelude (Bool (..), Double, Int, Integer, - ShowS, String, all, elem, foldr, id, - map, null, replicate, showChar, - showString, shows, span, ($), (*), - (+), (++), (-), (.), (<), (==)) -- | The top-level printing method. @@ -40,9 +43,9 @@ render d = rend 0 False (map ($ "") $ d []) "" rend i p = \case "[" :ts -> char '[' . rend i False ts "(" :ts -> char '(' . rend i False ts --- "{" :ts -> onNewLine i p . showChar '{' . new (i+1) ts --- "}" : ";":ts -> onNewLine (i-1) p . showString "};" . new (i-1) ts --- "}" :ts -> onNewLine (i-1) p . showChar '}' . new (i-1) ts + "{" :ts -> onNewLine i p . showChar '{' . new (i+1) ts + "}" : ";":ts -> onNewLine (i-1) p . showString "};" . new (i-1) ts + "}" :ts -> onNewLine (i-1) p . showChar '}' . new (i-1) ts [";"] -> char ';' ";" :ts -> char ';' . new i ts t : ts@(s:_) | closingOrPunctuation s @@ -121,10 +124,10 @@ printString s = doc (showChar '"' . concatS (map (mkEsc '"') s) . showChar '"') mkEsc :: Char -> Char -> ShowS mkEsc q = \case s | s == q -> showChar '\\' . showChar s - '\\' -> showString "\\\\" - '\n' -> showString "\\n" - '\t' -> showString "\\t" - s -> showChar s + '\\' -> showString "\\\\" + '\n' -> showString "\\n" + '\t' -> showString "\\t" + s -> showChar s prPrec :: Int -> Int -> Doc -> Doc prPrec i j = if j < i then parenth else id @@ -135,17 +138,25 @@ instance Print Integer where 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 - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] +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] instance Print (Language.Rzk.Syntax.Abs.LanguageDecl' a) where @@ -170,7 +181,7 @@ instance Print (Language.Rzk.Syntax.Abs.Command' a) where Language.Rzk.Syntax.Abs.CommandDefine _ varident declusedvars params term1 term2 -> prPrec i 0 (concatD [doc (showString "#define"), prt 0 varident, prt 0 declusedvars, prt 0 params, doc (showString ":"), prt 0 term1, doc (showString ":="), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Command' a] where - prt _ [] = concatD [] + prt _ [] = concatD [] prt _ (x:xs) = concatD [prt 0 x, doc (showString ";"), prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.DeclUsedVars' a) where @@ -189,8 +200,8 @@ instance Print (Language.Rzk.Syntax.Abs.Pattern' a) where 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 ")")]) instance Print [Language.Rzk.Syntax.Abs.Pattern' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.Param' a) where @@ -200,8 +211,8 @@ instance Print (Language.Rzk.Syntax.Abs.Param' a) where Language.Rzk.Syntax.Abs.ParamPatternShape _ pattern_ term1 term2 -> prPrec i 0 (concatD [doc (showString "{"), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString "|"), prt 0 term2, doc (showString "}")]) instance Print [Language.Rzk.Syntax.Abs.Param' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.ParamDecl' a) where @@ -216,8 +227,8 @@ instance Print (Language.Rzk.Syntax.Abs.Restriction' a) where Language.Rzk.Syntax.Abs.Restriction _ term1 term2 -> prPrec i 0 (concatD [prt 0 term1, doc (showString "|->"), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Restriction' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, doc (showString ","), prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.Term' a) where @@ -258,6 +269,6 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where Language.Rzk.Syntax.Abs.TypeAsc _ term1 term2 -> prPrec i 0 (concatD [prt 2 term1, doc (showString "as"), prt 1 term2]) instance Print [Language.Rzk.Syntax.Abs.Term' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, doc (showString ","), prt 0 xs] diff --git a/rzk/src/Language/Rzk/Syntax/Skel.hs b/rzk/src/Language/Rzk/Syntax/Skel.hs index ab979d928..cc8df6eef 100644 --- a/rzk/src/Language/Rzk/Syntax/Skel.hs +++ b/rzk/src/Language/Rzk/Syntax/Skel.hs @@ -15,18 +15,26 @@ type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x -transVarIdent :: Language.Rzk.Syntax.Abs.VarIdent -> Result -transVarIdent x = case x of - Language.Rzk.Syntax.Abs.VarIdent string -> failure x +transVarIdentToken :: Language.Rzk.Syntax.Abs.VarIdentToken -> Result +transVarIdentToken x = case x of + Language.Rzk.Syntax.Abs.VarIdentToken string -> failure x -transHoleIdent :: Language.Rzk.Syntax.Abs.HoleIdent -> Result -transHoleIdent x = case x of - Language.Rzk.Syntax.Abs.HoleIdent string -> failure x +transHoleIdentToken :: Language.Rzk.Syntax.Abs.HoleIdentToken -> Result +transHoleIdentToken x = case x of + Language.Rzk.Syntax.Abs.HoleIdentToken string -> failure x transModule :: Show a => Language.Rzk.Syntax.Abs.Module' a -> Result transModule x = case x of Language.Rzk.Syntax.Abs.Module _ languagedecl commands -> failure x +transHoleIdent :: Show a => Language.Rzk.Syntax.Abs.HoleIdent' a -> Result +transHoleIdent x = case x of + Language.Rzk.Syntax.Abs.HoleIdent _ holeidenttoken -> failure x + +transVarIdent :: Show a => Language.Rzk.Syntax.Abs.VarIdent' a -> Result +transVarIdent x = case x of + Language.Rzk.Syntax.Abs.VarIdent _ varidenttoken -> failure x + transLanguageDecl :: Show a => Language.Rzk.Syntax.Abs.LanguageDecl' a -> Result transLanguageDecl x = case x of Language.Rzk.Syntax.Abs.LanguageDecl _ language -> failure x diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs index 83785d4f1..5d808ba96 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokenize.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -1,5 +1,6 @@ -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RecordWildCards #-} module Language.Rzk.VSCode.Tokenize where import Language.Rzk.Syntax @@ -13,13 +14,7 @@ tokenizeModule (Module _loc langDecl commands) = concat ] tokenizeLanguageDecl :: LanguageDecl -> [VSToken] -tokenizeLanguageDecl decl@(LanguageDecl loc lang) = concat - [ mkToken loc decl vs_macro [] - , tokenizeLanguage lang ] - -tokenizeLanguage :: Language -> [VSToken] -tokenizeLanguage lang@(Rzk1 loc) = - mkToken loc lang vs_namespace [] +tokenizeLanguageDecl _ = [] tokenizeCommand :: Command -> [VSToken] tokenizeCommand command = case command of @@ -31,13 +26,129 @@ tokenizeCommand command = case command of CommandComputeWHNF{} -> [] -- FIXME: tokenize CommandPostulate{} -> [] -- FIXME: tokenize - CommandDefine{} -> [] -- FIXME: tokenize + CommandDefine _loc name _declUsedVars params type_ term -> concat + [ mkToken name vs_function [vs_declaration] + , foldMap tokenizeParam params + , foldMap tokenizeTerm [type_, term] + ] CommandAssume{} -> [] -- FIXME: tokenize CommandSection{} -> [] -- FIXME: tokenize +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] + +tokenizeTope :: Term -> [VSToken] +tokenizeTope = tokenizeTerm' vs_label + +tokenizeTerm :: Term -> [VSToken] +tokenizeTerm = tokenizeTerm' vs_variable + +tokenizeTerm' :: VSTokenType -> Term -> [VSToken] +tokenizeTerm' varTokenType = go + where + go term = case term of + Hole{} -> [] -- FIXME + Var{} -> mkToken term varTokenType [] + + 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 + [ 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 -> go t + Second _loc t -> go t + + 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 :: Print a => BNFC'Position -> a -> VSTokenType -> [VSTokenModifier] -> [VSToken] -mkToken Nothing _ _ _ = [] -mkToken (Just (line, col)) x tokenType tokenModifiers = - [ VSToken { startCharacter = col, length = Prelude.length (printTree x) , .. } ] +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/rzk/src/Rzk/TypeCheck.hs b/rzk/src/Rzk/TypeCheck.hs index 23be70686..2d1f41cce 100644 --- a/rzk/src/Rzk/TypeCheck.hs +++ b/rzk/src/Rzk/TypeCheck.hs @@ -419,7 +419,7 @@ 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 (Rzk.VarIdent Nothing "_") $ join (lookup var origs) <|> lookup var mapping origs <- asks varOrigs return (show (untyped (toRzkVarIdent origs <$> term))) @@ -429,7 +429,7 @@ 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 (Rzk.VarIdent Nothing "_") $ join (lookup var origs) <|> lookup var mapping ppAction :: Int -> Action' -> String @@ -2598,7 +2598,7 @@ renderObjectsFor mainColor dim t term = fmap catMaybes $ do label <- case term' of AppT _ (Pure z) arg - | Just (Just "_") <- lookup z origs -> return "" + | Just (Just (Rzk.VarIdent _loc "_")) <- lookup z origs -> return "" | null (nub (freeVars (untyped arg)) \\ nub (freeVars (untyped t))) -> ppTermInContext (Pure z) _ -> ppTermInContext term' @@ -2609,7 +2609,7 @@ renderObjectsFor mainColor dim t term = fmap catMaybes $ do case term' of Pure{} -> "purple" AppT _ (Pure x) arg - | Just (Just "_") <- lookup x origs -> mainColor + | Just (Just (Rzk.VarIdent _loc "_")) <- lookup x origs -> mainColor | null (nub (freeVars (untyped arg)) \\ nub (freeVars (untyped t))) -> "purple" _ -> mainColor }) @@ -2654,7 +2654,7 @@ renderObjectsInSubShapeFor mainColor dim sub super retType f x = fmap catMaybes _ -> do case term of AppT _ (Pure z) arg - | Just (Just "_") <- lookup z origs -> return "" + | Just (Just (Rzk.VarIdent _loc "_")) <- lookup z origs -> return "" | null (nub (freeVars (untyped arg)) \\ [super]) -> ppTermInContext (Pure z) _ -> ppTermInContext term color <- checkEntails tope contextTopes' >>= \case @@ -2662,7 +2662,7 @@ renderObjectsInSubShapeFor mainColor dim sub super retType f x = fmap catMaybes case term of Pure{} -> return "purple" AppT _ (Pure z) arg - | Just (Just "_") <- lookup z origs -> return mainColor + | Just (Just (Rzk.VarIdent _loc "_")) <- lookup z origs -> return mainColor | null (nub (freeVars (untyped arg)) \\ [super]) -> return "purple" _ -> return mainColor False -> return "gray" @@ -2718,7 +2718,7 @@ renderTermSVGFor mainColor accDim (mp, xs) t = do maybe id localTope mtopeArg $ do Just <$> renderForSubShapeSVG mainColor dim (map S xs) Z ret (S <$> f) (S <$> x) -- FIXME: breaks for 2 * (2 * 2), but works for 2 * 2 * 2 = (2 * 2) * 2 _ -> traverse (\(p', _) -> renderForSVG mainColor accDim p' t') mp - TypeFunT{} | null xs -> enterScope (Just "_") t' $ do + TypeFunT{} | null xs -> enterScope (Just (Rzk.VarIdent Nothing "_")) t' $ do renderTermSVGFor "blue" 0 (Nothing, []) (Pure Z) -- use blue for types _ -> case t' of -- check evaluated term @@ -2728,7 +2728,7 @@ renderTermSVGFor mainColor accDim (mp, xs) t = do maybe id localTope mtopeArg $ do Just <$> renderForSubShapeSVG mainColor dim (map S xs) Z ret (S <$> f) (S <$> x) -- FIXME: breaks for 2 * (2 * 2), but works for 2 * 2 * 2 = (2 * 2) * 2 _ -> traverse (\(p', _) -> renderForSVG mainColor accDim p' t') mp - TypeFunT{} | null xs -> enterScope (Just "_") t' $ do + TypeFunT{} | null xs -> enterScope (Just (Rzk.VarIdent Nothing "_")) t' $ do renderTermSVGFor "blue" 0 (Nothing, []) (Pure Z) -- use blue for types _ -> case ty of -- check type of the term From df1294be3df5befce13026fb45951a1a494ae876 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Tue, 20 Jun 2023 11:10:12 +0300 Subject: [PATCH 09/13] Highlight tope/cube variables as strings, do not highlight regular variables --- rzk/RzkLexer/rzklexer.egg-info/PKG-INFO | 3 + rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt | 8 + .../rzklexer.egg-info/dependency_links.txt | 1 + .../rzklexer.egg-info/entry_points.txt | 2 + rzk/RzkLexer/rzklexer.egg-info/top_level.txt | 1 + rzk/doc/Syntax.fdb_latexmk | 59 ++++ rzk/doc/Syntax.fls | 135 ++++++++ rzk/doc/Syntax.log | 299 ++++++++++++++++++ rzk/doc/Syntax.pdf | Bin 0 -> 196299 bytes rzk/doc/Syntax.tex | 22 ++ rzk/src/Language/Rzk/VSCode/Tokenize.hs | 46 ++- 11 files changed, 560 insertions(+), 16 deletions(-) create mode 100644 rzk/RzkLexer/rzklexer.egg-info/PKG-INFO create mode 100644 rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt create mode 100644 rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt create mode 100644 rzk/RzkLexer/rzklexer.egg-info/entry_points.txt create mode 100644 rzk/RzkLexer/rzklexer.egg-info/top_level.txt create mode 100644 rzk/doc/Syntax.fdb_latexmk create mode 100644 rzk/doc/Syntax.fls create mode 100644 rzk/doc/Syntax.log create mode 100644 rzk/doc/Syntax.pdf create mode 100644 rzk/doc/Syntax.tex diff --git a/rzk/RzkLexer/rzklexer.egg-info/PKG-INFO b/rzk/RzkLexer/rzklexer.egg-info/PKG-INFO new file mode 100644 index 000000000..5d9abb526 --- /dev/null +++ b/rzk/RzkLexer/rzklexer.egg-info/PKG-INFO @@ -0,0 +1,3 @@ +Metadata-Version: 2.1 +Name: rzklexer +Version: 0.0.0 diff --git a/rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt b/rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt new file mode 100644 index 000000000..9f8054196 --- /dev/null +++ b/rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt @@ -0,0 +1,8 @@ +README.md +setup.py +rzklexer/__init__.py +rzklexer.egg-info/PKG-INFO +rzklexer.egg-info/SOURCES.txt +rzklexer.egg-info/dependency_links.txt +rzklexer.egg-info/entry_points.txt +rzklexer.egg-info/top_level.txt \ No newline at end of file diff --git a/rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt b/rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/rzk/RzkLexer/rzklexer.egg-info/entry_points.txt b/rzk/RzkLexer/rzklexer.egg-info/entry_points.txt new file mode 100644 index 000000000..8a1087529 --- /dev/null +++ b/rzk/RzkLexer/rzklexer.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[pygments.lexers] +rzklexer = rzklexer:RzkLexer diff --git a/rzk/RzkLexer/rzklexer.egg-info/top_level.txt b/rzk/RzkLexer/rzklexer.egg-info/top_level.txt new file mode 100644 index 000000000..2da83d07b --- /dev/null +++ b/rzk/RzkLexer/rzklexer.egg-info/top_level.txt @@ -0,0 +1 @@ +rzklexer diff --git a/rzk/doc/Syntax.fdb_latexmk b/rzk/doc/Syntax.fdb_latexmk new file mode 100644 index 000000000..a4120714a --- /dev/null +++ b/rzk/doc/Syntax.fdb_latexmk @@ -0,0 +1,59 @@ +# Fdb version 3 +["pdflatex"] 1685334388 "doc/Syntax.tex" "doc/Syntax.pdf" "Syntax" 1685334388 + "/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1136849721 2971 def0b6c1f0b107b3b936def894055589 "" + "/usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1136768653 3584 402da0b29eafbad07963b1224b222f18 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm" 1136768653 3584 13049b61b922a28b158a38aeff75ee9b "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1095.tfm" 1136768653 3584 929cdff2b7a8c11bd4d49fd68cb0ae70 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm" 1136768653 3584 f80ddd985bd00e29e9a6047ebd9d4781 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm" 1136768653 3584 3169d30142b88a27d4ab0e3468e963a2 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm" 1136768653 3584 3c76ccb63eda935a68ba65ba9da29f1a "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecsl1095.tfm" 1136768653 3584 91bcd1ec8de84adb306899ddf050f500 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecti1095.tfm" 1136768653 3072 b73d2778cc3af44970de4de5e032d7f6 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ectt1095.tfm" 1136768653 1536 a988bfe554c1f79514bd46d13c3c64ce "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm" 1136768653 1528 abec98dbc43e172678c11b3b9031252a "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1136768653 1520 eccf95517727cb11801f4f1aee3a21b4 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr10.tfm" 1136768653 1296 45809c5a464d5f32c8f98ba97c1bb47f "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1136768653 1288 655e228510b4c2a1abe905c368440826 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr6.tfm" 1136768653 1300 b62933e007d01cfd073f79b963c01526 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1136768653 1292 21c1c5bfeaebccffdb478fd231a0997d "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1136768653 1124 6c73e740cf17375f03eec0ee63599741 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1136768653 1116 933a60c408fc0a863a92debe84b2d294 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm" 1136768653 1120 8b7d695260f3cff42e636090a8002094 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb" 1248133631 30251 6afa5cb1d0204815a708a080681d4674 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb" 1215737283 140176 d4962f948b4cc0adf4d3dde77a128c95 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb" 1215737283 135942 859a90cad7494a1e79c94baf546d7de5 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1095.pfb" 1215737283 145929 f25e56369a345c4ff583b067cd87ce8e "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb" 1215737283 136101 f533469f523533d38317ab5729d00c8a "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb" 1215737283 131438 3aa300b3e40e5c8ba7b4e5c6cebc5dd6 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfsl1095.pfb" 1215737283 158320 b2e637419eb81344af310d8483cced13 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfti1095.pfb" 1215737283 196446 8fbbe4b97b83e5182def6d29a44e57fb "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sftt1095.pfb" 1215737283 169670 48d12e69c9a3b23c81f6d703ccbd4554 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls" 1636758526 20144 8a7de377ae7a11ee924a7499611f5a9d "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty" 1622581934 4946 461cc78f6f26901410d9f1d725079cc6 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty" 1622581934 5049 969aec05d5f39c43f8005910498fcf90 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo" 1636758526 8464 74db94825c407b51399ca17d9bd38a3d "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/t1cmtt.fd" 1622581934 2443 6dd9a5deeddddfcceb01d1932590ebad "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1644269979 29921 d0acc05a38bd4aa3af2017f0b7c137ce "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-3.def" 1368571634 12057 2970a4c64555bdf31d1fa2f777664d57 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-33.def" 1368571634 8589 ed28b1c7dfc407d19d76bca04a0a8153 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-34.def" 1368571634 10889 f4bb23aad9b12df75a5d13bd63a0cd45 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-global.def" 1368571634 1375 8a855db83af5d6753ccbbd32e6a8a901 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty" 1368571634 27982 5723d81d568db410592a59b85fb3eaae "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucsencs.def" 1368571634 22368 c53c9d0d16c65bef2b157515c9d9f658 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/utf8x.def" 1368571634 8036 21f7ac37aafb6cfeddbb196b8bfd6280 "" + "/usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf" 1646502317 40171 cdab547de63d26590bebb3baff566530 "" + "/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1647878959 4410336 7d30a02e9fa9a16d7d1f8d037ba69641 "" + "/usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt" 1652796879 2826444 08bd04463575e134848a78e5b78fb04a "" + "/usr/local/texlive/2022/texmf.cnf" 1647878952 577 209b46be99c9075fd74d4c0369380e8c "" + "doc/Syntax.aux" 1685334388 32 3985256e7290058c681f74d7a3565a19 "pdflatex" + "doc/Syntax.tex" 1685334388 13306 ff08264867762cf202c979b8841e3d1e "" + (generated) + "doc/Syntax.aux" + "doc/Syntax.log" + "doc/Syntax.pdf" diff --git a/rzk/doc/Syntax.fls b/rzk/doc/Syntax.fls new file mode 100644 index 000000000..f9e90a05f --- /dev/null +++ b/rzk/doc/Syntax.fls @@ -0,0 +1,135 @@ +PWD /Users/nikolaikudasov/git/fizruk/rzk/rzk +INPUT /usr/local/texlive/2022/texmf.cnf +INPUT /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf +INPUT /usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT doc/Syntax.tex +OUTPUT doc/Syntax.log +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo +INPUT /usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1095.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/utf8x.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/utf8x.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/utf8x.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/utf8x.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-global.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-global.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-global.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-global.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT doc/Syntax.aux +INPUT doc/Syntax.aux +INPUT doc/Syntax.aux +OUTPUT doc/Syntax.aux +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucsencs.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucsencs.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucsencs.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucsencs.def +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr8.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr6.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecti1095.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecsl1095.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/t1cmtt.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/t1cmtt.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/t1cmtt.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/t1cmtt.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ectt1095.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-3.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-3.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-3.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-3.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-33.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-33.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-33.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-33.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-34.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-34.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-34.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-34.def +OUTPUT doc/Syntax.pdf +INPUT /usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT doc/Syntax.aux +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1095.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfsl1095.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfti1095.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sftt1095.pfb diff --git a/rzk/doc/Syntax.log b/rzk/doc/Syntax.log new file mode 100644 index 000000000..2c8cc784a --- /dev/null +++ b/rzk/doc/Syntax.log @@ -0,0 +1,299 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.5.17) 29 MAY 2023 07:26 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**doc/Syntax.tex +(./doc/Syntax.tex +LaTeX2e <2021-11-15> patch level 1 +L3 programming layer <2022-02-24> +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +Document Class: article 2021/10/04 v1.4n Standard LaTeX document class +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2021/10/04 v1.4n Standard LaTeX file (size option) +) +\c@part=\count185 +\c@section=\count186 +\c@subsection=\count187 +\c@subsubsection=\count188 +\c@paragraph=\count189 +\c@subparagraph=\count190 +\c@figure=\count191 +\c@table=\count192 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen138 +) (/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) (/usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2021/02/14 v1.3d Input encoding file +\inpenc@prehook=\toks16 +\inpenc@posthook=\toks17 +(/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/utf8x.def +File: utf8x.def 2004/10/17 UCS: Input encoding UTF-8 +)) (/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucs.sty +Package: ucs 2013/05/11 v2.2 UCS: Unicode input support +(/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-global.def +File: uni-global.def 2013/05/13 UCS: Unicode global data +) +\uc@secondtry=\count193 +\uc@combtoks=\toks18 +\uc@combtoksb=\toks19 +\uc@temptokena=\toks20 +) (/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2022-02-07 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count194 +\l__pdf_internal_box=\box50 +) (doc/Syntax.aux) +\openout1 = `Syntax.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 14. +LaTeX Font Info: ... okay on input line 14. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 14. +LaTeX Font Info: ... okay on input line 14. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 14. +LaTeX Font Info: ... okay on input line 14. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 14. +LaTeX Font Info: ... okay on input line 14. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 14. +LaTeX Font Info: ... okay on input line 14. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 14. +LaTeX Font Info: ... okay on input line 14. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 14. +LaTeX Font Info: ... okay on input line 14. +(/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/ucsencs.def +File: ucsencs.def 2011/01/21 Fixes to fontencodings LGR, T3 +) +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 15. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 15. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 15. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 36. +LaTeX Font Info: Trying to load font information for T1+cmtt on input line 3 +7. +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/t1cmtt.fd +File: t1cmtt.fd 2019/12/16 v2.5j Standard LaTeX font definitions +) +Overfull \hbox (140.93973pt too wide) in paragraph at lines 42--48 +[]\T1/cmr/m/n/10.95 VarIdent lit-er-als are rec-og-nized by the reg-u-lar ex-pr +es-sion $\OT1/cmr/m/n/10.95 ([] \OMS/cmsy/m/n/10.95 ^^@ \OT1/cmr/m/n/10.95 [[]] +)([] \OMS/cmsy/m/n/10.95 ^^@ + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 55--56 + + [] + +(/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-3.def +File: uni-3.def 2013/05/13 UCS: Unicode data U+0300..U+03FF +) +! Undefined control sequence. +\u-default-931 #1->\textSigma + +l.62 ...econd}} &{\reserved{uses}} &{\reserved{Σ} + } \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +Underfull \hbox (badness 10000) in paragraph at lines 57--64 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 65--66 + + [] + +(/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-33.def +File: uni-33.def 2013/05/13 UCS: Unicode data U+2100..U+21FF +) (/usr/local/texlive/2022/texmf-dist/tex/latex/ucs/data/uni-34.def +File: uni-34.def 2013/05/13 UCS: Unicode data U+2200..U+22FF +) +Underfull \hbox (badness 10000) in paragraph at lines 67--85 + + [] + +[1 + +{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +Underfull \hbox (badness 10000) in paragraph at lines 91--95 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 96--99 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 100--104 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 105--108 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 109--112 + + [] + + +Overfull \hbox (93.47765pt too wide) in paragraph at lines 113--131 +[][] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 113--131 + + [] + +[2] +Underfull \hbox (badness 10000) in paragraph at lines 132--136 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 137--141 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 142--146 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 147--152 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 153--157 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 158--163 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 164--168 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 169--177 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 178--181 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 182--186 + + [] + +[3] +Overfull \hbox (47.70116pt too wide) in paragraph at lines 187--211 +[][] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 187--211 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 212--216 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 217--222 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 223--227 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 228--232 + + [] + +! Undefined control sequence. +\u-default-931 #1->\textSigma + +l.241 & {\delimit} &{\terminal{Σ} + } {\terminal{(}} {\nonterminal{Pattern}}... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +Underfull \hbox (badness 10000) in paragraph at lines 233--244 + + [] + +[4] +Underfull \hbox (badness 10000) in paragraph at lines 245--252 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 253--257 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 258--262 + + [] + +[5] (doc/Syntax.aux) ) +Here is how much of TeX's memory you used: + 2261 strings out of 478268 + 30365 string characters out of 5846347 + 336372 words of memory out of 5000000 + 20502 multiletter control sequences out of 15000+600000 + 479360 words of font info for 49 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 42i,9n,49p,398b,614s stack positions out of 10000i,1000n,20000p,200000b,200000s +{/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/cm-su +per/cm-super-t1.enc} +Output written on doc/Syntax.pdf (5 pages, 196299 bytes). +PDF statistics: + 81 PDF objects out of 1000 (max. 8388607) + 49 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/rzk/doc/Syntax.pdf b/rzk/doc/Syntax.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1a54a9f8f9abdd8127ade7379a692564f677584 GIT binary patch literal 196299 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%0AChL1sC_IuOj3qkM&$Qd&9X z9cJ#hJ}u+ z7q33Z;Y3C2W@J1*wjU18_U+})i06Izbhj6O#mDEp2DYIjmneYrZw3`Bw3eM1E(=z2 zDI$xlGD^abMB{3CQQf0368xLLX$EVKnXmSqFAk>ep$7$;y-S8LP#*kS;Toe~Nky{{ zOXXP#!VZplh6a^!HAz%RT^h0>%4azgcj?60HiqKtnSgRrgL#eBqwt%mMI4?~KiO~7 z#JrJluXC|}oATbG=!9wgfW|G$l+mk?;x7$6q^mOyVB3qJ$;HGc|ISGD$A2PB^L!5y8r&bwq52NoNyu<@+bWT3h+$aaCjah9Ocb47cdLDU!i z)!ZCVq*)~{J!105Q6rxuXCT)9ZnhXX$E_cx4>ly5?f}K{Bh-Y&jP{f#jZQHc|**7gI(q8$MINc>kPlEt9d8nHumS zii?;}E-){?%@dji8(8ZY{@6HrOj~a1G&o2;5tB9@X{A#?unNNFId7szl6q+DlIdV6 zgi!As<+|3(L*MF;p~UJfMQ~V~98J7=q*6_CkyO>qiP25GE+{AU%+N$}(LWS9Hrq&G z){Sh}L@ho(im&ht#bkf)Q+)XD!pvBcs1`|QPj0dTu+*6{ydag4wK3$wtrL(|ORw;kM zMYWqXJYerCf+bu451ATCR*}rz&3rxu6LqXjNhbm~Eyg(noleGBZ!*!;C`a<_JbZJV zu;d`Dd_Z!Yd=#nG>#n??W85VJ%08Iu%^za6*qEQmIneU}{Z4axu?bdVrd(sa$LSLt z8Jh~`m%pK-g8;yx@pZ+R{K8(@~e ze3YJ_(MB3`sJMLLniPquEm15|uN3PpJZljGYxr9AX@iyu)>1GEY#^@1^T$=CJ4VS4 zc7XSFwig)_T%klR8yww{FgLW8-cBs)&95Twl|XlHcaEUt?nHnf#zQV`av(e>m~#ur z0k7@8w!%GKYpG=egoAN{z!L#b8#7}7wl*IkZ-t-Vj}X?E2#j`OL#H307Q*V4U^6Z4$kSe!dZgb^<^J>FHd&FEnh zfA`3x);GMAE^7J>Zr-lM)j3WVfA5{7qb0p`Xs*(GoD7ZbkoBZLqmz3mc{v3J8WcrL z^iRVal1?yeg?q=Z-yD^yj_wPz91|UCWdeB`4@>3*m!aVTEtj_pCi6F*tu7u^^FnHgO7NP=Xjuq;sa2v@_ix5ZpkZ5l0)*UaESZe(RBl7NG> zRRolxRY8&>CWpm4i0|$95awWpJ8h|z7>>Lp^1~xcu7=)Xa1jw(AtB4#x~ZjD3Z|Lhud<&22dTRTM1TS^V|yYbeEC6=5Q!&roF#3Fe^j) zbD#IOG;SN7j^!0?Tk5fU0(Mq@b-A30NJZwX9g3)rikp0fM+fU|Oh#PC7fA<*)L}^% zBOc4$UA6O&gPr$}t>;yo1?1`8)FZScWvtWvsS~~9oQwyiGt@OZ&7htLZ8UE6jhZ>) z^T13?317Uoce#rmKKr};GE*{_=X$A~T@BZ>8fbH+RU9i&_5$bm>qdBd7MCRF#ZMTc z9Ar61Y2EAm(lMV{SdxxD_?^v%v&XsxiF-{%Aiv3jKZlZT#5>FxUHubKddC>TAKK2W zy0yz*D&~McDL*&zA(Mg%xYO^SKC>-Gb7_T)dZ{WFK z*heUAlkr9z9+Pk*lc~=O{UIji>)(+$bilKxiot&8d!95(jE#>G{=0@pif|bn*MEgP zP4?Xm3kA`~S`mJ224VyXEXwULJ7Z)X9y>Zg30j1rPuB^j6a^6r30BL^9n%MkTctZ; z)e4I`>pDv3xljT22n$*@AyapA;_K?GEN2R#=&3GP@;lm9h&B+>uH%D81Vt%Fv%g9* zFGWkiWG$f2y}kz#B8*PTi^b$0jUW24KW9J6c-qYqY`+2iLpxPWaX;Kv;~Ve`%7(PP zEMM2ED%I&XBcT6aQ(wbkxfCWbVyKfbM6Csbk@7eOd&32hT18Ux6z`CFA=nJpvyK?N z#a>jbbRLuC^34{YJzq#V;6s5G z=@_;N=-Uc2AJQ)L*E}jW2nWDDINyg02H_PA4gw0Q4~U*lixN8;$`iOHr~q*NAFu{% z{sYV7C7JsDr{|oSSt>(4Grc7us)=n55TKp;~PyL ziVhI4^+O`0Jr7~cGmH!56tJ!j*(VtWpp1$KK(G$?_Z-&xZy+9ng&*tmu}Lf-&!T>- z8mLW4sJ&C@0E1;>?lakdqMX)suLtB8rX~Fh9377Kk4mz>Bb;FFQYvp%t7Tp9Bc9eykPnC1^vq zfuDrWJe(WFUywKO^W(ehC=U%10;E1@!w`T?9vmb4cyFVDVfnW$hSv{e8d)D~coH52 z;P?CcY67T=fg5Cdd%piiiii0&s!)EfKL#S000C94LsZc z|NA%Nj1T0sEcP#a#ea(!fIsP{8of)wZ|(Y53?$o+EExKJ&bSkz+PMH=){lAzhXSa1 z#5dq~&hroT@h|CPj^?jw@vn<$MU0NF?>oB>@-Ghm5X$M{bEseP4H1kRj0@tLq5m(- z66S}ui%Xt+op|l<)l#2e-9g@;Tc30W9O)Ds>TlG*TqT`+`IZmH=;~dIt5By^()G+Ka&!xQI2GNzjOio?| z1wgQXK$m2FXiSp`03X3s`X)cOZy6S0Ka7}R9RZ-#jNhLZ=-=a0z910*AO#Y)3k1h` z*%>+o6$FC)yT^dR+o>J~0>S=cQ)3@sJOSFnx5;l2(UuqmO6#$n;$Z4m+s~DwzYuRh zD~VDPgjNMYS!Vp|5fvyHd~b?@Mc_@d5wc+KfshoDblhb5ieaFj>uU2V^h$+od}WDJ zSZ(2!!|e7LZ{CS!Di{5MFdy0qD>zzK`$W}{)lmeWShO3t9qR!Pv#f$~DvjXF{=24VEZmk)7T%;|$x+K5Bx`W}jnU zJ0GlWBx9WP%1nC|>5i{Z;=Y1J?>zfFzwpA$GZ&Zm($B*roEAo?(7(z&1&w#lk_GAC znWt@}w;32od~8;#51Fpqv?p!KG1ktm*r~28wCZe$9K+aEiC4yayIpc=lyOYU5f)|L z0n6l_vut~`?oqytVd7>5H7@C&8SM{rGP9X`dD^;*huVaYCo#+{bGyLqmsnbMWr*TX!TN-n++|zZaRNCAG2n$G- z0t6%?r?3(gj9rxSzfHHE@#pz5t#>BBx*nYbqs@5`WUO4^c5?aT;1bspFl;IjJ2) z@M)8F2Um`gP7ivyw;=P~7a~oEVDW9KAVXR99(pzhW`ItTaW1<+^fx;x%otaW@Yj>K z_`^xr2i>1|8;KR@WfWHx063j`f@d-V@bS_fPN^r*;kC{k#@1mn z|ErcTi~H6ZOz?S1i?UG=vFWSzfMBYbgxP#Xmb@T>{x~F$3HD9{ehWzdY#GgjXNGnN zFYKDTnt_)$G_Le&!-B_@mhJZ4Udo4wQHEd92*O%&pNou012DPM1);k=(Gaz*Y~@Qp(ZVoljG3Jz@@j5o5|clb+~dtG8s_ z`oD5rFUwIwKvhofo8*E${1f_qC(+Js=_bH&apF7|M7>wG3<-hN>oZf+swOPl8ITRu zdNvTr4ahTe|0r9T2=Pa{oKB^^rWMagUS`UXqo3bbm!xz_NjoO9{+vN@qbEGxMuaw9 z>;+W$>QRfQdNfY4a-8R(VTEq#;ZPr^py$}6)sG}bwllJ{Ax_sSA2l}UN9PFA-rN1| z6z*Asn*o5&j3k!(uP=f;ctPdo<@@e&a%9fRB|f(O)&fP7FpOrSTc@m1o!cwu~M}hl-coG{|V&T5# zip_BN^Y_VB@t|5Lx#T6N5~nu~BxFl;3=EzxAvb2}`9U-=4IY%;uEY&f&oD{9liQb$ z#f8MLmd;h>mb#B$@+EQjN>9(686ZO4+s|7HH$?tl^nXYrZk3LAkwThR6t+S#Ys}w= z_ab@FpBA9NZPn40=An8c+J8JG@m%p38)g|=8)D^YhB zvKyi&=(Xr7c6|??LD*ti#zOdL>{%m3Z-(jlmRzHmkc6Qn+rE2jT*2oXRsCMG}v5!g7bQ zktd-RMhYAXdrO*H|5=$6s#A*Iyh6mB^Xb>2nxXY^2Fm7*jB`N~FW)am;cS0!ZGJBH zJw$epXWi>=tymaBXWI*wahwkIj|!JEm+|CkIoiaI&3hTaE>*=fr2}*x z)R7&yjQ+V_kgA)uEjO^cTjAtV2J|DNhC-woX1cZ-04i@5*V8q*w}s1Gso57Vl~c@O z0GU_|dw>?-mwbsa*WPlkyUZC@-NrM2mk@wPpF1h)DKFa+!b5IAmxu||doglx3DC5C zU7BN?n2ks|D_zlrn1hFvMb)av1!V=Zv2Z`tebK(>cBJJLwTffKK2Mi}@KFE6%qA@G zFlE_g7Jju@2}rKMzhP}Ro4LL)ws)bh2p(-;*Ye}3Ban0UQdr0zlbAP{eT!!ejpZ~` zYKjuci9&qYXQ<7+2pBgI1V~>M-I5bu0MdqB|bvW2>aHnkp5t>y0ExXIbjXl z-9Y9)6psAQ5K1wu2xGoy+O5Ww8XIPn0!Ife2UZpfv9zl82K>_7Xifex6+0}0@xRbk zqP<;8+DS2f(dY2^HxEndzAJh0C`*X;^95Sd&wM$M`PkoFlfA1Bs`BZKM|X%^HD=z7 z7fd$fufw15Ckz&iHDxR7`!prrWgG=myrrZ*ZH3t*s z?#K06_2R#M*%4V1%7O{$!oiUCs=&A9fi)WMF4zBT3{GAAHU|?!mfVbgtPU-2$v8_| zj<5qGyYL^Y@?PY=r2v`h>>-ifDW~&e-8Hr9+PWp85RCK$J=MQj?5~s5ku&-QDX49>_ww2gX4452cDDn$vkF`T2f5Pkh>uYx`KnIL_dfg%zQOj%RobYu zPchz02!fbF&N%xcDPYa5a*vXYR)oo%xKe?Skg+NR) zJbhBvOQW+9bd@n*g(!9!=MR6XRT=cE`Of}s5~{{JW$M ztNfZj5DGI*So|ow&75)gZ<;2=Tc%u@Y88Vvby37ugTaC2wL(sZt+&z>mh22#tX9KP#a`bo*XMSG7izu=xa9QV^G*9>Vx_?M;VQC z>N&6C77ALHyi~1ghR^SSRH#GW@}ib7DOvbz*7d`E{`D)zUVf7R%7aDL zAY82xB$N!+2AY9P{yW|MB1dP7hq%m$L$;C3jjKIHzQ1Kb-~cCwmxL}+CJU?qU0n_Y zV43Ebk$B(s!%g{DRPN_fe(o>#%W06QePYEPchUt0_CpTw6gM z5oo&_22$zcj7tZ6Z?R~;Mlk^BP-9h5E2_`Ihrfp{ABY z#T2o;4_;pAdncAz&C^eXx~6i5tC&{N&9{-`VQC%bf~=#88l;69p!Nz5sY*m#!nP+Q z<(+P6m-Wb8CuX&#)(%$)12p<+bK}G8&FeO1l)_5qsd8+-zq%VrMD3pslRdG*@3Tj4DG9BI#PJL(Qd8m@gcOF6T zz@85h{<`_}JEEL491bUg@6!4sX1Vr0B#;Rl*EUuB_NA{PSGdrR= z_=!dnWp`0*)~#RxSujM^^hl1H{u2s%rN=@VN?2cMDG_5g5mMU_?yXvGEn%Z(lPz22 zi4O7`6LEFWnJHWvn_p)>I#jEZL=C9Nao=g>x$2md{v71j8(PRJo^+)rcf}mnN3=ml zHOL~EkgY+Nd>^b9>r5TkB8Tv@pSTKbaOy!38u=!QRzYmQVliHCQrBN`%X9%$7EwdP z>>*AM`NyG!>T>ET$qUeJ*!My*DfCH`6XXecxKJ*29_|{`a+zi``Jmg{ZFI+uZ+xg0 zEZKOH?>IRASt0mIVJ;`V9-4(&eLS+g{C{t{JLYZL_TDvz6hunt+er$?i3Wf`0mz*{ z5?ZV+xOqQwDcPme9O9}eaQMC*i^ihcsZxxI23{6I)S3!>;~#-^ab9AIeF+lxkGt|? z>k)QUlRghUL~VGoFL#`Xv1@s6Y~(tf8Miuw_?WCG9Fmu+!p@MzYl<0W51qU-*0Ber zuSiK@K`KkgH_x5fV$J&2=Jke@=BJLUA%yx`>P%0wIfUS-{Z#v?#|7d?!=i~+HeTu? zn>9Aj4O2Xd8(;N#C{x0nlr%IeS1T&L^6#B}C5?`S5oBhPcNzRj|mQ;{x zlMgaArbv(yoNt1bXqn9(37@RNkKVok)TrpytCZ}?iAppfQ!+8yIbCDG$!wYU^qDK8 zX#Z0Z#d2J;$Eb?^CZ;z1Ku=rkOKz0C_XHpdkHP|XJ3V-!SnP=20e8VtMdz~vZ9`&s zzy2mRk`jD;;5mtKlqXMoRS9IKmA$bqOBt*0q*O%qw;d^mkCF6jyF@O_HJ7_!vw@1i?Ky7VcN+HXY3B8eqZfP z&)>Bf=1dW`)WOWwph%MKI}6WG+@5CBOFEU3VwpNezTn(XxA&V~>uhqoviuEj=zLDP zNDZns)J_{#%}=O{*;Jj$zdGHo0hkDWPiw-*pOT$}nkTSLT~&@$ufAtPVsVMLwlti( zSu@*m@oeK<&nqOyof~RwV`c=!FNZQ%E^Nt4sV7i4((A1h)7=zXlD;iT@-HT~I@dz@ zBbUNJ*`qKFo0*}r`-N)EvZ3rT_5N^4b}B|=J=&O73Lm;a+JWvcm@D<|j{tvY{9^ts z>yU6zx4mOcDAL)0z&9nsXpr@8ocaUUIXE%`qa+enhte*->%ZrGAu0GcXfg|vGaSfF z;$CZv6|>W&-?|Hog}Khi1i1@(wkp?`0^W!4+TgGN9KJ#Z~00D;Rh6g`vRkw|)la}PCd zAHix}+10}3i{B{&?I?N%$_g4-v*hEF3oqWt$d^-E&Qk{8*XUWVyrCFL4*I;rD_w~I-Vxb|H_o)g3 zE{1whYIs|qda~{v_RmQWDx08g?N_c~i1>SATv5TE8m2yQ*s2ORp@8lG&jClZ^NToV zOpIWl(#cSGdsP3?7qJ736@UGup6N+Em%a%=k602s3(FoHDfVA0w&?X%Y27$_Bm8vH z_m146wfpsjg4(L42D?`JU}(56bY#g5%L(d;WL$Yvz{O^g5#GWP63}l*JNN=PTUP|+OpNJIJdBJT;{f-@y!`apF2nKGHDu=AwGt$F0nou}tGd`J zD2dVJwx9gqFOm?OQ*YPEty~1XEqzFF^{M44fVdM42YE%G>8@^}9wJtQ6z9g?J1g}4 zil}cZzGLU_%Fu&TXPaVcV7Ae(aRxqZNXJIWRuESrvQZL_6gITPIu)&A&^O|_WEfq* zHSpz;W1Rz;t3%<-#mQn`I8K4(47aLK(6Rxv(g-3${M;EC9pDlQVwm6+JXFoq`BJXg zSdD#@VCWrNJ2h{!x7X-8G*Vc88m)CD3M+1~PhB^-i`2$99ss>AK0lC#7ZS|=b4SqM%_jx|2#W$CfqzFR8WH9>ct zwySaQ+Oa}n&V6W`#gxe1#JU<(0_Al3|4bDiSL1Va!T<1y%dptG`CiVYC&awdr;0}75j{d zzjvF<@J6m|&M9lA2RflpJDK+yfmP1=9M!oop$*I+qWxY)13gyra0idG`fj$$o*OQg zlNI`a;$|P>wp$aI&+V`-9FN`fBK=z)#kb6>-MndzbYfiT3?TdaV3e?{HHM9+ASU2d zJ%?G4$#yUw_6FY({AAxNPtWXt=A#vfrn>Wq;p;*YwaENyad8gUx!Y+UK*9DM`haj-~9C^iQ?np>UNA3$i zbXbe7QkQR+Aydm!I#L3W zje-<?21^wT-$vQii$8o*@m1`?a!b|? zdz?s)N85btf*2Ng!cgl|=bc=N@${td5wguG{_yPjj&lD|4ae*ihN}I#kU?L9&?G{s z!C#V&+-x8l&!pu7c9m~eo9Y@`qZOIX2(fq39yi>JoM8huzcUQOdak! z5a{VGHsZ_PXdH`0%$Ru0E$y1CQ{u?Kkc%K`qDZ^1fS!KPEpaQ2)osHifNF8?vG@R~ zEV8uYK!cVV;eBv0^shHf0f^AJk8JPSUHazh<{)}-@4J$uLwKj8U&m$dg{Nr%EZC?U#<0jH;ZgcZ2wdH{=d=uf6U^t)*3G%?II})0VRjC z#2;t3Km7njLohHxLCz3FB^29GLB#~(5>ONb;%tjh;u4bHMq6IHpFh7=KD(JMzD~1` zS3Pq(W_+LajhGnF6dc4jgajZsqyQ)=set8YSb!mbgM)>EgM&oF+1X_BC@>G;WGBo) z1U>l>?bCi3kQf{1TW32L9po^-p@C5XCV3s8_%) zU}sQ3%?S44=!|7hgG2a`E-pd_vF}!pdkzPn03{`)?|vP?$^X1xIWh*^JZRAt!A&}H zPCtV`;~*rI!22&XNL)5H)G;A3$`7A2l+`2}pXoK#%X?CK;&t0Kf+Uu0S$=BtAeW*Do{3 zP&WdGUp+hq6fl<|jIRkCn13=1puTi~-{hmCpdgRDZlJFG-#MfZ-_U`rMyxFj(ES^@ zfTHejzmqa35y5PRwHx}UuBO*L2tD_`yclSdo2!Q=2s1l)LM8U)CG5hAk1-Hn#NVI} zL3scN0|NsI3k85-WPp1oN8}I8o#9>JhbWMrU`A9Ba8Ckm0J?M{f&qDSh?9Sm1NsUW zFh71Ley{(Rug;qB z!BMo|;O95}_o6Po0#RH~CGOU3#LsDR5`vFE-#`7I9u?Nc0QjP0l9(oX+ckjcpXamq z3acaA0tJl!$)P>T{F(fF8VBJ10|QRKx7+Z9fUzP7!2KJ(C91Cd7xEGCC$HpZ>iD

GcyE#cQqkiZV(3Vr4=>etV_o(tvVcMO17(+YAc0^EVszc72tx9XV9_QPpXU!Hv!U?24Ry&3?7q2`?)?vJMI zD}!7Zx@ck_1%#>Nk54hy7Ucey)3ER`DS$o+(v@7a1(PW`90Z7==>q1#tJE+6p#VEj zhy$ShBs5q%LHsZu7ZofB1P9T8>?=X~+8pR}(pOB>Pt5Plo?bA>DB!_)jK#7Zgs6rf zUb+~_PaS|^Ki?VO&9CIv1a<_WLSJ!6#YNqBT^JD1eGogMTnurxG4buHFl(MNCF2KF zHQWy7zBY^BC^Z86KhMb9C2$wq#zgH6=u!MsTo>f+su6Q4?~wUSWdA5bD+>+Ksr~u$fgk4(a zZk6qmwBOTP<-TS~FzW=zM-qSFxlmR;dQtX!?7Gp@)f)w%>ELE^m#=YAm>6+#2Y#J; zOX7QYP#cnP6mSii2wqMs=yVS=;=QHOo_>9y*(gu(75)j7@{agYVHN}pWv&m~`KxGc zI!jve?|C&q$6lzoDd{o=p6;&3^%CC-l=g%dQ23Flw^&P}rjDkZO`P#sS%r0DT$!Ls z)J_nCU2`YJ91DI%OV^gqBs1;z`3kCj^75k1pXLIdJF%Km?cGl|ps@uxY`Kq%UHUfg ztUmcORei^2&>dB$rr4~Ugb8Ec$S_gZz2*!d=8B2;GM`-WoWp>kBcP$zYF&N(BD!id4x&n_k8uy9^YUux_1F{W!7JysEjHDT+XXY^iSaM+8qtCd z8{Lod3(0%-xwy13&IlYkn=FdY`i?d7#Eh&h4lO)$FW;M~xK-ujBf8wh>(w73bYx}| zt_sbq33=2?@z1?_UghFak>6nOOHZ`-E#leg7R)WJ7h0cZQ?E3(6wDYIStwgj8bcRZ zZ!C4wPloPkLWZxEXf!_Mu0Hn?=%EgPmoy3fIgEPNyea zV}q);-^>TvKr{sd%l83VSbhacx7BW0M*Qa$cgxxB5`XKFKdZx`T&TLNERV}!jtVAj z)*Cbp9B9g@hBAFfur)bS+!NnNWw~|`x0FWH;YR8Ks*bUIvj$lhWUGh+g;lMy6Zvnw z+Bkz#FY~06MA`EeK}5L-RvNa^S)FZUj5c%Oll;oGd9;fBrI~?QhWC!*=b>mCB?LRl zYB7%+D6fg&jh;VPv5Zf!BzBJ;$IGhx48~9 zV)Dl-7=!Y*_C9x%kQ4Po-)oNRH2nLE1cOi19i{X)TrJOKNg9tnwq1`N3DC!Sf{>RN zm6c4W9~d|&a3o8t77|yVk9XC1&3NMPnBx(EW9jfW`MkO2`Z7rglaj@K77(JAUci0f zKjRE41A{@P^Q)HmlUAW(fpK5w8l&{LTn+XcH10RS8_cY=5$93w^%`ay_*SfF%GceM z++`kZCn$bO?g1UvdTN)-Y-@^dCVqu-`NKfphYnduvH);QYfbb)I?4O9j5mkYNph(h zflV7vdY|r_@8`?AR^Wj~D%Hs=PMYBw>ECAVw!;=qVs4RV&~fQJHSzPzdwc%hZ;mgG z0t6|x3!O2(PAE+C=zfb%N$~<*et}ZKOV15PCj8S4s(eD6eQXE4H&O|7AO0S<$xq$s z3K5%_GHrQDu5R(EuzC`GxHKB_XH?6+(wDfhhi zSu*S;+f4X~_LB`hoX%Uwlj|x!uI+K7ua945h*}_>PJr?Teg*mGF9FkD#Cq%B*bsTL zrEu;+_DnMw_04N~2khN8o_PH*M6?mbYXMQ%x1WwFP}Z@^DktUO*~#L5C4Ea%IgNu$ zehbweH>GZ>TzKt;a**x!FyU2)hs-CkLEtrBJEJR8wO!9EJyH!j-ZY)rz2#dzs|iZ( z7nnQOf5M_=0&BmPLzD^AhGwnRq00g?#d~3*GLY&T8e``(aWY@B*ikh}#VYLg*|EvA z5Z?-7f=^Wsi$U>lg7XGtG2)(Ks1>Q^&5;rW7j{ep$C?c7dZP}@oiPh>gXc*b%CPV~ zEM*()Cz7`WFZv3*97qv0Q`KzN9AQL{>yfA~fY}~H8XNe%s^j#cKAN^9^<0UTR&p>D zZ(BRln?_yyJXSF7?g=SC^1_iqd1;Mq=M(GvwX>L&WSP}Wp>){}Wja}{wzz;z_U3jW zv-}#2ge5llwYC;PB+mv!+AxfvZJW=uvEiP%I$pAOc0A_?X;K4gPxrbEbV(~B2388> zgm)+zk9hnd$Bv(7AdJJcE;NKH*{*dJkA%Q^)%Roujl%cu-4lBXp>u-IWMV*p>*wqN zg3bYAd{k}#p1G=+2&QbFB;|liObY4r;)=xnja}~Hbmmc1Z^%*V%lvt+WFckG;$RC-u-E$2@e=3%7hYdJ! z9Sm|Daw)=eD9ygy?~mBxOz!NcqhE=1s@&pG>G)b)z@no>&R<(u z?HWUUSK^e=M9MYa7nw}Y?fcVh`T}km$u)y#<)K}FxF*G&K=2*!-PE$bb8tr{Ztp@s zAC_Sp5r{G=&>p_+J%e-IgOsCQm=rSs1buP4qHMWz0NV81Nyryp(_iqHrIevf>o#_v zTV;M9gF|M0Im}rcoE+cgja|YB6*S-eL0~)j6^gY$+?Rp{IjDBHY2pU3+e=ZHF>AGh zv)Bo=)}Nf2P|(0R_j^gwyvtnSUa_=YZykT%A56yLY_5_WA09(CXB-@Fb5Hp+Zb~DI z1rI%2c+ygS#WcscA%G<0+&*oy9Yd4j)$(moT)U$7Y_akfgqO0s#M-bmffdPwx^{x^25IJsi z{^prRIpnqOU}z5B-uQa2{2E~)#YXzlQHpL+tFa*|VV=UrTPjN<`(yXoLw%Oz<{~oE zmNw6Xa}WEE`y$im-WAt90mPdVsPSS~Wf;^ry+0e$;c<`8`S12brAt8A z+T&y+45~-6*{sMyw-;O^qWseCL>*8>jml4Ktv!9{DN#wfzEDCGaef{dlEay)*F$99 zoeKEio;bcfw)Y0$j+z(-aTrrqB*D7Svp8jyUHKj?kj>G zTaxCmSg(jpR^Q0`n+Kk3$Q^o+Et zi@_9EdOEQOjn)4RJ=>6$cNorXeN(#^xWG8@`sm%b;$)-^Upiw_ZZcw11{v6~ee15D z%BY)8Er(zBmUp+-zu1I&lE?aAC@67g;2Mcfz!!9hC`4^5y;~1F!o~I3R61t-33(}0 z8-=CavEQ?z=~gGd6th4}VM7jiiiMQbV7jK19kiH?w>Wy)ZQE-yzzr_0`8b`TAm!l( z#8q_H{89qt{`An~`Ygv(yGZW*M{GC{^suMBOKYECgaaU&(rsoONupiaULKgPG~ z-@)=E5!PP-Z-_GNNJzaNRKrc-qH^f{71LwJ154?ThmUI$X!DI3zH(2!6t>h3fD+i?EV1 z%+ljO2z2K%BRd^%z_K`wQneGM8tF!s4%&5ft8w$CA1Gr5g=z8;Z}M(@M!ih7LD5RG zUv_LUCP@>>avG{ouW2-hIu<*@J+APT(HfOE^4??ITOAN54%v+HwHh+VWos_!w|w(4 zIx68)$H}+Suh8XWC7B}fp$(XL(L86!Aw{$CPA+sepWGT`n3Fk3sy6mWyqXRF;8ls~ zVgx;!(q$IUwC`JIK42Mudp|F@pPc-Pd(Bmq9_lpiSfsL>sF5>Mz7|S!*9leQ2h4zb z=6Qw!oywF|j~vC)ws2H)pP}5X74Y6uS5!7w&$lPbGHJ4GHh%?d*N&Lk?eowuwF{2p z9E+%#w?n6=-MTNjIerV86Qmm`gto}Y!q0uBX{t&qRY

    N@j;MUHONOwZB<$-`e+ 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 z zO9VCdN4!iEB$)#IBB!8p%tM>K2H>p_O0!Pe<~t_j;#l|&xN-%$>bbPNZ8(mNmK*_` z52L=}UNDMTG$f4udKg>#v>3PDO0R+LhQk;_0GR{U(Fqa4{`d`F#Oxu^_EhrMN^9mWi z1G4m~syBQ0~k?p;s6&bYQY=Gas{>>+12-Xn2a;ot5^u_8x-BayGvk)Wc z4Vk0zMOw2wag;kw21XG9#ryiTbrVPr;4+{OPkvQ*HqSU;XF6ZON#2))X0v9zVU)$}^Qvjs6q?jHr0^S$i3Cr@O&wm__7u!M`+ zwD$GnRPW$&JR~%4OdU-Hd)Bw~;#TJSBrA9U0D9Bz0t3>iW9({1xC-(qfPUPMSr@Pz zpbVP|@M@2ZCbo64tH@SyLokWrk2N`v!>0#{-vI1HkGq{`v6v@@X00Y0+X8(ROcGwL0#M}|z>d8(YD z>i{CRk@{A_Iw8+r9MmC{HmZmZeg)dQ12t3i8=GoMvbFoG?L#jx{E8cZdQFxRVI^>M ztL34V`MDQ!qCi;Gy)!f^WMXAZ+IgD%On7tQFeF+k9iKHPj2i&pAEr#a==xAAKGHiW2%e*ban{DD(Qm6*~J zh_@}63^#&3KuH2XU5k%nudC3^Vsy#a!Rwiu{3(JS%5W_rzbvO^3 ztIp%0s1t_&kr^vHT#kYqAwu2_*dLdV_u%L{U&TT1mHTL%OBqd+=L?LN=9m`hg)-)Z zu6oZODhx`beH?llESc1Z;6~s5jah4(o1Y_9XnIYO_y-xY=8=11XsYXO%=pu>3+QT^ zZ6%n|<+WFNFtFc>y5ryX*py=ij($KB1B7_lNI&?%89%%RBGg?y`Nt44sM>aAhM|j6 z8JxyX9oYH?#rE0+%?*sMcKsPst$KJctIC)oVCKu|k6s^HpA0z@UdUgUAVLjESA&{? zy)6q;*^~`#&SC4uU}mluvjXRrCBQ??|eDnwBJB6%N8$c%0vv!>Rm@}u5Xn@TxqzF>@4ff&MK!Id2uMpgCB&y(ePFrR3HHCj z$CX$}Gp(a+%(e}Fkv0!FpiUoCf&O5i>5sK&=E=;rX6rB-GH4|YkTfx9$HGieP65^VP3e9qCqddPQt%@#X6T^eM#f~pvoWvMWGmv(| zf+iumA(?A8v>n{{O#-N^u>h9TlA}|iggBd&XuBiNuZg?Ewe5>=Fsh*UskLt%`Be&{ zf&j5R`)14zx&DLMqW0p*I}Ka?ZAyHb-qr?bQs^s_?;7x6JAlE4d`N^}dG*+L>AJ(S zXn?MkBZl-qAT#wPn{^R`h61~ZTXX6Lz|c&zRijOPmyou%eS2g`s*4br5C_DxG4;`8 z4LT)%ikjKBK7OLJU@E0MDt|78bSOx9d6wD`Z`aWA6NA4#4oDWR-*x<>tMNj;5pK*& zW|F3n(O|!XjWm8JexS1$)ysG|Z2gakaE9(VSl$HeC8F_&T(j&tVP1y$#t)Es60m2y zhvjCJHRWV+)N#s8g>EPk_3eMFa{K6emc*!(+wuCYbVyyV3B^xEfq}89gR37_Jl*IO zU>tgM{c;pMV;wq3&lO08+y-CFn6b=0w-@5sbPCt>g{KQy|6 z8x`yp(=eaD{F(R>BBI^?D}W;VU&o*3B%@epX8z-1TBetmzAwBZPA@_Dz7r7%>(W9_ zj=Sz$?G^b$e2MfJ%s>g+ceYj+ADu3jy=`}35h1qLF7lQYiTaf$a05ld@kvPqOE#@9CkE-Ck2$Xe*O~xIRaz8oZZXJ zNO>uzS~BmCVuGq@p>$pp!r9Hf-c{cD2e^~^v|28 z8-Nnfaya90D7z4jPX!W18Rma{NRW)Za8 z2(8~|pdrx?`7!p0%4P$5WX;9Mxai}t&n_Bix@pu_w4ww%%8>EjvTT5|5BKJ<6wknJgRK65>=v7@i(F>fy!)leef(-w+pOEboJ#!uNTYQi}v!EL-p<2thN6pVH=B z9TN#vf(BEG6e$ZL+J$z^1NfY}_>nYJwY#%Y!R^69V-vC6Rg9`7ny%2XC} zM5lM;5eYhxus6$6gR|!YYYPpg)qE1LkBxwk-#N)4Zks=Q=B81Tc$efcO;0DT!v#vTNt`WWeI!_nZL z=XE07<_urb7uorrUnObIjEQYkz}uQ^3qCM5O%}SA+`M4HfwG{L@8~t_WwhSoYU|X5ajB(8ldCWS0Lk8EhAHUioTrffvSdtm5XYTC z+mhxh8MwU8@o>t}MB5<6onfq|lRRXt&qEfR*nleWh2dAqQ`#3srL}gb5==NiquDtG zhpr{m`$OwOj|XMTR4S8iL#2P^6*tMorjy}bC2)ckiy2WK+`9sFDLN=`F7au0L$?hs1ROcPEw4!7>teR&tz(tM=6d{g(anY{}A9uji6( zKLQXeEzoIZve>PZ)rB8^TfNm1K_!RFb*Dtj>0@tj#lA2SEOt-pf=&bZ?=-NKH2KJD6r+-oOcPJsZg;oEY<^bsT0rn}4T0VIQYXo06y;tlf`dzN zA}*)d$`bwL_Jqx1#@*a?oaJn6SB4f>w{>G1drIP=y}I0%l1j2eJAf2i3nhRx5=If`i^F~{=6#Wv9mOUoDO zWet&6L*X!6!2DbQdXxk%$$Mjx2&MM+XH6PEt3=>-O$&mZRo zP4#)Zp_bL2&e&5xg>FfiRI$T|DYD|R7T#S3g zIU$=A+L>9WJ40qRDZ&bnN>|vyP1sEY7)$Z#4Mrr-!3oERgVyA@>$}Ong)m|N9HLAY z3ysgUp{D$b{1s=g7tEx|s@(JM8f;cPN6n;K4Opm4&Uzd|ry_3qY_N&n_Z1;pN^ER* z35ncPeZF)o4^34IDD$Z;HSB(u?@L)nJ^^Nuhd8U4!T>n@Hf!lcIlCw5aE+kJm-lWMVxcrq9Z|-`rjJ5pW? zvE#eP<*-k~Xe|mRTkReo8}(EPLSi~BRO|=;otiXd)m1{HNB$6kPGtECi=L2fpzjmn z9f9{twRq;c6sF!}-AZd}YL6zW%d#wpNnc<}0!Xc;8rTxfH^LStCQv&4jdp^N&Fl)N zRveT|$4t$A#cbG;pKG1$-#^SAn>M#6H@J{X+||;OSu4h*60UO6Dsl`=(huODY(-eF zEslG{bDob{%MLvSn{&BE-!(hUuh&FS3~y&`^7hR+9Ao$TFdlJ5CQ`JzkXd#)jiq>( z$b>>~>n|FOOTLg~tKIe17(;2R4E_NDq68ZgjuRLP{lGC+~yhr4eN zbRUufICpxWy1guio=8TiVf(HniRfJ$MovPOuk<;7T~_Q7h+xDPY=f?Xyn8XKUIhIZ z68B{eOuiu2G{tGz2cmIaI>0YazH85N1cudMlcy9;CMg4}k$oSb_@6TEpw?pjYk%7w$jS;Nz>-5-sFym-lfD-7C33)A=L*C31ZZ4e^Pl>pesHz~n+m-SFr{JVgauUNFi;d;#BhofgYV zlu^mGy-b04cYr`@E}HjYBy-LYVa)zBWQm>6QK*Bu)1hV}n!7wnWRnPJb;i(msYbtw z`UhGs@tpW4eO7*I^v*Snz32e_o3mJE(V~1-sa*tE=4|GaZ!y3eE@NZCfahjuJDN-S z9QaRbjp69hW72-!${ znpI%q>dc%fpw0vOyvrv(AdPbFSY$>W?|#sW(CgJGmV~_YTYX;}P}XxmDq#1=%nA|V zdA_wg<421y6C~J53@=E=ABql{9?Mu3a(yUN8I$%gISsKw}{5JB3lBKZ2;JuZJ|>I=9aHTwIag<_<&=)NMGo!gFIIV3=; z{kLtBuBH}mK!DW$oNyNEG-09e@O(sBLmYQaseE6(zepfE$?7lqOehqw(MjC_$axlJ0wj>g(8tH6gD|oZ zE8$T(I^tBh^wC&X@O*@lZI&0L`DVPD8$@EytDI~7(%LvxCF8LP%(Z+Il76jQ5PN^KlBdeJwZFgjVls9F~|B%nx7$!bB@j{PBcC^$X#SA z|8hU1rA<5+wnqs^K|&iHtYbBjzk*yKoQX&t6U{zsdb(>^Z5MD$;%Im<%Em|6)){v{ zrZc=QSOnq!LhZVaJlbmH(pwVgt)p}0J;0r~_GJ%As8%}cb^fj=`QfR>X)J%TEcwOx znjpU65G+r&d}k~Y{J@1m*02a&1}2icaT4!Ou3%ohtjWD+@+g_y>@?qR+gG^pCxW*H zt~*D$gNHOYg#q!>dECb;IP0C{Rm!6c!N&DaUvw4K)YYrq^tl!bTj|%g9WWE<@5@Si zNNW%#%iJUBLg2PXMtsjTT{S5k(_}zd&A3RW+ zdN%6R@HpaPp4C8Z-!^`>C+he`g;3&FQD#=Csk&waBFHz-C{LBn>J#{bu}nwKOxAPZ zXgIx2Ntur%2!A-s_HSi1fPL+8fi4coYg@e%r&$IGjNJI#!)HI*{OZ>TyaBnrEm5Lv zYpJNQVd%VzM;$pOJN@FnbtqBd5nGm(g>n_?IdEI`QnrB~ozJvxOLuQ2A_?yHVVQp& zjtl488MdRsI8}bq{Ec&lKr_?(E<^aHuPfo#Jz%W1@1NT8`*T@0_CT@_NpHz{ieDRt z0la@HR74hD1F%LV(PR>;@trfBrz1~oD`AYm z>EE(jS7>9~310x<>7V!Mzqpvj6q0p9jTZ1d?jHK$IqC z-LL&9ztgBcX+^Iy#(%UHa}gjco*>+pg1Xfk=UW0W*=`J_ zi=+7bXR*g7BAM$8%aZP}6*v1>MWO$M4LwuirpgJE)W$}SBwH54Orb|%y#2*b4;Tjb zuT6(P)YUY&Uq$s8zZYF@EZhkNZ#7B4;n}?EnlX8T7N7?^FtY1uq)smGw;IWD?0Fge zNdDb!@r}7x8I%b}nmz)S48ez>%nQ{K{y)9vb`F&^8<_Mj@kz%zKv+vTxyBZoJEzJbw5%|1Tk{JEN;C%{#YlxCTy>jfVLsY}#OyS%M9jf0c?{YAx?wLnJR3 zokFwpftn91NY*Tn@B=)k3z-~~O^%e3fr;N`V%Y6jBI6#MZJlzwJsdTSf~mjMKypb8 z`$U>KMb2&*>qqR{nYmt3>iWW<8HKgrp6*Zs>RGl}HgX1wHU&fECHcoeIRj7n^3poi z)=%(D>C{;&1IqnUj#K{?+V|T|YCc&F1j;uoE-;0eEq2`s`r=_yO|GSh5_QV^{Y8A6 zt;(Wi*JND-aV<5PxF5n4W$49218|M)N-KAUDvem?V)DqYM8(7xt#WiD(!W;h2^$;DQ%3;5ozU_V;aIj zqV0u|9{$LmZPYRbLnx_74ye0z*VqkSQOl|k-rdAO54*4PegZmKfF}e|Dv1vO&4OsF2^*$+-!0&>_0GPbW& ztkn|n{xU#5eQOw^+QUMEnTHGWe6GM`oevc-!eBqn9lH-qs-@gjm-C_|WIsD4T0yRTIj-wE1APJAOhge` zy$?G&=Eh4)xxQfuYI88GJq|7ATK^Ot0&%r`i>$q9EQ6qEGku9|2i=$IY6VMp=xDPM zQUg%+*v^vm<|cmIboE#%`F)4@UwTH#vQDDj*{~Y+?QeFqkRPD-wbGBN& z|B;4=>gz!ZbPj?&e_K-x-4{9L{9`bD-ND6PgeEQtJ#2Z~98 z^dw}ykz~w|LlvNF<>bs$<}dy5mU5dlH(SgEb)G$)ug_X@LRM6U;0{{wEQGjD4J}XO zzZA6%sn{hTd3E2pgzd!h#icU;9A38jkVi{8Jk20wZF32)5)SZYMs3kF-L8c3GLt9i z^_`{Fbxa$sBY0$>2NwmjN@zhd`Q$KDU{KKy{o|?S2@4c@-?%Q^g7nLwd*iP^s0z&^_ZvtN z$NS--jvQiN$=&cx2A@S-`GyFBR*=hoZD$_kXpBNdDM9&%x@6ZZ_yyWjLYYIDwT;CB z2J8sTdgnc==tyw*Hr%*`siFS}G@k04cVX!;b%rYrhTvFzMLB0n*0Ljc za77KNAPxf$-w*-|x2?Ov$XX3p%l0pFiXvO5dw^lvY@3mb_8@t@ANn{)*fxAKmrWlyup$wZO(E)<53eo&Mpcdw+o9JHx z$y+`gskCZTWLm*hHvHJM0=2Lhz(w}?+O~=};~>#YF*!#%gbc%;rb}+^ES6Mr1(QGx z{!vD7o!i^MmEO#0L+G=BOH{v^j6r4^Jl7IbN)wM!af*KQF~rQE-PkvwiqLZw(Nrau zr$OHYSmDCGls{8b{wl!DfeC8Ns>)(XtZ?}kipV{A2kiw%1nDLS46BxcFiIJy6SpKa z$gAZTB_OE6%cDDC2S*?NTe1s8^L@X7llWq3B;MJJ)dQt-dMr<&cJaRkPVeDWpx~NW zR;rJzQ1!`eBA|bezpc|MrkO6ZlK%axw{5&kfc9b-Unah=|=&2NeZ9NJeoiz zzb#O3+G{LHo8qRsk+t%PBpZISnkf&N>!3v7&_6W2MvuJOh;FiSYZATrD&C@2Ovy%~ zn%0Q5X9Ft+bcS@f-){LG11=xDU&K6 zrE8?60ZGGD-Jzfq!0{84$5ltC#UsZ-<^eNA`;}E^cY=;>4gBG^ z7JQ6F&a*K#f^LA|09vxHw$kAzLj&SPM@J__7c+%`GzAXn%~ba1_e%sv(1U0I0TD(` zZYn}00bWXg-UUwJ$Ic6kN97-1UxPLRi33ds`md4048)`b>9^dA4uq_Qtu)um&cXO4 z)Hectw)d2pmL6Em!v9ZOMqN-r0G5DuqKpihzJURJOyYan=J06j5gnGYyYIvwD5xNDaaBW%#4UQR3UlAA>}|mRF86c3!(=BC6_3`Y~Dy{Po&B1}Y;kv+}zG|5Z7< zi_Oy9T<`FkOZ;1MKkFZ**-)T)G2!$J@beuwU?poQA;5O@t60m4^D^lB1y#VC%ArZ@r6;?%w`YmfE2vOU&JT9cl%%23V_R*>Gfm_ z|AYD*`x0#xoxhNguX)Bt-3rCFnDhr0I^3^>E+nvW0FbW%FfGpK>DJ$r$_vr{RT_f- zgYGiP`caQ|j)4d%fsn4%up*8zI_;UxjgD&nBVKe#qz&Cfcvwzf<)5yk#G&ZBW;d+v ziIYNj|906X#=NUV67SsVXAQ?hZo~!}pZL*B%YP`#4Zgc*ejLWkjW(mJ@ zYH9)`(&e@@P87ti_ZQeu<;m)UR1?T+g!&#vK&%>yl&ud#a=XcsoE^6(Xqjcwm43>M zUs(ynp6EUCl}8lj_9{To0HDDzs@8`Yz(!c$IFVnKkJjmVC$!X%%MU^wU0?MO+Z(EM z3Yj_;3X^JUpKxrutfp3USoE&+kqnw7HuQ3L-3idev1S9)^hV*F1PM5^lK`WO9+=)Y z(Jma|+d5%^3OigN>AR+tK4rmAL{vZg{_)F0oNR`da?wZ&9hF~c?vj?>Kv9ih7c-=j zbGUX0MfI(N8{mR3@9$;d68M?U!R3ptwR^l+-5FiH>IQH5@PJ#_0N=wvx zza?k9Y1@JK&SYgNRpgMWBw2Rzg3$jva~u+DXzCoHRBA!9p#Gwmg{%ILlZVq~oKcT4iS4fL#sX|N zxYSPYtP%}n@frKkdgS&GqK}-%bQUt)MHV6FF$1^Tb|Q-0mVLv=HEU;$r|%T&15p^~Z5GG$X;WCrO_>c)7VIp$ZOQQp3A8ohi4BN%|K z-4MrY>#*v?>C}av`>WT`V1AZw42QmJdPHXDb)@S%As-;9@x*zAXPqhh*}_iDZS@+# z`AaaMtI)QugJ(HiRjUbJW`?t6SgZ|Dh&eHd3)PT{uyoN<3I|F2#gX=3HnlMJ**H}*1d1> zCUO<{?$bZwk=7#^*A%rG-y0s40W~V)UqccKGZwkA?%j@#9GixkyDIoil$i9CM0~%m zs7B>F?MF{ZJf(n6x-#blamY!P+(0_#4f6K>XD2|40ODx$Fv3UL6XBkDORY~gcfk}@ z%ulPWatUi?t_&#veEp2d+_*vtS8HPvk!MZ#Ad zhDn)oOA!=$?&8QcfD*yTR$zCGmwF;^Gm1lJ^%Y}SwwGrAxG=>HcW&`#L{MwxxRMfdDf(W|>p=nS(J@Bj4bh4v0?&;11W zvjC0CDTJlcoB*nsNA7RvRA|SsUuX0bd{^E~n^Hln`wt|jdAYL`?+`A&@&S1x{9gD| zxLys~OHN-_#MWGyr^MGnMQ8aW$X_04&d7-_wUJ~!=IJ@Ew{wY?ngdGvkhfv*0m5lM ztN1=76=>b@XZVEGjJUqir0H5vf8w6v%0A2t5NPZ_6)!%IX^|R^jM3_~>GQm(g#Af8 z$g4%G9Gz^$>+J8(gAQ!bY~odPj@+$=Gpi=^t2hooKUl`5IUr`w=csLv-lmtuc2Wo< zujjZsex&6A`-=oeE2AOep2bAAx$5Lm=AZD6Tlb4x6dIvq${*I}^ytfJb!}Q{f4cp~ z6+!^fjjxG4$AJhukJqMVpsKyka?GV)iO;QSz*5JPl)qiqL^Pmb|B}fkrE0Ufb)x@` zxlnX`<=r+MBpZ(S?GMG`k9w-Na89ix?4j`>rU&RZ_S3&Rg(2&HAy+_|9pvRw8|FHwYdDPR<@$0KUclIQtKK2mrTJ z7_S8nWttK+Fy(phW`xrODSZMk73yzR;LU*Cy*P zLbpSJ!xSj5?fM$6Ud(O)u|;qE=dkSKU-mCSldYLKnysa81uux_Ot9p$WVKb|ltq_V zGil#De2%Y_yJ0S=MgEU*d}_D*GqZAqh{fekMe`Mmv5Fg2?=r(#taDs)r}QRIyOq|6 zYvv!im)7cqqKA=_u7+&Wvj@5r_l;JcPe?-baDA5<0HYx;*;(9CVO=y^d=jjc5X09) zQ7FRUeX{$XaNB>rn-n2|o82BmvsNUFeN0_q`G=b@RWh?>fYy0PZTqRnT_R*58_nlJ zA@+z$c3>6`^Z`pf2;dRtT%p5$S4+(wEez6;^^z}Q zcAubPat%QrymKD9BXo0v6GTiTFB_&=dcfjF(K5zut8~wD`3s%u&il2|9GZ}ZI305r z*T~<-$VTyk-uO*f?B=T^#Z%^TVg|{tQUHzGYHNL?fPm3+t6KxrYh@!#rOZX^4es)s zLX3ogqg(N=8h&9V3G=p!%MR-InAE(?ga!0k9YCH-dx7`9kD1MG9;Rt6L;)c!ri3XV zInY~kN*CdEoTxa;80AaF%NNIfmp{)WE7={ix!2`c-RqV-y%#shn(iu$Fqa1ia<~dN zu_1|9-m)!syE#1s++d>GbXB4OkiapGTYa_uX~6ay*BE|L6eN{3+?_!#ZGGcXo<^QZ zQ6}gW>^Ucw?m-uL<;z4hS!NQDO#JZ)=cS-H;`P#4B51m#JHJ}rn)-Ha_B@6@824?JPkB$3;%rRk3rN?wqbTXKG3AOiz9uk>6g z)#9==nM-xKhx|-?(7k9+l}RR%I7iEQc;YR6BMl0TGQgxz!G)SLEj1{@SJ|Zw9`U_x z-bsa9{Szxvk=Kr^O<=MM)hxCRR_Vu$RY4rQL+&SgoztW!6p$@tS&aRIz$@*3+bH>U zy=!iizd*^1cp$&m{xnzD4m$aB*a#EoTQPt)-a&0ZrpN5Z1AJx{)TN8@y%NM0sMOHG zkgb#it}=xN6J3qs^2}^l5`L)>7KPRkY`{_^6>zX&oulTBiNn>T= z4dkAgL%91M)%is;2)uTk96;AEhdZw=nDABW4xe039w~}Sx7nQ6Dn?hPlD2T$C_pX3 zluzUR!CJ2PhC&S%HB z218~Twl*A~!&leyQu`_~&1f=J*JJC2Z2yHIWk&0kZ7E)ZLv$pepXn+V&KO){02lCc z!^I(2L|q1Ci=ca=g};mEJ!>$bsY}5$MBbYt_6PO|{CLHKj@uw{@3~YpS9=SNk8C=y ziJ7{QO9l#6vMM+_SB8u70u)*s@N!r54YHfmEttnb*q!yiWGqgQ;K*z%HM1>-i> zkOpJTWG;;NVFSk618$yjoLP`e^pW1J&U!&d;Ssc~z>UBAc_`JM=4OIkv$A?{8V0Tl zh;(+3C5WEy1%+IBR_!)Z=|g7d&*MBiD8pL z8?nwH=QbgqsH>}Pi~cGV1g=n^ip>03ZBj;_qc4C)h8xuYrgJDPR)e;qev=c>Ao*(# zZ}9@imYY0a1k%{WX8tk#<0o(L-u1j?!#JLx5bnVq>Ptdvwy4E1oNDfJ$?>ZICOGpG z=T>H-Hh&>49jF9)$=EXy1sRS8Jo9O)s<}P8VW<&aF(IDce0f!md0V>D2+qZN832uDZB_r(D1w!Uv}IAp>y?45IL zGvhJH;bU+L+Of%cQw?VH)X9aqRs*OyMnXf!u0HYYm5!73^rS~3}u2U7>NGvEB+=i>`Xjp zxOFXo9-UIgYuUyE86VxfUN3NeVvMNky=})Y6MHV0B?iS^AklMZQo=ABp*>?taANQf`BK%nbUj1$qng2Fj*nq3AF$1rv^i)jgA}-vp^G-m z1^+g~i^#GR)TN?O-L-twX+{#n4fBX;&pM{w9M#5v`v-P~zAqI3^q0qvjlB>MU0P<< zu!Ljo5sS%I(I5V_pL7Q!+PEHfjDL0<1o-$sDkWF(+Vg2QnfZdC7fjVxq$cvePvn_8 zl!an(1Unw5I`LS0Yo_cqFD(sy|CDP_1 zIk=dstrrQ< zPTWK^*td3HL!!6HSh=m77l{$I0=#4!2)xX*fHcepMq4xvEo{u?!-K$UH>>XsI5?N3 zcZ<|~V*Dc&Z(A4~FQv_9&L8{CIY5tA(RsXiEAFxW&<<9%ST1!Q1?>t`z8UvGBcrsP z=b$O$JftR><>S2vo5->0Zp+2;I^Lhj9=D-uQ;whu-_;Pf%xhsJ!w{f6^Jxix2s-=1Y_?++&h8Hc<($K1DnJoMuvTQbv-Z9 zVnoy9HI{}NX4M~u%Ow^A!J4d@m<*Iic?rgq+E#`3Mq56_G+Xv#`V|9@A68H*eGc>* z{M(%;?}haa`F`<*Zu+ctvbkj_nTn5mBm2hB4Jgso58{hAa_RXs5ly5rUW!Yolq3}5 zvw8~-=*iT};d%{DRQp^5YG?_O{B`UF<*Nj8gg)abNEU_+8~T!GFwxU__>sL9M!)E` z`OiH2*!JjefkC0GC*;@kiHlnBi>E0{*3iBHnN@(eVkh-!y6!bgSok2C@f~;p*FRl$ z%Dr(B^cG?NkK{%XaSf9-iqmBx(}$SWuYM$Fl*vd{EJK#|sDkwj?N|T`PA)5!Q@4wl z@4Mpy540tBb9i~xZ`RFw@2e>Cjwj9qKBsRQW6##NwAysDrsBMfQZDLZT&K5kC&T5B zMobU(A11nOwz?Z1;OuYcgjbICg3K^>Tv$xSjj02R znB%Ig z`=y>PNYCMn_*!h$J?$5^_x&h$4dmGCdW#BrzA|U($-=j*LC)vH5TqyKPJO~4gpxwH zE*4PLNh^?Capcfe;o5~6l>+$i_#eDthLaN$Y-v|S)boRQdjvkuuDCE7a>~+WnjJ(FEA=Vu~PvQK^ zIN-9U7D28SXY%cD2DzF^kY`-0O*Xhk(L4zrc&ZTYPD2B$`dk%uo?7<(sa;~Kp!@5E zy}xo2?a^5?2WF}Q!O7?>ZGk-7%+`LAfb7U!Fm#oHg~BOoYoi4gT7PT-hS;r!E)sbNF%zmW?W5pnDQhrH>!tzsV+%YJU4#bjQWXkV?2Q_ z*?rA0Gut~^<&T$??3qMaSw#;sDGt(LG*KS~Ne?>-&I74_<6B|#Bv-*Z<@p0>;8T}R zEW(u!k|ZYF z(q17~0|gA(jVRfH){(}U=-fcz>A*8JnokqoLn6p{8_(+Es)n0?`Hj#1|%61`hU zrqkZ|zh{m`)U9)1q^hktXIbDyGwftPFD!W;&F)ho^zahNYwab9dQ-Hp=SbNZG-Ra` z4rP6Bc*j-6VG-8n=dgVBK%fr^XNo!W$2)aoyZI;}h2mr%=SMSy#{-X-$&`5@IBhx> z#2oAqMUKeNCOj|35nU1-!HSuP;f&4>vd78Tl|)ZwwoNAW<;QLVrl_>BlcDWET=|`G z5CKq>KBt`FEOEv41 zvT4Y{DtP1NgXATDt+Z9k9G`hKTVX_`zQp0-oy}-X=>x}-3>AkY2^)a}MBx-Kg7$@r+I z4>vpBFvuOX^V3XTj1So>Y~n7ZUDO?&+MS5zIiOjYApy~SBYENGwv`BoGE{u#`&=Z> zM+qtt&kW4mO_*_fA8nCMXIY#qk=9c0fwqzvZ<%efW%*+jslJIL9+JLSJa0AH=EBU|Z<5tFquQT(D5IAjf#i;NBI=ITRamk7ybM zxm7H5h^4Obrfy|Js<7%E5R|iWAQnoN&KR*dJ+*X$9f()77%I@9-@yiB3aM`ro36-$ zp_~Y=iKMqT|Fcz%xj1nQ1;;fEj3PELHNxYQo%QkC{#g@c?Itcxyr$!YZ3|b1vrUqvd{#G@NVZDdAST zlxHf17i^@-!*``As@v{+aZ)vxy8*dJl@t!3t(R0)GP9WK;OJnS2~~s)twLy1#Gj0} z6vz7gw#?EmL266Q_oU^?9N|jRnIqMZ{embyYFDU=n%&ZNVtOWOAltb1dF>z{1LU~h7s#>6lh-5_I5)<=?~oZ|VYpR8$!Cs;?k z@PBIF<%MqQ4{JTzFwe~V2z);)aIbFQ61erKm@_&H?9fRxTeZH;7`Xs7waGgdJ8zrp& zD=qt)1CR9ZWxexX7RbSwB<5LED`CNdlA*;QHP1q>>{=?5u8@{_`$D<0)f7GJwUZ*w!F--Eph9TD&C`th&~wPetq*bDdC!ACU8npn zm?G<8cXs+zf-XWW-%+zKCX(C&K5;9k)M}1UL1w$?4C8g)1Dqi)srn|k9pxZK{WXnS zsFkR6BMFuGl%IC4x(3#hq>~^aJ)p)tvYRqh%h4yBoI87Vdnv^FV^0qxiZjsyZx*{P z8Qo|G`pa+Io4@L(1@}|?;f-B!an)7yWvIfMyC*^hNY* ziD0BT4?b9W=bHvqC&(j8K{|7__whs2IDzpTN16h18kyv#B((7u3oF+}L=+zyYQuRb zYcEny(GE+Qh-Qntp45^4VDmeM7aM5X>)&)I#Bq`zY&Cl>Bp?Z@{KLf{%=l=X5Gvy~ zBU6PH-NvjYW2w8yYR!K>&RzbvI(cc-rb>pmee>s%j(5WTUi{hI`W_VJ72@1mpozc& z&3F_4(0!!3Gh;vrQJW2l+EFVW2fs^!xU#ruS= zkahsuf_KswZwy1ilP3!_>R0M;{1Uw91grLdk$GB-E8hwb${28!G=DYcBoVm5xNXDm?SMQj|Z!^Nwx6Qa?5|3T)ll5)3 zSh4(|wwh0gE*SL?(VYlDs0D9gn*A$Kz3ta0B1QDKXU7~POnC*Q@EO}`uS}NX`TO z`gGH>zMw_BJ{GjjqZ|Cf12`WAn#Un+we>#@>g?et>vJIL1D04MYT^{x+Pz%yXEJDC zF>aX@e=yKPu9aiD0hq`Nhh}-Kk7?*Kcj_liY`x~W+h|kkoLQ{`(bwlC4n5{)9KZ=P z87v+ifSM>R>!g%`*a=-bB#zV-Vs-v-Nmi0h^jOB%6`|L6F#7giIjsoWU}%k}xjq~w zhdtho*g!d{ZuBJlM9pa-QFU0r9Vv&PG9k${S|d!*ouq)N!G!-)BFYo0{`Tv-}43NJvZ<-nuQpg_gSsk`fz3i@z-9>axf8)TYt}Gb3)eJ5{@j z^V0~dpNw`~df*;H4kBP+ z!WmaM?Y=~E?VmvvZ%I{jJsTZ`9JnJX($}kOl(G&>7NOwcO)Xn-SN+Xht0GiulwoDF zE>lw_MS@3#&gVR1w2+Fic=1wpnNEP+CX_}Ghy$jCm0$vM{%4*bwIXIt!dTy*!|$vG z7&}OL46RSvO5JQ&*hPKP3Ps**TxFu)9laj_fb-iL38|}F;e{y)bE~1Hc`mvZQARd7 zsh{)TbJJ0HC2yrVYF2s_HgNb)m1o7ik(K>ZQJI2xbv-6@0ld$K5!3aK>CxRL*+wE!RMz$ScBfcY!;Bw5TPD6Z+4qC_%Xc!nCm|N&ke(OzCp^=3 z-tBMls5p?}C=Q^z)69j72)`i<^rp7A#Y9rdY2@QMUjJD-u1kp3=eEgleD%)QWhy^? zaq!*4VbSokh&c4!B%o3OMotTTVjt3xrj1SUnHG%NrQgpOitO$dzf+%adn)dpR3t1p7kcT#ixfcpmyRpc8F% zXh3h_;9(i^{6zlkmembEIz z!NO~c2aHE3Q~5kE%BimZ2a(EDBzqbOYtDyk42iKfDHVpTc`6B=T;wTYGNHX`zaLjU zs!{-jr$=N|ABWyUeAR*$^th75y`VKMDsz!UA(+R(sU$Sj*H3sE6umFi;{B^k#i6NAc0}1#b?6g=6(%n^GfE*E z!W*mRoVcy>Fh#@PrPbhQX0xG~KXIeUua{iV_>`7hCjE3pu)ZhE|L& zWV|l$HAV3(3Wa~As-`4l<+xA8MX2I!Zs+-G*>XrM0#O@;<&adIE{TrZp-h~38_Ao? z5`nlG_xhY)1@ksXd6^#-^~yH^|LwdCIVpJ|XS-rKkyNl<=rM7}-;XDW;EqQUOq7`w zH3AT1Z83d+zT}>H)icgY8xsCWuTsxDkLg%WJy|r0D0*ds0SUK$w_%Q;rkz#oCAT~( zviOyDL73TN_8G(1tO`{4SET}8=W$rC%PCql{Pb4&Yx?+6X&Ds-6S$R~} zqVgaRJGZVA-yiOn49N`@u2M_P3U_0BUTPuhBWc3%;Q6X|(~+fa=q)C8DgdNAwo3(< z-=>B<%pD4z-9CAcD||Ujt@3eJ#3cH)SGvD|UVS3uKY(KueZVzPUF3OnrP%B&xge8Z zJ%6F4Z*Sb*Bb2oq6H&5rc^#wcnBzLLz#KM&Z85C<&=^Yuyd8Xrt+Rog@r>ZbV+BV( zC~!AO9nIS23Z7$CT#wjW^d{Mfu|uudlfuO5E-sS3b;N$l4s(D)&PV&_U7EOGk(oVv zbgZ)09Tz&tI(5Bhj(FCo{sEH%gRmKC1pnm)da#3S^be`x*6GxniAGr1<4BWv^4s!4 z6Mdhi!FUn%afu3Jf!2*8g-RiVGajRl{=cTnw1#^^l$`{JOwOrJ6xD%?XtL*)hYl10 z&Q0Z`zAO3Sq|VNWlv+7>!^-M9%qDc1-a30q+65*;v)@KpI)Yw9hV;mnit;sc3TGgR zzqT*oJsh-E%!SbJT`LtD*g6f4ifm%Z^KuI+GiUls6?=@u7US1f6KzWjQp4*_)bpfd z4tX)1UYSnfQ(PgVd-GbPeytqTBjagkxU*9PmyE-KJ~@_R6FzE(zr5N5zBcILIjbGO z^3NxxTBH|Eo!Z~T#XtGcv~jtFCSu~|u0a-zv2d~_>qhxlCEN>i5N(r7JDUlflkQ*Z zH=SX^pMr1x4tb~1@2sD&1JBgi>W3(i%Ak%)Lw+j(?YZMAd2~}?(BAE1wIs@@cC#S} z3M7NMx5>1sN<)hH*S2}qb)W~e>cnY7Nn&Rm0tuIrND~q^M2fUg0hiBb4}lT2sFl>^ z-y3q^24F!G@T%nB3tIj#$3`*yShW=(Tp3|#dWEKOI%BCMwpy;s3CQb1RItXPjJ#oifk+yh5=Il-DI9CCQH zYU>cr&Juyg`=M8E#4O#!2hh7wc4u2I2!I4>kR}MGjf+uGz6Y^P2fWSb5Uo<{{;#MI8|JJXh=JOGaGUWuoYyx5pm&ckM_O zX0BiyOSa>NHe?8i%MP03Oejjsabx*a+PpthV(?KF^Zkg(-~)jBNrDf=WG<*+`36qd zc6f6iXbU8?BIumGP;aKY?2_V~edUK-fbPl{(6-jm?ng zU(IJFK9$C(vsbw}l2g~q|BF%Di^>^KgaHR){ZRPj)XPPgAj6sIu9LPdMOKu;*Y#zO zk-OQc@l?EPa^P$ta?qJB+k6pwK#efx>5;f6cmU)_kr3a0DI1djCgQzJf#47o@|z4DC$7@Wo4G7OV*d-l)g0$EhBBDSCdtD_B@}GY^4v>+j0ZI}Yl+Y=p&=(mERG)w#vOq-GFhiHn zpfd_by-NgWOx(-ZQ21QHas0dscOR+i@^)mqsEcO9(k^t^JHwmsZ9bwh#$_-M?I!%z zuIGBgY0S!EYuaxNx2l?)C*WSG`}6w0VW$>Agdc}%^u6OO1Elvarh5h) zLG^u>K-VhrRUllfc4o`=5d6w$E?dJ-+`Ipjcf{&6&x@|%3pP6ZSGMZ$fr9DTeD2QA zxcC!d#w@dU`V!DtS9xrsrk&(95HC{k;2ny3qaU$2+H@bAx>Io28N!f+x1?~}CRwi| zIwDB1rh*Ak_|m8Uu0=+nc%aiSyCX{Zvyf&!i_P&>-cwxo0&{U`qUdYYw7St94;rQ! z%n1=c4qi+4J1dAW1M~A;Nha`FgGX92boUgu74H`I^dFMf2$vE@Cu#2?HRpZYuB{(Y zvCDMmvx~e#NR?wskD9mhc9?Tvmr{ZQT!W^D;7gvo+M zAWM^fcd|GdQi_Z-_SmCPo}M$qjqo)d*wWI-F~BHMB`U$*4MlcKa>4ceGf)h5>G01} zwvKv|kQO=$|3awiJ{T&;S~R}R`!(hQt@B(>CKu01youBanK|Mzgr?r3Db1)_N9|u{cJbVEZ4gwr1NzP@h8;q7^e(zct>E&AJhl&!XK^GyM zD`U*RbzQ{ZrfYw=0~U6tv1|MMm-U3B$UpY}i#}SJ$|hRx>3w(Bs@8Nuxjb2Nd*Z{_ zWfL~l#sP!`5%3txZxS?p!G}zGaOzP?9yFDf?rjfT&dI<_tWuu?nzj_8|E3+TDWxq) zRdP~OODSaCQKo~L4ywT$UsnjIpPZJi;or3bj9-=h8dcUlu4cy2_Rr?|_aBx>lhRgK zJyooMUR)i94#!4a&xO;a&Tb1jE==PWbmF9c`GQj0;711yOrF_yhWrQx5+GJxl7@^mc0Uu9`1b`##dv-R?zj2z4dljHOtqyO=f^hG*gZ z+Smijy@9rDCJxNxMFEw`?|@52RVJ~5Uyk%&Dp5O5ifa87I1M!2ivqpq!@~$u3ta1S zPIK%hP0qW30w*P&r0O2RV@EQ_pq1G*9;CY6_s_CO9P&|LMJRrMBzo?r6wcGIxI;pKaMeyE*xH?Wt5QbjWP4Z14Gh*9Wx= z$%9#?$lSVugBH1Ku*ticDleCWCd5Kcq3~?yXIY_mU@E8F6MU>nkpokblY1%?>YbF( zzx#QnOemu}bu`Jtglg!BP80+zrw);#ajxe(#jcaY(VYJk$Ns7q%58l>pW*If;$fj} zDK~R-Osq4GXj0sK-B&2W7?8y+bgQ$8rL)*86n9K#JzT8Ix#V-y`oM0|`V6DLbra4Ocm6Haq8v*F> zC&;k|URXpEm=8m5M~nlOV1q)|a(#0{y~E8qj>&vT;A`lhX`#X){SDtlplzYQpdRS> zN;ED#hYWe*^2xTRy~~b8(Rv*-DTybCsMKK_;AsTkwvn1>T4%JNLoMV{^$1(M^?(7< za31r;vR{$xNf$Ok19#{>%tq*L4c>S{P}*ZIn@-Q9)!`Vnyh8DNdy7H~{{S(MwDykD zezuz*j`I8p^~vt!M-WLMpojh{=~G%&yk@Up>r-z1o(ls_lEO=WFi_oNRKny2rkTCM zGS9|GFtb+!Z~ykx6UAqqzwcGIY$*aaB5IMq4#&UgiTYOoes{WBY>kn3LL~M1&*SOSta%yCeSs=Xj|4Qbj%wMe$D0XU=Dc$H z*uV$+M%5-a{}N|0CE<%q>Wb1mAoyJNgVy{CYiBS5dMJWYU#cF4ZUEwAW&+ff1hdn@ zB_QP--Gmv)??0PFF-U7+0Slg3`~r01yREl+vBLAmsJtDhvIW@Ng)Pg-3Kh^T;$3S8 zPwM4B>Z?KTWA(?w_tmb^fAb&Kb-bF8{=cTaMN+GaDcFf+u1u&S=qK@W5#S}89pbQy zKVZFIUa0>=G>7y58O>o}WaNONmo~9Ab2eutVECUS0V4w&C)@vTG{@aU9%s6h76B(v zC=mYk7Q_uHJ7Av+7zQTDE3m5zd7BVnI}pSzY=2;9M{m~cma}cQO6|vNYIDV^Zg)jz z#aY?WmBB1Oj5j?hCMrh>BcHOYV4Ad_7GmG{OrWeN$rU7vOXymksdQG~px=xEA|J99 z+};7Wos+X;{sLgp^%XA`L5kW8ponvcPr#pT83m*vgafGgCf~Id!HL>GysD}yxGD*{ zt0)TNYmZ2V0b}196il5zU*EsEGPAZYlE+^`R|J{>J~RMVrT~Byota`7Cm)0nd?>qL z8UUJG4B&YWu74X2Ebu!j3Hgf;M88&F?5uB?2Is~aaI%qKf>Q;RfL}Eem;#m|Bmh7X z%5TbGR(8;DLElMi%g<#D%KofU2}rAE2l?r=};0c^xs|8XSmw z5CF@ywY2^(U)qLHKJJhH)(;_aw$#rhK3L;dCH85LFgyuo7#Bt{h~qD1a}ecIt8VNl#n~Q63JMc5-#vdzQ_Mhfo1I!;fDXGcX z?Z_x;KeYbQ0TPJ)!#xy0uzN`Fub%Ua4i4@B!g^*ze2J?bp#!+A%z75~XSje+_Ky+KI1f4$#r)~Q2k*{f?U+gLh{bhxW zQGYu35OIQXL8udnTL_Cu>h7Kz-m=r3UochDc?Sj3P=lIoGF2NOZktIqCs3DBz@*`VTw#^z4(zClMN{wVAnNO_pw@u3tCbry`P zO<(Z)?dP3raDi?SKj9=bBi9op^=5(u~&0yKt`tmPr62x-%W>71UlvJ|SQq)c6< zY1Rz>A*G7)8(}9m708ZCOTtF_b;klzl71}lJC;=JcoaHEmzo-H6Q$U*LbfBG!_Z9N z62!nKI)G@Sk{zjw73jgg%KZNH-e@qX;-jDjA)jqXFg>rtEZdZX3<}QBG_;p{Y?_ed zV((SHmOSmGr*h+gf*wC%m8mSEL{ZrP3ZYy^gpr7B@Ia-!+5mvMek3Hq=$}xlN`R*( zEb8Zs;X@gkhcEBPo0Ukqj^nawLLz^XA)~04><5LUnOpkozsh=X+F;m#k7&r4)FKC< z$jVp3y|&IQ%WcB30wi`ImZ(T>8+XeOhFnd|#DtBNc*P>``}TxknSG0CY+M>s(&Fx$ zv!S_tj^@n&yHDm+VR3X`@6Pg7!uf*69iZ>Q68TKb&KhifPQl;s-s7rVV#k7&KCkda zVg%YraufML#@~_1ed2t{3qSG($A0t7CfC*f#AugMrppzS_QiZoU?%Sh6kG#g6-p$q-1LxpCgXDLsw6)iJF`fEHX*}sS;2+OrY z)v842S?P$7@OA|c?}X?VdW?!SkOqMbj9m^GpLG)f<1Qt2zg^-{SyQD9R)J>|UdxW` zdV;xJPa9HN1i294Y|vxxX3OJ*@tK%HgGco8i!PH;+nZ$Bo#8A_9eTZ}7Qy6 zp9r;Bltb}dthd#2ea3b+zPG;2Rs4g5ES=P0x);vIQuY^AklCMwZD~MZ7u3wD=*yXk z-nAyy{qYc*%sk#JT^qZZ(e%&AIYYG&G}&lI2*vDXDBK#e4y@Y|=|-S4z&~yafn<%j z9Qv$E4I`uXmzIlE=nwJ!1zbynJ}lhl!Hc@3a+tY%8-`eXOraAsloBoP@EW^xt+;4_ zqj8#g(tRCiUp_IieU(G_DjKGEw2@2nAx-o0LTEUjw~lT}#Y7WSXrE?p14g?0Lj}F_ z)|?M({9h9J@6*9Nu2!jDB4|#~MjY*OM(KGSjl$x@qfZ4?zivk0rC_H`=-fqm z6N9#K`HGU0!m@5Ivy4(EuwV?UdyORI2vN49b&_UDqCu}QfBi5DI)@3RCpp>nf?g6Ul%1ccl>kh$_%8!tI*pOv=weldu3R`te{IOcQk1ygHD)~PPjh;Wlv2VE={PY>D36O5VO~W#!el$UOYDn*Jx|&p)Pp! zxui^$wBQ+^H^R%Mvg(P&X3cnG$iCV@|cd zfz)Z*!DdiK7&G2SSu-2HkgEdgi#a?8N$|A}xlu zW&IvxqX_+^Zp?FvDKIXdxsHmNbo>hAV96-B7&aoBzi}9xM@tw{A+SLKsw=PAruATI zb?n!}`4a(00myQ;+pUq<;B~q-Ab$8Y)8+7B@k?#XOl|71^zF03VU>s5CT;YFWY-!} zn5gh>C7dbl2Ot0FirR8(O>K?v(2Lij2gk&(d%hHJ|5lvv$(R)Wr-0Y-wHn11*9~hE z!95}MD$GWyDNAt_6Jh&rO`0eUC7uhBd$sq5$j8dzY?wyQSiRsvg|w6R&BgKxR?6BXh)o398o!mt#RsdMf3J`n4Z3a6m*g*EuS z1H5l%uOUUsV{RO2^hmrY=8fF<7|wkuK-5Yy9kPhMl4N3@-9LpTM@6Db2~H+YInCBJ z!&C0rpjWCK65Js8CZW@_kFNNNuP~^sN&6m-Tt+`$@e#)g6W% z^Z5>RJ>*$ zjt{qcUu_u|j+9=eD$TE>Ne3s~v|9&72*jpBoPHTTdKWNd>;O+VOI5NSjc$+X)*67{ z-5@3;b=wD#i_+}$q*){*Y`Sne)TEf00U_o=-x3{ z<{6RIDQCv8T*>_$eKSsX-k&?poQ^7Lmv}GjJS3+rqBDxruZ!{XB*tyL)}5wc=q3!x zS#`sUVkz(oM2}*$e^Zhsp0NqV8f6Q6xnN4YTd|1g25m>X3cANR>rC*BFk81-J5s=~x4v)hd>&sMYNWPRp$Bi{!TYm|gvt?!~lOLCzR z>w-I3)EW})Y^s~?^(F_(6&TxfULO8E7=jyfA3&}_hLQZ{cHJRbMMRyq=LPc(i-VSn z_dOJiWt4Jo|J|0jh-dRUyx#I>WAV{TW%>+cYoDE3-9KT2GFzjPGrvirqWiK=G~r4( zL=_3!G6&Xfaj7^~L~^5Jm8KLinc!*b_zN46)$%vMX{CQ9bq-(@TgTMdYhSahDP9!5 zuJ5sP^vA*B(beOMg?dC@O)j|JvR|9J(ebz=Cr6}=%Fu+j@8|hR((@vZMxK8x%b?6h zVG`3V-T(Cs-ixv%$grkx`b7181zH@;87-dvgf^yN_KAFqhfIVUJE;X2C0zTyK)_Ny zNeu2lWlKwxy_pucb$WxhRl6zsOv2nM?1^0nYQ-}}YyrSxXL@GfFQ5qFI!@TW{bYnJ-iHe}8 zXdjh;r8bUL4gzS3migSGV3koC!@;iZMf0H_SSn8L7o0|c#BMY&i>%*!{Bl)~c!iN8 z|3Oqv->y{stdPWf&(1dWu9)ldyO~;y7@k&UcuWwSQxf6Hzf@*N!?&Y_9j@PWQe$Wx zo=^CVOyFf$)}GP9K%4V)Qp*|0=>ZAA%4;zLgJKI^;*Mc0RsvItnjrA>3;{Ee&@ycv z>_!-|flD6l7k$KLSV3+u9`E4SsJbUSn4}x7C=5pkUoK&e#?*K$Tmg_2BNy(Z-*UW$ zQz&cZ%tP#MwbS(sYpUz$Ms1SL;%B@Zc=Y+IvGA5CJmN>)7Mwnd?H&;&q3M?vQ6})X zY|fg})|(FqmqG|q6IS2WBJ$T*!afZU+6az`=n#>lOcp1%J$gu&otrA3jZo71@xS#| zvE>VFo|HoOr!oFK=~C=!u<`t40l7*s7hD9FnYSMhkkRFbf@R5Fr}YhG@+?y4=F;fN zjxy&a0OwVOP-m&7lpval{*#!`gH@NQ&K~w)4Sm3VG}+@i_fmg@ZUJ4NREx(tNK2Rus&{ad!=n{-!#Z~N6eJ;bfimze2;2sD(=erZIZ8iw zmUX_VcsErXxzm@^ljYKNuWKK$G}DIGcD>T6a7{*{k{&w&yYukZ`w13|4=s$U{l&BC zKZP3fLmL%!(z9%gbY^;{d~Yu4P>rH!iF4XwILC{+I22b8F|{ZjHyT~x{AItDr?#;9 z1;o(TY2h9aZv8=CDy4ZvJS`S2LDy+Mcc&&PnM$I80r^EbB*(2YR{gZ}G%(|#3=A%U zw3k!(!pW-nHcdQfSH-SKg~vSIby^n1XJIoPo%;Qmz;xLnX}^xR6bEp+gRfLJ7R{qT zAS6imU&iQ?J;srsS$c=$M+7<}ILan<|CYe7R#1BrPUgsrEoR(esrUXY0X{d4w({2!8zxTu7(~g&fbclWLj1^&t4zW90bf?M zDzbRpCdS!@HNASMuFXN1hmX={uRQ}Z7WL&_|8tPv zq=8t;GyYTtz38LYEP}9AE;UK*$fGvRAL8~ zaE@2B1|e*It#u}{Tv?8gQts^IvqqqgbYypEyjnGO%;*Vn!y2~e$f81q&(VhIt(r0g z-d!{^<#uMEJRw%fboHST{_Dtt8WfE&Z7i_6bX}GT@uY-jZP-ID#@pVCx4*59Ziob- zFsP$Sb(fMd;om90T||Oi(=Bjd4X5)sUT>^OUxVNH!Afj6y(dwl$C&71u-p7v!rdnG zZo}lAoCZ5M0^Qs(uRsr^|C(-EssYjQIC}u$KX4GIo0MtH~6;3^+ z(@oC-St_vTCSeZdnx-fylg|x$9%;6PmO!Tu|B!;^un`@y61|O!E$O!;J@Nk}#a&3% z5LHMn^QT-l67`n}IhkhxoEap@*i0z#1G`agLB4Muu3RF8^g*hN-%i_NeDa+0T<;(g zola?!N_)QinlOP4guVEC8t2U^R|SY37Svqnea5zB+(@;Nd>Es0qCie6R1rTZ+s z^D3HCgu?GRgvO)(3yNIwRl%JZ&dsgozq2c$Jd&X}Nd_*Yj-`$#l$4k^^Vnjbi*zxY zsyaV9l%+tc!Q1E`0im%tZyg&oLZf;twP3a5Iil6uBA5W^HP_tK)e1!G2#S67i?-Vk zNDH@?T%>+~pKC17&8!54s@=w#%+W%_<*!#EZhQ^KyKSEAt%3VRAvessSu-UuJp8KH zA8*oblvsA^aXsGZirR3*bdQq@^?nOxQ2NUm( z&e0~3HhEha_5m3mxRq5^c;+33K8V&V0nl+y6u z>kAPJxyowUBosQj_S+8Jl|EwyF7fChK0Xgyq%W^pa`rRcfu?9=6hfBkJb%V@1a4T= zf|;`2o*`&>Bk&v`donn$H2XP%OQ1r0^eE@SLp4>^t4#7CC`XC+m0$qqm(%L%6X&<1$(JuSTzR{ zQ{xdV3Wpn9PrE3&?n%E=kIr{a|M6|p8;h)%SW$uy8Y+}&JP6`Qdn3z5xuIPZTq~%8I~|`Yj4GI zsF413NJ=$*vprfVm7Yw%2pOA{)d9sQ9ds=fI>3c^6FNFY`H?Q*Eoa!+%RIT1mIx%; zx_LcO_eW8L?koGbYq1&l?rX=Nm{DJJ0baaWDU7)HF(HAXiB&S>ZY`6bXBARN?C>m1 z*T9(WFYoUXKs09l{vt`y-JtE`hI*;JZ*X-Vp_pL(#ig@}5$IE*h0yF{PYRz)JX>^U zu501Sf6|w>TdZE1>moV)Di0edVyRJ@49ER$rU8TM+`f%OSv-T}nl1YLOxLQW^z>c{ zx5%7Pwb_HJ;xla>b?>8xlw-A$a!;+C(|%7BoXk%HZV^o>h0fEGe1I=Kei^QIo4mW3 zDJ$CZ%5^6j@6uaazBpD)9%=g>rqP=EY3bz*oQ=t&+l>p}w}~>31J!4NX>NM2>_$2K*Rnk&D!4EPQKp&-zWWS`o741VYplu8##eNj zq@>~flK7ra$vGy(A{9Rtk#nD45V_MOVw^f>n2-Ofu~NmM%HJDvzt3g72J7o!?<*r- zPSD#637KT{8pu8KvmIfO9s^I4{L4yn04Oe%YgLu|0OsipYLn8~TTo|gW z$F~>24?XkkUQAzf72aGq{qM~kwsmT{Ursr&gYwmE6t-e6Thq156L*u;+XlC~Or(U{ zPA6I5BKNlHC43i{DbX6A7Nzo=D3u_P?RqSUn`Bh1U-{REG}Y54J6Cz}178VDSOwuT zw8jaJgd8bRsPvjNyu^{)NXGW?(@-Zra2ZRw+@k5XXfh>USk#+{>DlXSiRDA_Sp(iy)>l>3+#+PSey70kx zfscw0Q=M|_M#>~cAD;nN2)$zaI|vmSWAA>s8F7nVl{udhg=QD7&1W{A*?!64P?oxP z+ZowL5tfz9q%6Yabi-QPwB26a(Bo`+!cg$>HMrEsMLk8}UVJ2Bo$(4{BIS#9<1@_5 zsjEcj14lr~l=X0MXMQnFBU4&ytWie5QJJ^476h)!J=trruYv4G-zE~=UHF^&LOuEm zwd<*$QeWCg+1cZ|LB+k16WE+*@vyO5o6jO8!e$VMRz1E{1VN3KVi3-}D4O-&_G$(( zP?z-g1xjZ98kmSU6PB|D94ncq>=oyQ*+-Hu_Z~&Q>TS6Y@&S@M@^JxM2Wc$jCp{dQ zNb~*xTWH7CoYWuSl8q~8eW%w8-Bz=T1vkg;Pt?K<)s|TEuqs=Mv#rF^Bqp11&g$AB zMI-PtrA2nWGuR$l!~8}5m*q$=@o?C>ksHsih=OyREF{-4HfZQphQ)pxfq^MQ{Xm~$ zrol)o?w1LU39ak{4>d>rZZO!yQbjaJ6IVFZXC&M6)I1jCb%gaSOIOJX17+cQ&sXn# zVYkGkqyPBDkE=-~uT%j_X;O#UHz^j;bU~3kr|YoYi83i_fl(Y=W=AgT$_Lw5L=WJ4 zWA;&F`+Z*yM-?I2Hsv4>p1-t^pJ=UXmpt=vzi|56)9!*~)44Z~=;n)Mdj~qtTLP=6 z#t$W%oBRS{+D_QsCO(Rp+w+3SlK#4-=Y)L<$!1Z{M@U$Bi+U=>u{-4oLw1Tt=4j<+ zBl*%n-$%4y#Y!QUa>kij*=@Er5~9rN+4^Vf@wZFLH3|eifL9@go~&DT)hbiDgGmCUxY{FpjQx+ZI*uGFzA=W$-4S?(z67b!I{f^W^6p)(^ z7yKF4!$>8J#bS2 zv4N%4gxNMHln)si2w@hUv6&3>oQh4h7%~-j&eT1uc-jTE{8lE&-w|k>uJ#Cw;tW!U z{C|v~GdgjxZvxDJV5au|HB8-O(qLXTHwdHSCobiOez8|aZcH4 zkBcirdnEMPn?HsUxNnE1?5qk8Qw1f4mPYZBayXS`v6RyppQWK^j z1=KB#C^KlOW|wN1$arMo+++)55iprB$0gJ&ZexWd_C^U8f6T-i5l zfN8i_i(t&Ou0nn<&w0ZQSGKpl+b>zzRJ-P(1NExG;_bV3TC`;YaJT)+%}5As8UQ(K zmX@4AZXR>(?`vn{migT6ROc5k&Iv4eK?Rw*cF2Y_i(r|Je*5W|!UGg+X> zcRE^;9i+>W1g9i)&*JIhWkl0&ol%TNgs~8*8f9KqMM4fA{XXND+O3$ zSYuc~6P=%zs2=jI6Kj2y9D_oQh1*imGO`!&T^7-fA21&7IYjmVnF(qPW9#!m$O@)Z zXy*9HnpE;TMmEDqi@53x2-?c#3B6@M}PZ{+Ljj) zTPxt1#&YTLK^!uR7_Dx>mZ(=$IM+GTHa7dBRTJ$JLty2u6^dVK-_#Zi@g!ktDwhB0Ku%vet?M@6xfr31NxVxKHrh9ZPkjs}L)OX;vm823N_$;Ry=+w>qYY1Vgq6CvD% zk_s~yZ}M(F-m&k=7g;a#lM|Gq4ysj+^?rv$X|J%B{$1_@3Qe)!3em`*K=8G zS=f7~kYA4D@(-5kKj+%L6q0P`E~{F|T}=p{A03vH%nwWB6t6=H{p6!}r8W|jfpAj~ z#Sqnm1^4L#Nb#=&)Dq+u3R3B2rhgU9+~1R|Eh7@Ox7WBsHP*?#dTWj*Tp^ysz*_J#%u1t{py=A+u;6VY7T0 z4HhZ!RxLc~gFi0ib{G_=T#a(IA5DIl%5$|BOU8=5o#90h4CIzaEnx;%VV3t(YSqho zdzX}Jn?b@{G!VA)jx14*?l(go4b%~X@AYnOF;Ilw@UFZ;qjP1;ph~$OBQh;|v;-qs zg7)s!jg{^?8)j62zd0Gp|1dt_RpAS7LQovZ?JwjiK-Tyx-x!p3Z+ygq8E1{_HMmCD zV)VFNR{6QD=1J+9uj;ZWF-Q}3u}wELR#HR;Z>bP&>@gZ9PFxhnEXu9?5*STk^pBze z^fXaUZ82&=$nv~3BZ@(CBOhGOHl$xUBWa=-Iebrtkb6NThQX*f=5}kyB*s-Tv#!0m zH)h!&%O7XcrX@B{SZ|9ca%e(>jdKmHB+<85Uh07K;li;2XJk#U((`e2PDu5sAiK#1 zqWp1=<>^$_JLo2uw=N{&r=QDwnE=^w9y^V6$a)d$HfCyP23&=(EG(Ko+X7T`U>>v^ zkfKMWZHF`F>wlldrh#X*T4(i#6@>hS^IytzJ9)I&Vhb>RKwzcKJw2)eXX!=vfjFrR z3~lz3*45Ic3blQHVU+yP@wBmJS|jr~NKO+NqfC_Bd%GYnrX&Epwmt63gI>X zPT=4lfH*Ec5kNZhQh=j}!1ocbC$S$}!N7crhfD9q52}vhQexH)_cA;Scrmh+L=}@! z-)A(b;`C`QY#mcGEScBMQXapevg|Gc;58C1)?YpdOI~(*Z(i9HXNX*p8aybL@ObH; zMb{HZl&qb$%~PA4yZ-3{;O@J3eEqZ~)k!<@Pk-OVx7?l%^h%;sq(Zsqyp$bA(sxAu z_C1DalVPtB+n3j2B>hf@2!{oCYuP*tM|Jwqhi=~w4ACA_9GgUrJ{qblrbP&A4jDds zXvou)T=fQfVBvT4B9}xc(rqF{4D#Cx*bK}@9DFaq5+}qJV+uJ#ZMkeN4|ip*z2H|l zc6dlZ!MuvNrp0>4OL8LCiTeIXktoGy&hY zcXmRyb+$45ZGm9^q!n4&!P_-6fN834rU45hB{vtL5&@_rKwbQcJAydp*WvPyO%2U# zpyHd@Sl#Ry%fQq*fB;?p8~{pV;Y?Tm4vz=#?SSBJPx;sU!ZiSJZvY<;EeDYzp)3I$ z6hv7S{2PKW`DHKjF5qhEc>eNdWOS~7Rd8|pU;0vW9{gyN{yv+j*M0k^%5iLnHfV#3aG?&x{^^{mrww00Yh7 zYX8xG@wI%%{oT1TvA;2}hwP}ku$;g)NZ7$v-6PXy)&=M16n1&WL@;Eh&14} zGBJPq#C+w4X8j@O>eI~!`~6wUeHMfabL`^$8e4LOatQjNzO@85FD}-(p6PV#*ANcw zgJ}bg?J5KQ_Y=0uYUD&L9$}hEOZ`@;I@%G9FOtYPTHfsh0OY}L;Bzq{kf@o5#Hw^g z-~B;o1N+#mVtx=4v41rHrta>0|L>cYGqym*KqP<-?EU6~Hq2G>?_JDD7?AXn&@ zFWdcB%}+^Dfc|Xu(~n#`Jc!X-F#ZtgnC0|{5V011GL->S2EPzopO~}|A95!k9hvOa zk&P?~ROr!!`^~Sux48vtpZ<)kN_=h#N&%#0#}Wd9-ps~?F@5VUYO*vinFs38j_}Gz z&aFn8_K_Z>Y*IGYbK1y$VG|2=WaIZbR3C|L(*=t+7*ooHHWd=idym)QiLA-9ZFr(l z6nKkj!ltQJzWbl#ib#A?E4HgQY`IAy7q&xxqFsE&8`9q}n_)p*UwwmmU+BTBOI%)V zL9`D;iPUPH(2^>mVTEYLoPV8OyW+b}Z|kRO?LJmH%}ISuwr^8ar@zRm**!*^_c<76 zA7wG;_R9h%F9QTG?S^S#D*``zA%4KfLgY2YkUoa+@uSjC2VJhO_|RTZx$`8cgRx<{ zqs+3sj!z20AjSnVF5?DJ$||>X&uQhzk4{l~V5`4B$idwT&p|-=?M+;-ok5D}XQ?eq zD>N{WO2d6c0H2Cpg(D)eV_e!6I@^;`%6GKcI`_6ka$)Z~&X32XR!g;__ESrB-TWCQ z_6R6?-{Io%dlP>NLe+gMXDtw&?=XZX!{LRQ>or&)W`ZWx%={cLRY%@{cm`NW{&oR_ z3w?oE>TQu6^8QOhqnOHwLXfION=l?VdXjZ-lPa&DrWO=}%W3*EnK*1+uAa^z%Ek7S z1d6)uUCpNTdq?-dQ(V_2sGe>JlR5|5;9{vUBynrL&^l_TlyXW)sJVB5+!0{zY$A>` zq*jKTR?$n4BsAyMuPk~4#xd1JLB|0W;87ffVQz{8l&JJw{HBpY*arPOgfn6#I8ULI zOzFyUZPca!u_WRYk*l;FCIx8OzW41|9V*C+7)T}l{b`u5J-U3{nyW>Pty@pmT1rQg=_JyNi|RZerI{k)hJO!q0v1}RZ8_a}z_UVod& zbh|D9C9+Z^A2{+0U$j7L9T6;l$kNg*2B1H-c_#1d^zYJ>|24)NsjUvZ_r1X{2O<9l{Gb^)aRu zwb*QLckjMvJ|D)Uv9Lu78c*aGqU+q|3Ft0~qKf=V4-G2%-)PC2pmN5nFVqTa`L0c( zt!EP?TNam@=?gkAx(?;zD1z!hCEUlVR7>J#k_<*gw&#B&-*Q0C)^UDG_b@3vf%T;F zoS%580$G#IzW>t3bN4v2_}Xtr=QECT$0HegBtq@P{iy1E*CvTbpIS*z5zK@JoEU5$ zz5t{rqXMKqb)$Ay|G_P2x>UZ*RXG~HNlOlP4+rHG4WDAuW6viV7J|p{#AEmfo0@Jx zXD1`RcM2R#&AO^yvvcp&^Nj?ULd>-D3`$4ImnW*B z+^FI4G$>c6&*I1+}mLh!3jEy^c6Jw*&Ez3&o%cS~J3N2BX6H7dC)T-Cp;GF12A>wQ{=ert4w3L5=ndo(9DJkYggKW(y(aW8G|8RjV{ zx8neG0MAUoo`|@S1sM%5p>8d1w;-m}q`0fuZDo{+W`C_lNn_Uqnrx}hR+!;`nvWa* zQ;a6%aVLjVYWk4w$xRkzJz+CaV&kads4U73se7W#euLuOYUtT;zU3fe!VZ7*l0Fa7B-=1o`LVAM-#o_cAk*cfw= zrVoF0kI6lpwEIHo;iej;Zk%0Bq!Rl-TTHXQvB3HMgrkG#+y5(4-+kgLPXxop=9){K za?a>>Pqf^BSg^rSWmQt_vH+o28(ml8&^p&@@qWOm%GxZN`p*W?9P!7yDR! zy!EzubN*pnhtG4`T1tbuV11P}M*M>oc40he2DwT6%jEJ{-CRJVB8=4xa3U?SLf+Xd zIlU+UhFbDV0I$tu-WlhNT-sDVPuZ7{W+6VE2TBSF&oC62ulUeXd7D7HRQA+Z`MS)w z9>k(&Lhz*&zhJ?TtL}n7h0I4K0i$Me7Zt>_I22rr8#;2w^PVFo3OysATa;o=8ZtIg zgAesS>xscvD|0sTqzqG=CL9aISkz0Y?Yjj?ZFQt~kl9+rl%tFZOBIYSCI9*j({uD? z&Q^5|Va!@;8} zR+6_@7BX^2@YOwst#8 zvTNfZS8C*k;iHF&WGaqJ?y=+tb>N7nB+o)->=hAliDV!IjDA>hbA%Tt_WtUaBp{!_ zmYM#eX8#+S@}Kv*uVS!)U1i|4vAC3CZb2lbc8faeUrZH9*x__fg#{;Y=HrOBme&Vt z7j&3-8{)geszhAEFD=Li9Nl15n2n$7ndf_w?VQ6{7Ssk%0A24aR}`ctzky`HUq@d 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 literal 0 HcmV?d00001 diff --git a/rzk/doc/Syntax.tex b/rzk/doc/Syntax.tex new file mode 100644 index 000000000..403e52ad4 --- /dev/null +++ b/rzk/doc/Syntax.tex @@ -0,0 +1,22 @@ +%% File generated by the BNF Converter (bnfc 2.9.4.1). + +\batchmode + +\documentclass[a4paper,11pt]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\setlength{\parindent}{0mm} +\setlength{\parskip}{1mm} + +\title{The Language Syntax} +\author{BNF-converter} + +\begin{document} +\maketitle + + + + + +\end{document} + diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs index 5d808ba96..5d2edfc69 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokenize.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -18,22 +18,30 @@ tokenizeLanguageDecl _ = [] tokenizeCommand :: Command -> [VSToken] tokenizeCommand command = case command of - CommandSetOption{} -> [] -- FIXME: tokenize - CommandUnsetOption{} -> [] -- FIXME: tokenize - CommandCheck{} -> [] -- FIXME: tokenize - CommandCompute{} -> [] -- FIXME: tokenize - CommandComputeNF{} -> [] -- FIXME: tokenize - CommandComputeWHNF{} -> [] -- FIXME: tokenize - - CommandPostulate{} -> [] -- FIXME: tokenize + 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{} -> [] -- FIXME: tokenize - CommandSection{} -> [] -- FIXME: tokenize + 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 @@ -53,17 +61,19 @@ tokenizePattern = \case PatternPair _loc l r -> foldMap tokenizePattern [l, r] tokenizeTope :: Term -> [VSToken] -tokenizeTope = tokenizeTerm' vs_label +tokenizeTope = tokenizeTerm' (Just vs_string) tokenizeTerm :: Term -> [VSToken] -tokenizeTerm = tokenizeTerm' vs_variable +tokenizeTerm = tokenizeTerm' Nothing -tokenizeTerm' :: VSTokenType -> Term -> [VSToken] +tokenizeTerm' :: Maybe VSTokenType -> Term -> [VSToken] tokenizeTerm' varTokenType = go where go term = case term of Hole{} -> [] -- FIXME - Var{} -> mkToken term varTokenType [] + 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] @@ -107,8 +117,12 @@ tokenizeTerm' varTokenType = go , go body ] Pair _loc l r -> foldMap go [l, r] - First _loc t -> go t - Second _loc t -> go t + 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 ] Refl{} -> mkToken term vs_function [vs_defaultLibrary] ReflTerm loc x -> concat From 1d3d939601a8afd921a717995d137b84747d3939 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Tue, 20 Jun 2023 11:22:33 +0300 Subject: [PATCH 10/13] Fix higlighting Sigmas See https://github.com/fizruk/vscode-rzk/issues/11 --- rzk/src/Language/Rzk/VSCode/Tokenize.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs index 5d2edfc69..bd777365e 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokenize.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -101,8 +101,9 @@ tokenizeTerm' varTokenType = go TypeFun _loc paramDecl ret -> concat [ tokenizeParamDecl paramDecl , go ret ] - TypeSigma _loc pat a b -> concat - [ tokenizePattern pat + 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] From ede02611bcbc53f58e4e38e31a8840468081aece Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Tue, 20 Jun 2023 12:36:48 +0300 Subject: [PATCH 11/13] Unit type and fix for vars with location info --- rzk/src/Language/Rzk/Free/Syntax.hs | 75 +- rzk/src/Language/Rzk/Syntax.cf | 3 + rzk/src/Language/Rzk/Syntax/Abs.hs | 6 + rzk/src/Language/Rzk/Syntax/Doc.txt | 10 +- rzk/src/Language/Rzk/Syntax/Layout.hs | 4 +- rzk/src/Language/Rzk/Syntax/Lex.hs | 64 +- rzk/src/Language/Rzk/Syntax/Lex.x | 64 +- rzk/src/Language/Rzk/Syntax/Par.hs | 314 +- rzk/src/Language/Rzk/Syntax/Par.info | 7290 ++++++++++++----------- rzk/src/Language/Rzk/Syntax/Par.y | 49 +- rzk/src/Language/Rzk/Syntax/Print.hs | 3 + rzk/src/Language/Rzk/Syntax/Skel.hs | 3 + rzk/src/Language/Rzk/VSCode/Tokenize.hs | 10 +- rzk/src/Rzk/TypeCheck.hs | 154 +- 14 files changed, 4222 insertions(+), 3827 deletions(-) diff --git a/rzk/src/Language/Rzk/Free/Syntax.hs b/rzk/src/Language/Rzk/Free/Syntax.hs index 9a380f24d..05d46dc96 100644 --- a/rzk/src/Language/Rzk/Free/Syntax.hs +++ b/rzk/src/Language/Rzk/Free/Syntax.hs @@ -14,6 +14,8 @@ module Language.Rzk.Free.Syntax where import Data.Bifunctor.TH import Data.Char (chr, ord) import Data.Coerce +import Data.Function (on) +import Data.Functor (void) import Data.List (nub, (\\)) import Data.String @@ -22,6 +24,14 @@ import Free.Scoped.TH import qualified Language.Rzk.Syntax as Rzk +newtype VarIdent = VarIdent { getVarIdent :: Rzk.VarIdent } + +instance Eq VarIdent where + (==) = (==) `on` (void . getVarIdent) + +instance IsString VarIdent where + fromString s = VarIdent (Rzk.VarIdent Nothing (fromString s)) + data TermF scope term = UniverseF | UniverseCubeF @@ -40,16 +50,18 @@ data TermF scope term | 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) @@ -89,8 +101,8 @@ invalidateWHNF = transFS $ \(AnnF info f) -> 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 @@ -118,24 +130,25 @@ freeVarsT typeOfVar t = go [] (partialFreeVarsT t) 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 @@ -156,6 +169,8 @@ toTerm bvars = go 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) @@ -196,20 +211,20 @@ toTerm bvars = go 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' x used xs = fromTermWith' (x : used) xs . (>>= f) +fromScope' :: Rzk.VarIdent -> [VarIdent] -> [VarIdent] -> Scope Term VarIdent -> Rzk.Term +fromScope' x used xs = fromTermWith' (VarIdent x : used) xs . (>>= fmap VarIdent . f . fmap getVarIdent) 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 = @@ -221,8 +236,10 @@ fromTermWith' used vars = go z' = refreshVar used z loc = Nothing + + go :: Term' -> Rzk.Term go = \case - Pure z -> Rzk.Var loc z + Pure z -> Rzk.Var loc (getVarIdent z) Universe -> Rzk.Universe loc UniverseCube -> Rzk.UniverseCube loc @@ -242,28 +259,30 @@ fromTermWith' used vars = go RecBottom -> Rzk.RecBottom loc RecOr rs -> Rzk.RecOr loc [ Rzk.Restriction loc (go tope) (go term) | (tope, term) <- rs ] - TypeFun z arg Nothing ret -> withFresh z $ \(x, xs) -> + TypeFun z arg Nothing ret -> withFresh z $ \(VarIdent x, xs) -> Rzk.TypeFun loc (Rzk.ParamVarType loc (Rzk.PatternVar loc x) (go arg)) (fromScope' x used xs ret) - TypeFun z arg (Just tope) ret -> withFresh z $ \(x, xs) -> + TypeFun z arg (Just tope) ret -> withFresh z $ \(VarIdent x, xs) -> Rzk.TypeFun loc (Rzk.ParamVarShape loc (Rzk.PatternVar loc x) (go arg) (fromScope' x used xs tope)) (fromScope' x used xs ret) - TypeSigma z a b -> withFresh z $ \(x, xs) -> + TypeSigma z a b -> withFresh z $ \(VarIdent x, xs) -> Rzk.TypeSigma loc (Rzk.PatternVar loc 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) -> + Lambda z Nothing scope -> withFresh z $ \(VarIdent x, xs) -> Rzk.Lambda loc [Rzk.ParamPattern loc (Rzk.PatternVar loc x)] (fromScope' x used xs scope) - Lambda z (Just (ty, Nothing)) scope -> withFresh z $ \(x, xs) -> + Lambda z (Just (ty, Nothing)) scope -> withFresh z $ \(VarIdent x, xs) -> Rzk.Lambda loc [Rzk.ParamPatternType loc [Rzk.PatternVar loc x] (go ty)] (fromScope' x used xs scope) - Lambda z (Just (cube, Just tope)) scope -> withFresh z $ \(x, xs) -> + Lambda z (Just (cube, Just tope)) scope -> withFresh z $ \(VarIdent x, xs) -> Rzk.Lambda loc [Rzk.ParamPatternShape loc (Rzk.PatternVar loc 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) @@ -272,9 +291,9 @@ fromTermWith' used vars = go TypeRestricted ty rs -> Rzk.TypeRestricted loc (go ty) (map (\(tope, term) -> (Rzk.Restriction loc (go tope) (go term))) rs) -defaultVarIdents :: [Rzk.VarIdent] +defaultVarIdents :: [VarIdent] defaultVarIdents = - [ Rzk.VarIdent Nothing (Rzk.VarIdentToken name) + [ VarIdent (Rzk.VarIdent Nothing (Rzk.VarIdentToken name)) | n <- [1..] , let name = "x" <> map digitToSub (show n) ] where @@ -285,14 +304,14 @@ defaultVarIdents = -- -- >>> 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 (incVarIdentIndex x) | otherwise = x -incVarIdentIndex :: Rzk.VarIdent -> Rzk.VarIdent -incVarIdentIndex (Rzk.VarIdent loc token) = - Rzk.VarIdent loc (coerce incIndex token) +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/rzk/src/Language/Rzk/Syntax.cf b/rzk/src/Language/Rzk/Syntax.cf index 2c685f1ef..74a7babea 100644 --- a/rzk/src/Language/Rzk/Syntax.cf +++ b/rzk/src/Language/Rzk/Syntax.cf @@ -57,6 +57,7 @@ SomeSectionName. SectionName ::= VarIdent ; -- Patterns PatternWildcard. Pattern ::= "_" ; +PatternUnit. Pattern ::= "unit" ; PatternVar. Pattern ::= VarIdent ; PatternPair. Pattern ::= "(" Pattern "," Pattern ")" ; separator nonempty Pattern "" ; @@ -106,6 +107,7 @@ define recOr psi phi a b = RecOr [ Restriction psi a, Restriction phi b ] ; -- Types TypeFun. Term1 ::= ParamDecl "->" Term1 ; TypeSigma. Term1 ::= "Sigma" "(" Pattern ":" Term ")" "," Term1 ; +TypeUnit. Term1 ::= "Unit" ; TypeId. Term1 ::= Term2 "=_{" Term "}" Term2 ; TypeIdSimple. Term1 ::= Term2 "=" Term2 ; TypeRestricted. Term6 ::= Term6 "[" [Restriction] "]" ; @@ -117,6 +119,7 @@ Lambda. Term1 ::= "\\" [Param] "->" Term1 ; Pair. Term7 ::= "(" Term "," Term ")" ; First. Term6 ::= "first" Term7 ; Second. Term6 ::= "second" Term7 ; +Unit. Term7 ::= "unit" ; Refl. Term7 ::= "refl"; ReflTerm. Term7 ::= "refl_{" Term "}" ; ReflTermType. Term7 ::= "refl_{" Term ":" Term "}" ; diff --git a/rzk/src/Language/Rzk/Syntax/Abs.hs b/rzk/src/Language/Rzk/Syntax/Abs.hs index ec613a673..613883dba 100644 --- a/rzk/src/Language/Rzk/Syntax/Abs.hs +++ b/rzk/src/Language/Rzk/Syntax/Abs.hs @@ -69,6 +69,7 @@ data SectionName' a type Pattern = Pattern' BNFC'Position data Pattern' a = PatternWildcard a + | 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) @@ -113,6 +114,7 @@ data Term' a | 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] @@ -121,6 +123,7 @@ data Term' a | 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) @@ -238,6 +241,7 @@ instance HasPosition SectionName where instance HasPosition Pattern where hasPosition = \case PatternWildcard p -> p + PatternUnit p -> p PatternVar p _ -> p PatternPair p _ _ -> p @@ -279,6 +283,7 @@ instance HasPosition Term where RecOr p _ -> p TypeFun p _ _ -> p TypeSigma p _ _ _ -> p + TypeUnit p -> p TypeId p _ _ _ -> p TypeIdSimple p _ _ -> p TypeRestricted p _ _ -> p @@ -287,6 +292,7 @@ instance HasPosition Term where Pair p _ _ -> p First p _ -> p Second p _ -> p + Unit p -> p Refl p -> p ReflTerm p _ -> p ReflTermType p _ _ -> p diff --git a/rzk/src/Language/Rzk/Syntax/Doc.txt b/rzk/src/Language/Rzk/Syntax/Doc.txt index c4d100d1d..5d1698497 100644 --- a/rzk/src/Language/Rzk/Syntax/Doc.txt +++ b/rzk/src/Language/Rzk/Syntax/Doc.txt @@ -33,9 +33,10 @@ The set of reserved words is the set of terminals appearing in the grammar. Thos The reserved words used in Syntax are the following: | ``BOT`` | ``CUBE`` | ``Sigma`` | ``TOP`` - | ``TOPE`` | ``U`` | ``as`` | ``first`` - | ``idJ`` | ``recBOT`` | ``recOR`` | ``refl`` - | ``second`` | ``uses`` | ``Σ`` | + | ``TOPE`` | ``U`` | ``Unit`` | ``as`` + | ``first`` | ``idJ`` | ``recBOT`` | ``recOR`` + | ``refl`` | ``second`` | ``unit`` | ``uses`` + | ``Σ`` | | | The symbols used in Syntax are the following: | #lang | ; | rzk-1 | #set-option @@ -90,6 +91,7 @@ All other symbols are terminals. | //SectionName// | -> | **eps** | | **|** | //VarIdent// | //Pattern// | -> | ``_`` + | | **|** | ``unit`` | | **|** | //VarIdent// | | **|** | ``(`` //Pattern// ``,`` //Pattern// ``)`` | //[Pattern]// | -> | //Pattern// @@ -123,6 +125,7 @@ All other symbols are terminals. | | **|** | ``recOR`` ``(`` //Term// ``,`` //Term// ``,`` //Term// ``,`` //Term// ``)`` | | **|** | ``<`` //ParamDecl// ``->`` //Term// ``>`` | | **|** | ``(`` //Term// ``,`` //Term// ``)`` + | | **|** | ``unit`` | | **|** | ``refl`` | | **|** | ``refl_{`` //Term// ``}`` | | **|** | ``refl_{`` //Term// ``:`` //Term// ``}`` @@ -141,6 +144,7 @@ All other symbols are terminals. | | **|** | //Term3// | //Term1// | -> | //ParamDecl// ``->`` //Term1// | | **|** | ``Sigma`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// + | | **|** | ``Unit`` | | **|** | //Term2// ``=_{`` //Term// ``}`` //Term2// | | **|** | //Term2// ``=`` //Term2// | | **|** | ``\`` //[Param]// ``->`` //Term1// diff --git a/rzk/src/Language/Rzk/Syntax/Layout.hs b/rzk/src/Language/Rzk/Syntax/Layout.hs index 956008d03..72a94fbf9 100644 --- a/rzk/src/Language/Rzk/Syntax/Layout.hs +++ b/rzk/src/Language/Rzk/Syntax/Layout.hs @@ -42,11 +42,11 @@ layoutSep = List.nub $ TokSymbol ";" 29 : map (delimSep . snd) layoutWords 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/rzk/src/Language/Rzk/Syntax/Lex.hs b/rzk/src/Language/Rzk/Syntax/Lex.hs index 0b112257c..a974d3856 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.hs +++ b/rzk/src/Language/Rzk/Syntax/Lex.hs @@ -321,38 +321,38 @@ eitherResIdent tv s = treeFind resWords -- | 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/rzk/src/Language/Rzk/Syntax/Lex.x b/rzk/src/Language/Rzk/Syntax/Lex.x index 640c93b85..de16ac7e6 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.x +++ b/rzk/src/Language/Rzk/Syntax/Lex.x @@ -166,38 +166,38 @@ eitherResIdent tv s = treeFind resWords -- | 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/rzk/src/Language/Rzk/Syntax/Par.hs b/rzk/src/Language/Rzk/Syntax/Par.hs index c83be91fd..c5e7af57f 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.hs +++ b/rzk/src/Language/Rzk/Syntax/Par.hs @@ -267,40 +267,40 @@ happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x 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\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\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfc\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\x01\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\x40\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x40\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x02\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\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\x20\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\x04\x80\x02\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\x10\x00\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\x00\x90\x78\x04\x7b\xe0\x03\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\x89\x47\xf0\x4b\xbf\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x03\xbf\x02\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\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\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x3e\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\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\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x3e\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\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\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\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x00\x00\x89\x47\xb0\x07\x3e\x00\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\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\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\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\x89\x47\xb0\x07\x3e\x00\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\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\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\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\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\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\x00\x00\x00\x01\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\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x02\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\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\x10\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\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\x00\x40\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\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\x08\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\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\x00\x00\x00\x00\x10\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\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\x80\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\xe0\xcf\x0f\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\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x40\x00\x00\x02\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\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x01\x00\x00\x40\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x40\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\x08\x00\x00\x00\x10\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\x89\x47\xf0\x0b\xbf\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\x20\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\x20\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\x08\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\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\xbf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\x40\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\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x08\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\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\x00\x10\x00\x00\x00\x00\x08\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\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\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\x89\x47\xf0\x0b\xbf\xa2\x06\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\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\x00\x20\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\x40\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\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\x89\x47\xf0\x0b\xbf\xa2\x06\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\x08\x00\x40\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x08\x00\x40\x00\x02\x02\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\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\x89\x47\xf0\x0b\xbf\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\x00\x00\x00\x00\x00\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\x08\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\x08\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\x08\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\x40\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\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\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\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\x89\x47\xf0\x0b\xbf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\xa2\x06\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\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x02\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\x20\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\x02\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\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\xa2\x06\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\x10\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\x10\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\x10\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\x10\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\x04\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\x89\x47\xf0\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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\x10\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\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x0b\xbf\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\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\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\x00\x00\x10\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\x89\x47\xf0\x0b\xbf\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\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\x00\x00\x00\x00\x00\x00\x00\x00\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\x0b\xbf\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\x89\x47\xf0\x0b\xbf\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"# +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\x3b\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\x00\x9f\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x0e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x80\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\x0e\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\x2e\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\x03\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\x00\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\x0e\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\x2e\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\x0b\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\xbb\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\x3b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x0e\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\x3b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x0e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x80\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\xbb\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\x3b\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'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'uses'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"] - bit_start = st Prelude.* 124 - bit_end = (st Prelude.+ 1) Prelude.* 124 + 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..123] + 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# "\xfa\xff\xca\xff\xd0\xff\xd0\xff\x3d\x00\xeb\xff\xe5\x06\xe5\x06\x24\x00\x28\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\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\xfe\xff\x67\x00\x5f\x00\x3b\x00\x00\x00\xa7\x00\x85\x00\x4a\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x53\x00\x4b\x01\x96\x00\x00\x00\x9d\x00\x00\x00\x47\x00\x4b\x01\x34\x00\xa3\x00\xa6\x00\x00\x00\x00\x00\x78\x00\xf1\xff\x47\x00\x21\x00\x78\x00\x78\x00\x25\x01\x78\x00\x78\x00\xf3\xff\x78\x00\xa9\x00\x83\x00\x8e\x00\x9f\x00\x9f\x00\x25\x01\x00\x00\x00\x00\x53\x00\x9f\x00\x57\x00\x00\x00\x57\x00\x9f\x00\x57\x00\x9f\x00\x57\x00\x9f\x00\x00\x00\x9f\x00\x9f\x00\xc4\x00\xc7\x00\xa4\x00\xb4\x00\x47\x00\x47\x00\x47\x00\x47\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xbf\x00\xbf\x00\xc1\x00\xc1\x00\xc8\x00\xc8\x00\x00\x00\xc8\x00\xdb\x00\xd9\x00\xd0\x00\xd0\x00\xd0\x00\xd0\x00\xe5\x06\x00\x00\x00\x00\x03\x01\x07\x01\x0e\x01\x00\x00\x0c\x01\x1c\x01\x02\x01\x02\x01\x02\x01\x00\x00\x00\x00\x00\x00\x2a\x01\x2b\x01\xe5\x06\xfa\x00\x3d\x01\x00\x00\x39\x01\x0c\x00\x41\x01\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\xff\x00\xff\x00\x47\x00\x18\x00\x57\x00\x57\x00\x44\x01\x57\x00\x00\x00\xec\xff\x47\x00\x47\x00\x00\x00\x55\x01\x57\x00\x56\x01\x51\x01\x52\x01\x47\x00\x47\x00\xff\x00\xff\x00\xff\x00\xff\x00\x47\x00\x47\x00\x00\x00\x00\x00\x5f\x01\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\x53\x01\x47\x00\x66\x01\x75\x01\xf2\xff\x47\x00\x00\x00\xf9\xff\x47\x00\x6c\x01\x90\x01\x00\x00\x47\x00\x70\x01\x00\x00\x25\x01\x00\x00\x00\x00\x92\x01\x47\x00\x57\x00\x47\x00\xaf\x01\x00\x00\x47\x00\x47\x00\x64\x00\x94\x00\x27\x01\xe5\x06\xa3\x01\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x01\xcc\x01\x47\x00\xcd\x01\x47\x00\xd0\x01\x47\x00\x00\x00\x00\x00\x00\x00\xc1\x01\xf5\x01\xf9\x01\x00\x00\xff\x00\xfa\x01\x47\x00\x47\x00\x2a\x00\x47\x00\xd2\x01\x47\x00\x00\x00\x47\x00\x00\x00\x47\x00\xe9\x01\x00\x02\x0f\x02\x00\x00\x00\x00\x00\x00\x10\x02\x18\x02\x1c\x02\x00\x00\x20\x02\x47\x00\x00\x00\x21\x02\x23\x02\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x1b\x02\x47\x00\x2a\x02\x47\x00\x00\x00\x47\x00\x06\x02\x00\x00\x00\x00\x36\x02\x47\x00\x3b\x02\x47\x00\x30\x02\x44\x02\x49\x02\x31\x02\x3e\x02\x47\x00\x47\x00\x69\x02\x47\x00\x6a\x02\x6f\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\x56\x02\x47\x00\x47\x00\x00\x00\x7f\x02\x8d\x02\x00\x00\x00\x00\x47\x00\x8f\x02\x47\x00\x93\x02\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\x03\x00\xce\xff\xdc\xff\xdc\xff\x25\x00\x04\x00\xf9\x06\xf9\x06\x0f\x00\x10\x00\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\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x01\x00\x40\x00\x41\x00\xee\xff\x00\x00\xa4\x00\x6e\x00\x43\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\x81\x00\x00\x00\x88\x00\x00\x00\x4b\x00\x47\x01\x00\x00\x5a\x00\x9a\x00\x9c\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\x89\x00\x93\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\xcc\x00\xcc\x00\xd9\x00\xd9\x00\xda\x00\xda\x00\x00\x00\xda\x00\xee\x00\xf8\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xf9\x06\x00\x00\x00\x00\x23\x01\x26\x01\x28\x01\x00\x00\x2a\x01\x2f\x01\x15\x01\x15\x01\x15\x01\x00\x00\x00\x00\x00\x00\x32\x01\x3d\x01\xf9\x06\x18\x01\x48\x01\x00\x00\x42\x01\x0d\x00\x4d\x01\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\xf9\x00\xf9\x00\x4b\x00\x33\x00\x6a\x00\x6a\x00\x4e\x01\x6a\x00\x00\x00\xea\xff\x4b\x00\x4b\x00\x00\x00\x58\x01\x6a\x00\x5f\x01\x5b\x01\x5d\x01\x4b\x00\x4b\x00\xf9\x00\xf9\x00\xf9\x00\xf9\x00\x4b\x00\x4b\x00\x00\x00\x00\x00\x50\x01\x50\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\x63\x01\x4b\x00\x6f\x01\x73\x01\xfd\xff\x4b\x00\x00\x00\xf9\xff\x4b\x00\x6c\x01\x7d\x01\x00\x00\x4b\x00\x4f\x01\x00\x00\x20\x01\x00\x00\x00\x00\x60\x01\x4b\x00\x6a\x00\x4b\x00\x8f\x01\x00\x00\x4b\x00\x4b\x00\x56\x01\x57\x01\x5a\x01\xf9\x06\x61\x01\x4b\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x01\x89\x01\x4b\x00\x8a\x01\x4b\x00\x8b\x01\x4b\x00\x00\x00\x00\x00\x00\x00\x66\x01\x96\x01\x97\x01\x00\x00\xf9\x00\xb4\x01\x4b\x00\x4b\x00\x3d\x00\x4b\x00\x88\x01\x4b\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\xb1\x01\xc6\x01\xc7\x01\x00\x00\x00\x00\x00\x00\xc8\x01\xcb\x01\xe6\x01\x00\x00\xc9\x01\x4b\x00\x00\x00\xca\x01\xec\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\xc0\x01\x4b\x00\xe2\x01\x4b\x00\x00\x00\x4b\x00\xbc\x01\x00\x00\x00\x00\xe4\x01\x4b\x00\xe5\x01\x4b\x00\xc4\x01\xf1\x01\x01\x02\xe7\x01\xe8\x01\x4b\x00\x4b\x00\x0c\x02\x4b\x00\x12\x02\x14\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\xed\x01\x4b\x00\x4b\x00\x00\x00\x26\x02\x2a\x02\x00\x00\x00\x00\x4b\x00\x32\x02\x4b\x00\x39\x02\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x0b\x00\x6f\x00\x4e\x00\xc2\x00\xa2\x02\xb0\x02\xbb\x02\x2f\x00\xae\x02\x12\x00\xd2\x00\x95\x00\xf4\x06\x43\x01\x70\x06\xe8\x01\x9c\x01\xfc\x00\x77\x06\x59\x06\x74\x01\x23\x06\x93\x05\xb0\x00\x03\x02\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\x1a\x01\x00\x00\x00\x00\x0e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x06\x9e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x29\x02\xb3\x06\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x06\x34\x02\x00\x00\x00\x00\x00\x00\xb8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x06\x00\x00\x00\x00\xbe\x06\x00\x00\x08\x02\x00\x00\x76\x01\x00\x00\x2e\x02\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\x4f\x02\x5a\x02\x75\x02\x80\x02\x92\x00\xd1\x00\x46\x01\xed\x00\xc7\x02\xc8\x02\x5c\x01\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x02\xbc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\xc0\x02\xc4\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\xdf\x01\x00\x00\x00\x00\x00\x00\x2e\x02\x00\x00\x00\x00\x00\x00\xb7\x01\x9b\x02\xc2\x01\xdc\x00\x2a\x06\xa6\x02\x00\x00\x55\x02\x7a\x02\x00\x00\x7b\x02\x00\x00\x00\x00\xdd\x01\xc1\x02\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x8e\x01\x9d\x05\x31\x06\x52\x06\x92\x06\x99\x06\xb7\x05\xc1\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x02\xe7\x02\xf2\x02\x00\x00\xdb\x05\x00\x00\x00\x00\x00\x00\x0d\x03\x00\x00\x00\x00\x18\x03\x00\x00\x00\x00\x00\x00\x33\x03\x00\x00\x00\x00\xb8\x06\x00\x00\x00\x00\x00\x00\x3e\x03\xa1\x02\x59\x03\x00\x00\x00\x00\x64\x03\x7f\x03\xc3\x06\xd0\x06\xd5\x06\x21\x01\xd3\x02\x8a\x03\xa5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x03\x00\x00\xcb\x03\x00\x00\xd6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x06\x00\x00\xf1\x03\xfc\x03\x00\x00\x17\x04\x00\x00\x22\x04\x00\x00\x3d\x04\x00\x00\x48\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x04\x00\x00\x89\x04\x00\x00\x94\x04\x00\x00\xaf\x04\xb9\x01\x00\x00\x00\x00\x00\x00\xba\x04\x00\x00\xd5\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x04\xfb\x04\x00\x00\xe5\x05\x00\x00\x00\x00\x06\x05\x00\x00\xff\x05\x09\x06\x00\x00\x00\x00\x21\x05\x00\x00\x2c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x05\x52\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x78\x05\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x14\x00\xa7\x00\x02\x00\x67\x00\x44\x02\x46\x02\x57\x02\x5d\x00\x41\x02\x54\x00\x94\x02\x22\x02\x08\x07\xc5\x00\x91\x06\x02\x02\xb6\x01\xed\x00\x98\x06\x8a\x06\x6c\x06\x3d\x06\xad\x05\xcd\x06\x1d\x02\x9a\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\xfb\x00\x00\x00\x00\x00\x28\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x22\x01\x00\x00\x00\x00\x00\x00\x00\x00\x43\x02\xd7\x06\x00\x00\x95\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x06\x4e\x02\x00\x00\x00\x00\x00\x00\xde\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x06\x00\x00\x00\x00\x72\x01\x00\x00\x48\x02\x00\x00\x00\x00\xba\x02\x00\x00\x6e\x02\x00\x00\xbb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x69\x02\x74\x02\x8f\x02\x9a\x02\x2a\x00\xde\x00\xf3\x00\x86\x00\x51\x02\x61\x02\xfd\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x66\x02\x67\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x13\x01\x00\x00\x00\x00\x00\x00\x6e\x02\x00\x00\x00\x00\x00\x00\xd1\x01\xb5\x02\xdc\x01\xd2\x06\x44\x06\xc0\x02\x00\x00\xe0\x02\xe1\x02\x00\x00\x06\x03\x00\x00\x00\x00\xf7\x01\xdb\x02\x00\x00\x00\x00\x07\x03\x00\x00\x00\x00\x00\x00\xa8\x01\xb7\x05\x4b\x06\x73\x06\xaf\x06\xb6\x06\xd1\x05\xdb\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x02\x01\x03\x0c\x03\x00\x00\xf5\x05\x00\x00\x00\x00\x00\x00\x27\x03\x00\x00\x00\x00\x32\x03\x00\x00\x00\x00\x00\x00\x4d\x03\x00\x00\x00\x00\xde\x06\x00\x00\x00\x00\x00\x00\x58\x03\x2c\x03\x73\x03\x00\x00\x00\x00\x7e\x03\x99\x03\x87\x01\xe4\x06\xe9\x06\x2b\x01\x77\x02\xa4\x03\xbf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x03\x00\x00\xe5\x03\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x06\x00\x00\x0b\x04\x16\x04\x00\x00\x31\x04\x00\x00\x3c\x04\x00\x00\x57\x04\x00\x00\x62\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x04\x00\x00\xa3\x04\x00\x00\xae\x04\x00\x00\xc9\x04\x9b\x00\x00\x00\x00\x00\x00\x00\xd4\x04\x00\x00\xef\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x04\x15\x05\x00\x00\xff\x05\x00\x00\x00\x00\x20\x05\x00\x00\x19\x06\x23\x06\x00\x00\x00\x00\x3b\x05\x00\x00\x46\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x05\x6c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x05\x00\x00\x92\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\x9f\xff\x9e\xff\x00\x00\x86\xff\x98\xff\x96\xff\x94\xff\x8e\xff\x84\xff\x9b\xff\x83\xff\x00\x00\x00\x00\xae\xff\xac\xff\xaf\xff\xab\xff\xad\xff\x00\x00\xa9\xff\xb1\xff\x00\x00\xaa\xff\xb0\xff\xb2\xff\x00\x00\x00\x00\x00\x00\xa8\xff\x00\x00\xa3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x8e\xff\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xff\xc4\xff\xc0\xff\xbd\xff\x00\x00\x00\x00\xc5\xff\x00\x00\x00\x00\xc2\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\xc1\xff\x00\x00\xc2\xff\x00\x00\xbc\xff\x89\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xff\x00\x00\x00\x00\x00\x00\x88\xff\x00\x00\x00\x00\x00\x00\x9e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x93\xff\x9a\xff\x99\xff\x97\xff\x95\xff\x85\xff\x82\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\x00\x00\x00\x00\x90\xff\x9c\xff\xb3\xff\xb5\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\x8a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\xff\x00\x00\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\xb8\xff\xa5\xff\x00\x00\x00\x00\x00\x00\xa1\xff\x00\x00\x00\x00\xb9\xff\x00\x00\x00\x00\xa4\xff\x91\xff\xbf\xff\xc3\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\xb6\xff\x00\x00\x00\x00\xbe\xff\xcc\xff\x00\x00\xce\xff\x00\x00\xcf\xff\xcd\xff\x8b\xff\x8c\xff\x00\x00\x00\x00\x00\x00\x92\xff\x00\x00\x00\x00\xb7\xff\xa6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xff"# +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\x9d\xff\x9c\xff\x00\x00\x83\xff\x96\xff\x94\xff\x92\xff\x8b\xff\x81\xff\x99\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\x8f\xff\x00\x00\x00\x00\x00\x00\xa7\xff\x00\x00\xa1\xff\x00\x00\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x8b\xff\x00\x00\x00\x00\x99\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\x9c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x91\xff\x98\xff\x97\xff\x95\xff\x93\xff\x82\xff\x7f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x8d\xff\x9a\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\xa4\xff\x00\x00\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\xa3\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\x90\xff\x00\x00\x00\x00\xb6\xff\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\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\x42\x00\x14\x00\x03\x00\x1e\x00\x12\x00\x41\x00\x07\x00\x01\x00\x1b\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x10\x00\x1f\x00\x0c\x00\x21\x00\x14\x00\x36\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\x09\x00\x0a\x00\x2e\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x2b\x00\x22\x00\x10\x00\x2e\x00\x09\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x41\x00\x37\x00\x01\x00\x39\x00\x09\x00\x0a\x00\x05\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x20\x00\x38\x00\x22\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x10\x00\x3a\x00\x1e\x00\x3c\x00\x10\x00\x41\x00\x41\x00\x2f\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x02\x00\x2b\x00\x04\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\x2e\x00\x09\x00\x0a\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x2c\x00\x39\x00\x43\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x01\x00\x41\x00\x1e\x00\x01\x00\x05\x00\x41\x00\x14\x00\x05\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x10\x00\x0d\x00\x0e\x00\x10\x00\x41\x00\x10\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x37\x00\x1b\x00\x39\x00\x01\x00\x02\x00\x10\x00\x04\x00\x05\x00\x10\x00\x10\x00\x41\x00\x42\x00\x13\x00\x43\x00\x15\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x01\x00\x14\x00\x1e\x00\x43\x00\x05\x00\x06\x00\x3b\x00\x1a\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x01\x00\x01\x00\x10\x00\x41\x00\x05\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x0d\x00\x04\x00\x05\x00\x43\x00\x10\x00\x1d\x00\x3e\x00\x13\x00\x43\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x01\x00\x14\x00\x1e\x00\x05\x00\x05\x00\x06\x00\x41\x00\x1a\x00\x24\x00\x25\x00\x0c\x00\x27\x00\x28\x00\x29\x00\x01\x00\x02\x00\x40\x00\x04\x00\x05\x00\x41\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x37\x00\x43\x00\x39\x00\x05\x00\x06\x00\x10\x00\x14\x00\x36\x00\x13\x00\x43\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x01\x00\x02\x00\x1e\x00\x04\x00\x05\x00\x1d\x00\x01\x00\x1b\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x09\x00\x0a\x00\x20\x00\x0d\x00\x14\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x37\x00\x10\x00\x13\x00\x1d\x00\x38\x00\x41\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x1b\x00\x1e\x00\x01\x00\x1b\x00\x1b\x00\x01\x00\x05\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0d\x00\x14\x00\x0f\x00\x10\x00\x1b\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x1b\x00\x01\x00\x13\x00\x1b\x00\x39\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x41\x00\x1e\x00\x15\x00\x15\x00\x1b\x00\x1b\x00\x1b\x00\x24\x00\x25\x00\x12\x00\x27\x00\x28\x00\x29\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x14\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x0d\x00\x04\x00\x05\x00\x11\x00\x1b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x41\x00\x42\x00\x1a\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\x1b\x00\x3c\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\x01\x00\x05\x00\x2d\x00\x11\x00\x05\x00\x06\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\x01\x00\x04\x00\x05\x00\x40\x00\x05\x00\x06\x00\x08\x00\x1b\x00\x1b\x00\x01\x00\x02\x00\x1b\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\x3a\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\x01\x00\x11\x00\x11\x00\x23\x00\x05\x00\x3c\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\x11\x00\x11\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\x11\x00\x11\x00\x05\x00\x11\x00\x01\x00\x02\x00\x1c\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\x1c\x00\x41\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\x01\x00\x1c\x00\x14\x00\x05\x00\x05\x00\x01\x00\x02\x00\x14\x00\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\x3c\x00\x3c\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x3a\x00\x04\x00\x05\x00\x01\x00\x01\x00\x14\x00\x14\x00\x05\x00\x05\x00\x01\x00\x02\x00\x14\x00\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\x3c\x00\x14\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\x01\x00\x01\x00\x14\x00\x11\x00\x05\x00\x05\x00\x01\x00\x02\x00\x07\x00\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\x08\x00\x0b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x09\x00\x04\x00\x05\x00\x00\x00\x00\x00\x0b\x00\x08\x00\x0b\x00\xff\xff\x01\x00\x02\x00\x0b\x00\x04\x00\x05\x00\x11\x00\x00\x00\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\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\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\xff\xff\x05\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x11\x00\xff\xff\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\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\xff\xff\x14\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x01\x00\xff\xff\xff\xff\x14\x00\x05\x00\xff\xff\xff\xff\x0d\x00\x14\x00\x0f\x00\x10\x00\xff\xff\x0d\x00\x01\x00\x0f\x00\x10\x00\xff\xff\x05\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\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\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\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"# +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\x03\x00\x27\x00\x28\x00\x29\x00\x07\x00\x2b\x00\x10\x00\x30\x00\x43\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\x09\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\x37\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\x43\x00\x3b\x00\x01\x00\x16\x00\x2f\x00\x3f\x00\x05\x00\x41\x00\x10\x00\x43\x00\x44\x00\x13\x00\x42\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\x2d\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\x45\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\x10\x00\x2f\x00\x01\x00\x1e\x00\x01\x00\x43\x00\x05\x00\x06\x00\x05\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x0c\x00\x10\x00\x02\x00\x10\x00\x04\x00\x10\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\x45\x00\x2b\x00\x3d\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\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x14\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x3b\x00\x42\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x43\x00\x44\x00\x1e\x00\x05\x00\x06\x00\x09\x00\x0a\x00\x43\x00\x24\x00\x25\x00\x45\x00\x27\x00\x28\x00\x29\x00\x01\x00\x02\x00\x37\x00\x04\x00\x05\x00\x09\x00\x0a\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x09\x00\x0a\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x43\x00\x43\x00\x44\x00\x1e\x00\x45\x00\x1d\x00\x1b\x00\x01\x00\x1b\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x20\x00\x2b\x00\x1d\x00\x1b\x00\x0d\x00\x3a\x00\x0f\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x1b\x00\x39\x00\x13\x00\x43\x00\x14\x00\x1b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x12\x00\x43\x00\x44\x00\x1e\x00\x10\x00\x10\x00\x1b\x00\x1b\x00\x10\x00\x24\x00\x25\x00\x15\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x1b\x00\x01\x00\x15\x00\x1b\x00\x1b\x00\x05\x00\x1b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x1b\x00\x0d\x00\x39\x00\x0f\x00\x10\x00\x14\x00\x11\x00\x2f\x00\x2f\x00\x1b\x00\x01\x00\x2f\x00\x43\x00\x44\x00\x05\x00\x3e\x00\x2e\x00\x39\x00\x39\x00\x3b\x00\x3b\x00\x39\x00\x0d\x00\x3b\x00\x0f\x00\x10\x00\x1b\x00\x43\x00\x43\x00\x01\x00\x02\x00\x43\x00\x04\x00\x05\x00\x11\x00\x08\x00\x3c\x00\x42\x00\x1b\x00\x1b\x00\x1b\x00\x11\x00\x11\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\x11\x00\x3e\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\x23\x00\x04\x00\x05\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x1c\x00\x01\x00\x02\x00\x14\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\x14\x00\x04\x00\x05\x00\x11\x00\x1c\x00\x43\x00\x1c\x00\x1c\x00\x3e\x00\x01\x00\x02\x00\x14\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\x14\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\x3c\x00\x3e\x00\x14\x00\x05\x00\x14\x00\x01\x00\x02\x00\x3e\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\x14\x00\x04\x00\x05\x00\x01\x00\x11\x00\x07\x00\x0b\x00\x05\x00\x08\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\x09\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x08\x00\x04\x00\x05\x00\x01\x00\x0b\x00\x0b\x00\x0b\x00\x05\x00\xff\xff\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\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\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\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\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\x01\x00\x14\x00\x1a\x00\xff\xff\x05\x00\x01\x00\x14\x00\x1a\x00\xff\xff\x05\x00\xff\xff\xff\xff\x0d\x00\x14\x00\x0f\x00\x10\x00\xff\xff\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\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\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\x47\x00\xb4\x00\x79\x00\x2c\x00\x9c\x00\xfb\x00\xc6\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x44\x00\xd5\x00\x7d\x00\x31\x00\x9c\x00\x43\x00\x7e\x00\x1c\x00\xf9\x00\x32\x00\x33\x00\x61\x00\x35\x00\x36\x00\x37\x00\x99\x00\x60\x00\xb2\x00\x62\x00\xb3\x00\xd5\x00\x77\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x2b\x00\xc7\x00\xcc\x00\x2c\x00\xb5\x00\xcd\x00\x9a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x44\x00\xff\xff\x31\x00\xff\xff\x60\x00\x65\x00\x66\x00\x5b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x9d\x00\x38\x00\x9e\x00\xa3\x00\xad\x00\x79\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x43\x00\x3f\x00\x1c\x00\x40\x00\x65\x00\x7f\x00\x7b\x00\x41\x00\x5b\x00\x42\x00\x2b\x00\x43\x00\x44\x00\x2c\x00\x9d\x00\x65\x00\x9e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5b\x00\x5a\x00\x0b\x01\x31\x00\x0c\x01\x60\x00\x43\x00\x43\x00\xaf\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x1d\x00\x38\x00\x7c\x00\x5a\x00\x43\x00\x1c\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xb1\x00\x3f\x00\xec\x00\x40\x00\x5b\x00\x65\x00\xd7\x00\x41\x00\x5b\x00\x42\x00\x2b\x00\x43\x00\x44\x00\x2c\x00\xb0\x00\x5c\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5b\x00\x1c\x00\x43\x00\x31\x00\x1c\x00\x89\x00\x43\x00\xae\x00\x55\x00\x32\x00\x33\x00\x5c\x00\x35\x00\x36\x00\x37\x00\xaa\x00\x5d\x00\x5e\x00\x5a\x00\x43\x00\xa7\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xa6\x00\x3f\x00\xea\x00\x40\x00\x1c\x00\x1d\x00\xa1\x00\x1e\x00\x1f\x00\xa0\x00\x47\x00\x43\x00\x44\x00\x2c\x00\xff\xff\xbb\xff\x9b\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5b\x00\x1c\x00\x21\x00\x31\x00\xff\xff\x79\x00\x7a\x00\x9a\x00\x45\x00\x32\x00\x33\x00\x5c\x00\x35\x00\x36\x00\x37\x00\x99\x00\x1c\x00\x1c\x00\x91\x00\x43\x00\x88\x00\x55\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x1c\x00\x1d\x00\x60\x00\x1e\x00\x1f\x00\xff\xff\x2b\x00\x90\x00\xbb\xff\x2c\x00\xff\xff\x43\x00\x44\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x1c\x00\x21\x00\x31\x00\x61\x00\x79\x00\x8e\x00\x43\x00\xcf\x00\x32\x00\x33\x00\x86\x00\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x43\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x1c\x00\x3f\x00\xff\xff\x40\x00\x79\x00\x82\x00\x47\x00\x4e\x00\x77\x00\x2c\x00\xff\xff\x43\x00\x44\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x1c\x00\x1d\x00\x31\x00\x1e\x00\x1f\x00\xe2\x00\x1c\x00\xe1\x00\x32\x00\x33\x00\x55\x00\x35\x00\x36\x00\x37\x00\xe0\x00\x65\x00\xe5\x00\xdf\x00\xa1\x00\x97\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x47\x00\x3f\x00\x5a\x00\x2c\x00\xde\x00\x65\x00\x43\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x44\x00\xe8\x00\x31\x00\x1c\x00\xda\x00\xd9\x00\x1c\x00\x55\x00\x32\x00\x33\x00\x87\x00\x35\x00\x36\x00\x37\x00\x99\x00\x56\x00\xd5\x00\x57\x00\x58\x00\xd6\x00\x5b\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x47\x00\xd4\x00\x1c\x00\x2c\x00\xc9\x00\x5c\x00\x83\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x44\x00\x43\x00\x31\x00\xc2\x00\xc0\x00\xbf\x00\xbe\x00\xff\x00\x32\x00\x33\x00\x9c\x00\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\xfd\x00\x55\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x1c\x00\x1d\x00\x93\x00\x1e\x00\x1f\x00\xfc\x00\xf7\x00\x21\x00\x22\x00\x23\x00\x4b\x00\x43\x00\x44\x00\x4a\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\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\xbc\x00\xf6\x00\xf4\x00\x20\x00\x4f\x00\x50\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x1c\x00\x61\x00\xf3\x00\xef\x00\x79\x00\x80\x00\x1c\x00\x1d\x00\x1a\x01\x1e\x00\x1f\x00\x20\x00\x4f\x00\xd2\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x20\x00\x4f\x00\xd0\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x1c\x00\x79\x00\xd6\x00\x1a\x01\x19\x01\x17\x01\x1c\x00\x1d\x00\x15\x01\x1e\x00\x1f\x00\x20\x00\x4f\x00\xc3\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc4\x00\x20\x00\x52\x00\x13\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x00\x1c\x00\x1d\x00\x12\x01\x1e\x00\x1f\x00\x1c\x00\x11\x01\x0f\x01\x05\x01\x55\x00\x09\x01\x1c\x00\x1d\x00\x04\x01\x1e\x00\xab\x00\x20\x00\x94\x00\x95\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x44\x00\x20\x00\x03\x01\x28\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x9e\x00\x1c\x00\x1d\x00\x27\x01\x1e\x00\x1f\x00\x1c\x00\x26\x01\x25\x01\x23\x01\x55\x00\x22\x01\x1c\x00\x1d\x00\x20\x01\x1e\x00\x1f\x00\x20\x00\x5d\x00\x92\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa4\x00\x20\x00\x1e\x01\x43\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x9e\x00\x1c\x00\x1d\x00\x34\x01\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x32\x01\x2f\x01\x55\x00\x55\x00\x1c\x00\x1d\x00\x2e\x01\x1e\x00\x1f\x00\x20\x00\x91\x00\xca\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8d\x00\x20\x00\x30\x01\x2d\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8c\x00\x1c\x00\x1d\x00\x2c\x01\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x29\x01\x3b\x01\x55\x00\x55\x00\x1c\x00\x1d\x00\x3a\x01\x1e\x00\x1f\x00\x20\x00\xc9\x00\xc7\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8b\x00\x20\x00\x3f\x01\x41\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8a\x00\x1c\x00\x1d\x00\x40\x01\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x43\x01\x45\x01\x55\x00\x55\x00\x1c\x00\x1d\x00\x77\x00\x1e\x00\x1f\x00\x20\x00\xc0\x00\xf0\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xd1\x00\x20\x00\x75\x00\x63\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xcd\x00\x1c\x00\x1d\x00\x74\x00\x1e\x00\x1f\x00\x85\x00\x84\x00\xdc\x00\x81\x00\xdb\x00\x00\x00\x1c\x00\x1d\x00\xda\x00\x1e\x00\x1f\x00\x20\x00\xe4\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x01\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\x00\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\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\xf9\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf7\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\xf4\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf1\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\xed\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\xec\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe3\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\xe2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x17\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\x15\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x13\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\x0d\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0c\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\x07\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\x06\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x05\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\x23\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x20\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\x1c\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\x1b\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x32\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\x30\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2a\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\x29\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x38\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\x35\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x34\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\x3d\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3c\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\x41\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x43\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\x47\x00\x48\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\xbb\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\x47\x00\xb6\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\xb5\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\x47\x00\xfd\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\x3b\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\x47\x00\x37\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x47\x00\x36\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\x49\x00\x00\x00\x4a\x00\x21\x00\x22\x00\x23\x00\x24\x00\xce\x00\x00\x00\x4a\x00\x21\x00\x22\x00\x23\x00\x24\x00\xba\x00\x00\x00\x4a\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\x0f\x01\x00\x00\x4a\x00\x21\x00\x22\x00\x23\x00\xb9\x00\x00\x00\x00\x00\x4a\x00\x21\x00\x22\x00\x4c\x00\x00\x00\x1c\x00\x1d\x00\x4a\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x00\x00\x55\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x21\x00\x00\x00\x56\x00\x00\x00\x57\x00\xa8\x00\x54\x00\x21\x00\x4d\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x4a\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x54\x00\x00\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\x21\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x21\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x4a\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x55\x00\x1c\x00\x00\x00\x00\x00\xa3\x00\x55\x00\x00\x00\x00\x00\x56\x00\x97\x00\x57\x00\x96\x00\x00\x00\x56\x00\x1c\x00\x57\x00\xea\x00\x00\x00\x55\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x00\x00\x57\x00\xe8\x00\x00\x00\x56\x00\x00\x00\x57\x00\xe6\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x00\x00\x00\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +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\x80\x00\x35\x00\x36\x00\x37\x00\x81\x00\x9c\x00\x63\x00\xb2\x00\x45\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\x7c\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\x7a\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\x45\x00\x42\x00\x1c\x00\xb4\x00\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\x1c\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\xb3\x00\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\xff\xff\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\xaa\x00\x89\x00\x5e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xa9\x00\x5d\x00\x1c\x00\x31\x00\x1c\x00\x45\x00\x7c\x00\x91\x00\x64\x00\x32\x00\x33\x00\x5e\x00\x35\x00\x36\x00\x37\x00\x1d\x01\x5c\x00\x1d\x00\xa4\x00\x7f\x00\xa3\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\xff\xff\x9c\x00\x9d\x00\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\x8a\x00\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x50\x00\x86\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x42\x00\x1c\x00\x9a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x45\x00\x46\x00\x31\x00\x7c\x00\xd9\x00\x68\x00\x82\x00\x45\x00\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x7a\x00\x1e\x00\x1f\x00\x68\x00\xda\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x68\x00\xe8\x00\xaa\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x45\x00\x45\x00\x46\x00\x31\x00\xff\xff\xe5\x00\xe4\x00\x1c\x00\xe3\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\xe2\x00\x9c\x00\xe1\x00\xdd\x00\x58\x00\x68\x00\x59\x00\xab\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\xdc\x00\x41\x00\x2c\x00\x45\x00\xd8\x00\xd9\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x9f\x00\x45\x00\x46\x00\x31\x00\x5c\x00\x5c\x00\xd7\x00\xcc\x00\x5c\x00\x32\x00\x33\x00\xc5\x00\x35\x00\x36\x00\x37\x00\xef\x00\xed\x00\x1c\x00\xc3\x00\xeb\x00\xc2\x00\x57\x00\xc1\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x02\x01\x58\x00\x41\x00\x59\x00\x99\x00\x00\x01\xff\x00\x5d\x00\x5d\x00\xfa\x00\x1c\x00\x5d\x00\x45\x00\x46\x00\x57\x00\xf7\x00\xf6\x00\x5e\x00\x5e\x00\x5f\x00\x5f\x00\x5e\x00\x58\x00\x5f\x00\x59\x00\xed\x00\xf9\x00\x45\x00\x45\x00\x1c\x00\x1d\x00\x45\x00\x1e\x00\x1f\x00\xf2\x00\x1d\x01\x16\x01\x1c\x00\x1c\x01\x1a\x01\x18\x01\x15\x01\x14\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\x12\x01\x0c\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\x08\x01\x1e\x00\x1f\x00\x07\x01\x06\x01\x2b\x01\x28\x01\x26\x01\x23\x01\x1c\x00\x1d\x00\x2a\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\x29\x01\x1e\x00\x1f\x00\x25\x01\x21\x01\x45\x00\x37\x01\x35\x01\x33\x01\x1c\x00\x1d\x00\x32\x01\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\x31\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x2c\x01\x1e\x00\x1f\x00\x1c\x00\x2f\x01\x30\x01\x3e\x01\x57\x00\x3d\x01\x1c\x00\x1d\x00\x42\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\x44\x01\x43\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x46\x01\x1e\x00\x1f\x00\x1c\x00\x48\x01\x7a\x00\x66\x00\x57\x00\x78\x00\x1c\x00\x1d\x00\x88\x00\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\x77\x00\x87\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x84\x00\x1e\x00\x1f\x00\x1c\x00\xdf\x00\xde\x00\xdd\x00\x57\x00\x00\x00\x1c\x00\x1d\x00\xe7\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\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8f\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\x63\x00\xa4\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\x96\x00\x94\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\xcd\x00\xcc\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\xca\x00\xc3\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\x1c\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xf3\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\x1c\x00\x21\x00\x47\x00\x00\x00\x57\x00\x1c\x00\xa6\x00\xd2\x00\x00\x00\x57\x00\x00\x00\x00\x00\x58\x00\x9a\x00\x59\x00\xeb\x00\x00\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\x1c\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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, 125) [ +happyReduceArr = Happy_Data_Array.array (26, 128) [ (26 , happyReduce_26), (27 , happyReduce_27), (28 , happyReduce_28), @@ -400,10 +400,13 @@ happyReduceArr = Happy_Data_Array.array (26, 125) [ (122 , happyReduce_122), (123 , happyReduce_123), (124 , happyReduce_124), - (125 , happyReduce_125) + (125 , happyReduce_125), + (126 , happyReduce_126), + (127 , happyReduce_127), + (128 , happyReduce_128) ] -happy_n_terms = 68 :: Prelude.Int +happy_n_terms = 70 :: Prelude.Int happy_n_nonterms = 29 :: Prelude.Int happyReduce_26 = happySpecReduce_1 0# happyReduction_26 @@ -761,13 +764,20 @@ happyReduction_58 happy_x_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_60 = happyReduce 5# 13# happyReduction_60 -happyReduction_60 (happy_x_5 `HappyStk` +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` @@ -780,15 +790,15 @@ happyReduction_60 (happy_x_5 `HappyStk` ((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_61 = happySpecReduce_1 14# happyReduction_61 -happyReduction_61 happy_x_1 +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_62 = happySpecReduce_2 14# happyReduction_62 -happyReduction_62 happy_x_2 +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) -> @@ -796,15 +806,15 @@ happyReduction_62 happy_x_2 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_63 = happySpecReduce_1 15# happyReduction_63 -happyReduction_63 happy_x_1 +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_64 = happyReduce 5# 15# happyReduction_64 -happyReduction_64 (happy_x_5 `HappyStk` +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` @@ -817,8 +827,8 @@ happyReduction_64 (happy_x_5 `HappyStk` ((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_65 = happyReduce 7# 15# happyReduction_65 -happyReduction_65 (happy_x_7 `HappyStk` +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` @@ -834,15 +844,15 @@ happyReduction_65 (happy_x_7 `HappyStk` ((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_66 = happySpecReduce_1 16# happyReduction_66 -happyReduction_66 happy_x_1 +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_67 = happySpecReduce_2 16# happyReduction_67 -happyReduction_67 happy_x_2 +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) -> @@ -850,15 +860,15 @@ happyReduction_67 happy_x_2 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_68 = happySpecReduce_1 17# happyReduction_68 -happyReduction_68 happy_x_1 +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_69 = happyReduce 5# 17# happyReduction_69 -happyReduction_69 (happy_x_5 `HappyStk` +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` @@ -870,8 +880,8 @@ happyReduction_69 (happy_x_5 `HappyStk` ((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_70 = happyReduce 5# 17# happyReduction_70 -happyReduction_70 (happy_x_5 `HappyStk` +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` @@ -884,8 +894,8 @@ happyReduction_70 (happy_x_5 `HappyStk` ((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_71 = happyReduce 5# 17# happyReduction_71 -happyReduction_71 (happy_x_5 `HappyStk` +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` @@ -898,8 +908,8 @@ happyReduction_71 (happy_x_5 `HappyStk` ((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 9# 17# happyReduction_72 -happyReduction_72 (happy_x_9 `HappyStk` +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` @@ -917,8 +927,8 @@ happyReduction_72 (happy_x_9 `HappyStk` ((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_73 = happyReduce 7# 17# happyReduction_73 -happyReduction_73 (happy_x_7 `HappyStk` +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` @@ -934,8 +944,8 @@ happyReduction_73 (happy_x_7 `HappyStk` ((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_74 = happySpecReduce_3 18# happyReduction_74 -happyReduction_74 happy_x_3 +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) -> @@ -944,15 +954,15 @@ happyReduction_74 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_75 = happySpecReduce_1 19# happyReduction_75 -happyReduction_75 happy_x_1 +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_76 = happySpecReduce_3 19# happyReduction_76 -happyReduction_76 happy_x_3 +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) -> @@ -961,85 +971,85 @@ happyReduction_76 happy_x_3 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_77 = happySpecReduce_1 20# happyReduction_77 -happyReduction_77 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_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.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((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_88 = happyReduce 4# 20# happyReduction_88 -happyReduction_88 (happy_x_4 `HappyStk` +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` @@ -1050,8 +1060,8 @@ happyReduction_88 (happy_x_4 `HappyStk` ((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_89 = happyReduce 10# 20# happyReduction_89 -happyReduction_89 (happy_x_10 `HappyStk` +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` @@ -1071,8 +1081,8 @@ happyReduction_89 (happy_x_10 `HappyStk` ((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_90 = happyReduce 5# 20# happyReduction_90 -happyReduction_90 (happy_x_5 `HappyStk` +happyReduce_91 = happyReduce 5# 20# happyReduction_91 +happyReduction_91 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1085,8 +1095,8 @@ happyReduction_90 (happy_x_5 `HappyStk` ((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_91 = happyReduce 5# 20# happyReduction_91 -happyReduction_91 (happy_x_5 `HappyStk` +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` @@ -1099,15 +1109,22 @@ happyReduction_91 (happy_x_5 `HappyStk` ((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_92 = happySpecReduce_1 20# happyReduction_92 -happyReduction_92 happy_x_1 +happyReduce_93 = happySpecReduce_1 20# happyReduction_93 +happyReduction_93 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_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.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_93 = happySpecReduce_3 20# happyReduction_93 -happyReduction_93 happy_x_3 +happyReduce_95 = happySpecReduce_3 20# happyReduction_95 +happyReduction_95 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> @@ -1116,8 +1133,8 @@ happyReduction_93 happy_x_3 ((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_94 = happyReduce 5# 20# happyReduction_94 -happyReduction_94 (happy_x_5 `HappyStk` +happyReduce_96 = happyReduce 5# 20# happyReduction_96 +happyReduction_96 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1130,8 +1147,8 @@ happyReduction_94 (happy_x_5 `HappyStk` ((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_95 = happyReduce 14# 20# happyReduction_95 -happyReduction_95 (happy_x_14 `HappyStk` +happyReduce_97 = happyReduce 14# 20# happyReduction_97 +happyReduction_97 (happy_x_14 `HappyStk` happy_x_13 `HappyStk` happy_x_12 `HappyStk` happy_x_11 `HappyStk` @@ -1157,22 +1174,22 @@ happyReduction_95 (happy_x_14 `HappyStk` ((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_96 = happySpecReduce_1 20# happyReduction_96 -happyReduction_96 happy_x_1 +happyReduce_98 = happySpecReduce_1 20# happyReduction_98 +happyReduction_98 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_97 = happySpecReduce_1 20# happyReduction_97 -happyReduction_97 happy_x_1 +happyReduce_99 = happySpecReduce_1 20# happyReduction_99 +happyReduction_99 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_98 = happySpecReduce_3 20# happyReduction_98 -happyReduction_98 happy_x_3 +happyReduce_100 = happySpecReduce_3 20# happyReduction_100 +happyReduction_100 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> @@ -1181,8 +1198,8 @@ happyReduction_98 happy_x_3 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2)) )}} -happyReduce_99 = happySpecReduce_3 21# happyReduction_99 -happyReduction_99 happy_x_3 +happyReduce_101 = happySpecReduce_3 21# happyReduction_101 +happyReduction_101 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> @@ -1191,15 +1208,15 @@ happyReduction_99 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_100 = happySpecReduce_1 21# happyReduction_100 -happyReduction_100 happy_x_1 +happyReduce_102 = happySpecReduce_1 21# happyReduction_102 +happyReduction_102 happy_x_1 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> happyIn50 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_101 = happySpecReduce_3 22# happyReduction_101 -happyReduction_101 happy_x_3 +happyReduce_103 = happySpecReduce_3 22# happyReduction_103 +happyReduction_103 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> @@ -1208,8 +1225,8 @@ happyReduction_101 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_102 = happySpecReduce_3 22# happyReduction_102 -happyReduction_102 happy_x_3 +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) -> @@ -1218,15 +1235,15 @@ happyReduction_102 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_103 = happySpecReduce_1 22# happyReduction_103 -happyReduction_103 happy_x_1 +happyReduce_105 = happySpecReduce_1 22# happyReduction_105 +happyReduction_105 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> happyIn51 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_104 = happySpecReduce_3 23# happyReduction_104 -happyReduction_104 happy_x_3 +happyReduce_106 = happySpecReduce_3 23# happyReduction_106 +happyReduction_106 happy_x_3 happy_x_2 happy_x_1 = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> @@ -1235,15 +1252,15 @@ happyReduction_104 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_105 = happySpecReduce_1 23# happyReduction_105 -happyReduction_105 happy_x_1 +happyReduce_107 = happySpecReduce_1 23# happyReduction_107 +happyReduction_107 happy_x_1 = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> happyIn52 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_106 = happySpecReduce_3 24# happyReduction_106 -happyReduction_106 happy_x_3 +happyReduce_108 = happySpecReduce_3 24# happyReduction_108 +happyReduction_108 happy_x_3 happy_x_2 happy_x_1 = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> @@ -1252,15 +1269,15 @@ happyReduction_106 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_107 = happySpecReduce_1 24# happyReduction_107 -happyReduction_107 happy_x_1 +happyReduce_109 = happySpecReduce_1 24# happyReduction_109 +happyReduction_109 happy_x_1 = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> happyIn53 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_108 = happySpecReduce_3 25# happyReduction_108 -happyReduction_108 happy_x_3 +happyReduce_110 = happySpecReduce_3 25# happyReduction_110 +happyReduction_110 happy_x_3 happy_x_2 happy_x_1 = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> @@ -1269,8 +1286,8 @@ happyReduction_108 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_109 = happyReduce 8# 25# happyReduction_109 -happyReduction_109 (happy_x_8 `HappyStk` +happyReduce_111 = happyReduce 8# 25# happyReduction_111 +happyReduction_111 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1287,8 +1304,15 @@ happyReduction_109 (happy_x_8 `HappyStk` ((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_110 = happyReduce 5# 25# happyReduction_110 -happyReduction_110 (happy_x_5 `HappyStk` +happyReduce_112 = happySpecReduce_1 25# happyReduction_112 +happyReduction_112 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn54 + ((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_113 = happyReduce 5# 25# happyReduction_113 +happyReduction_113 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1301,8 +1325,8 @@ happyReduction_110 (happy_x_5 `HappyStk` ((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_111 = happySpecReduce_3 25# happyReduction_111 -happyReduction_111 happy_x_3 +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) -> @@ -1311,8 +1335,8 @@ happyReduction_111 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_112 = happyReduce 4# 25# happyReduction_112 -happyReduction_112 (happy_x_4 `HappyStk` +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` @@ -1324,15 +1348,15 @@ happyReduction_112 (happy_x_4 `HappyStk` ((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_113 = happySpecReduce_1 25# happyReduction_113 -happyReduction_113 happy_x_1 +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_114 = happySpecReduce_3 25# happyReduction_114 -happyReduction_114 happy_x_3 +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) -> @@ -1341,8 +1365,8 @@ happyReduction_114 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.unicode_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_115 = happyReduce 8# 25# happyReduction_115 -happyReduction_115 (happy_x_8 `HappyStk` +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` @@ -1359,8 +1383,8 @@ happyReduction_115 (happy_x_8 `HappyStk` ((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_116 = happyReduce 8# 25# happyReduction_116 -happyReduction_116 (happy_x_8 `HappyStk` +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` @@ -1377,8 +1401,8 @@ happyReduction_116 (happy_x_8 `HappyStk` ((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_117 = happyReduce 4# 26# happyReduction_117 -happyReduction_117 (happy_x_4 `HappyStk` +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` @@ -1389,8 +1413,8 @@ happyReduction_117 (happy_x_4 `HappyStk` ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) ) `HappyStk` happyRest}} -happyReduce_118 = happySpecReduce_2 26# happyReduction_118 -happyReduction_118 happy_x_2 +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) -> @@ -1398,8 +1422,8 @@ happyReduction_118 happy_x_2 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_119 = happySpecReduce_2 26# happyReduction_119 -happyReduction_119 happy_x_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) -> @@ -1407,8 +1431,8 @@ happyReduction_119 happy_x_2 ((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_120 = happySpecReduce_2 26# happyReduction_120 -happyReduction_120 happy_x_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) -> @@ -1416,15 +1440,15 @@ happyReduction_120 happy_x_2 ((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_121 = happySpecReduce_1 26# happyReduction_121 -happyReduction_121 happy_x_1 +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_122 = happySpecReduce_3 27# happyReduction_122 -happyReduction_122 happy_x_3 +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) -> @@ -1433,22 +1457,22 @@ happyReduction_122 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_123 = happySpecReduce_1 27# happyReduction_123 -happyReduction_123 happy_x_1 +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_124 = happySpecReduce_1 28# happyReduction_124 -happyReduction_124 happy_x_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_125 = happySpecReduce_3 28# happyReduction_125 -happyReduction_125 happy_x_3 +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) -> @@ -1458,7 +1482,7 @@ happyReduction_125 happy_x_3 )}} happyNewToken action sts stk [] = - happyDoAction 67# notHappyAtAll 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 @@ -1526,13 +1550,15 @@ happyNewToken action sts stk (tk:tks) = PT _ (TS _ 61) -> cont 61#; PT _ (TS _ 62) -> cont 62#; PT _ (TS _ 63) -> cont 63#; - PT _ (TL _) -> cont 64#; - PT _ (T_VarIdentToken _) -> cont 65#; - PT _ (T_HoleIdentToken _) -> cont 66#; + 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 67# tk tks = happyError' (tks, explist) +happyError_ explist 69# tk tks = happyError' (tks, explist) happyError_ explist _ tk tks = happyError' ((tk:tks), explist) happyThen :: () => Err a -> (a -> Err b) -> Err b diff --git a/rzk/src/Language/Rzk/Syntax/Par.info b/rzk/src/Language/Rzk/Syntax/Par.info index c3e70c696..e30272c7f 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.info +++ b/rzk/src/Language/Rzk/Syntax/Par.info @@ -65,73 +65,76 @@ Grammar SectionName -> (56) SectionName -> VarIdent (57) Pattern -> '_' (58) - Pattern -> VarIdent (59) - Pattern -> '(' Pattern ',' Pattern ')' (60) - ListPattern -> Pattern (61) - ListPattern -> Pattern ListPattern (62) - Param -> Pattern (63) - Param -> '(' ListPattern ':' Term ')' (64) - Param -> '{' Pattern ':' Term '|' Term '}' (65) - ListParam -> Param (66) - ListParam -> Param ListParam (67) - ParamDecl -> Term6 (68) - ParamDecl -> '(' '_' ':' Term ')' (69) - ParamDecl -> '{' Pattern ':' Term '}' (70) - ParamDecl -> '(' VarIdent ':' Term ')' (71) - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (72) - ParamDecl -> '{' Pattern ':' Term '|' Term '}' (73) - Restriction -> Term '|->' Term (74) - ListRestriction -> Restriction (75) - ListRestriction -> Restriction ',' ListRestriction (76) - Term7 -> 'U' (77) - Term7 -> 'CUBE' (78) - Term7 -> 'TOPE' (79) - Term7 -> '1' (80) - Term7 -> '*_1' (81) - Term7 -> '2' (82) - Term7 -> '0_2' (83) - Term7 -> '1_2' (84) - Term7 -> 'TOP' (85) - Term7 -> 'BOT' (86) - Term7 -> 'recBOT' (87) - Term7 -> 'recOR' '(' ListRestriction ')' (88) - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (89) - Term7 -> '<' ParamDecl '->' Term '>' (90) - Term7 -> '(' Term ',' Term ')' (91) - Term7 -> 'refl' (92) - Term7 -> 'refl_{' Term '}' (93) - Term7 -> 'refl_{' Term ':' Term '}' (94) - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (95) - Term7 -> HoleIdent (96) - Term7 -> VarIdent (97) - Term7 -> '(' Term ')' (98) - Term5 -> Term5 '*' Term6 (99) - Term5 -> Term6 (100) - Term4 -> Term5 '===' Term5 (101) - Term4 -> Term5 '<=' Term5 (102) - Term4 -> Term5 (103) - Term3 -> Term4 '/\\' Term3 (104) - Term3 -> Term4 (105) - Term2 -> Term3 '\\/' Term2 (106) - Term2 -> Term3 (107) - Term1 -> ParamDecl '->' Term1 (108) - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (109) - Term1 -> Term2 '=_{' Term '}' Term2 (110) - Term1 -> Term2 '=' Term2 (111) - Term1 -> '\\' ListParam '->' Term1 (112) - Term1 -> Term2 (113) - Term1 -> ParamDecl '→' Term1 (114) - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (115) - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (116) - Term6 -> Term6 '[' ListRestriction ']' (117) - Term6 -> Term6 Term7 (118) - Term6 -> 'first' Term7 (119) - Term6 -> 'second' Term7 (120) - Term6 -> Term7 (121) - Term -> Term2 'as' Term1 (122) - Term -> Term1 (123) - ListTerm -> Term (124) - ListTerm -> Term ',' ListTerm (125) + Pattern -> 'unit' (59) + Pattern -> VarIdent (60) + Pattern -> '(' Pattern ',' Pattern ')' (61) + ListPattern -> Pattern (62) + ListPattern -> Pattern ListPattern (63) + Param -> Pattern (64) + Param -> '(' ListPattern ':' Term ')' (65) + Param -> '{' Pattern ':' Term '|' Term '}' (66) + ListParam -> Param (67) + ListParam -> Param ListParam (68) + ParamDecl -> Term6 (69) + ParamDecl -> '(' '_' ':' Term ')' (70) + ParamDecl -> '{' Pattern ':' Term '}' (71) + ParamDecl -> '(' VarIdent ':' Term ')' (72) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (73) + ParamDecl -> '{' Pattern ':' Term '|' Term '}' (74) + Restriction -> Term '|->' Term (75) + ListRestriction -> Restriction (76) + ListRestriction -> Restriction ',' ListRestriction (77) + Term7 -> 'U' (78) + Term7 -> 'CUBE' (79) + Term7 -> 'TOPE' (80) + Term7 -> '1' (81) + Term7 -> '*_1' (82) + Term7 -> '2' (83) + Term7 -> '0_2' (84) + Term7 -> '1_2' (85) + Term7 -> 'TOP' (86) + Term7 -> 'BOT' (87) + Term7 -> 'recBOT' (88) + Term7 -> 'recOR' '(' ListRestriction ')' (89) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (90) + Term7 -> '<' ParamDecl '->' Term '>' (91) + Term7 -> '(' Term ',' Term ')' (92) + Term7 -> 'unit' (93) + Term7 -> 'refl' (94) + Term7 -> 'refl_{' Term '}' (95) + Term7 -> 'refl_{' Term ':' Term '}' (96) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (97) + Term7 -> HoleIdent (98) + Term7 -> VarIdent (99) + Term7 -> '(' Term ')' (100) + Term5 -> Term5 '*' Term6 (101) + Term5 -> Term6 (102) + Term4 -> Term5 '===' Term5 (103) + Term4 -> Term5 '<=' Term5 (104) + Term4 -> Term5 (105) + Term3 -> Term4 '/\\' Term3 (106) + Term3 -> Term4 (107) + Term2 -> Term3 '\\/' Term2 (108) + Term2 -> Term3 (109) + Term1 -> ParamDecl '->' Term1 (110) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (111) + Term1 -> 'Unit' (112) + Term1 -> Term2 '=_{' Term '}' Term2 (113) + Term1 -> Term2 '=' Term2 (114) + Term1 -> '\\' ListParam '->' Term1 (115) + Term1 -> Term2 (116) + Term1 -> ParamDecl '→' Term1 (117) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (118) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (119) + Term6 -> Term6 '[' ListRestriction ']' (120) + Term6 -> Term6 Term7 (121) + Term6 -> 'first' Term7 (122) + Term6 -> 'second' Term7 (123) + Term6 -> Term7 (124) + Term -> Term2 'as' Term1 (125) + Term -> Term1 (126) + ListTerm -> Term (127) + ListTerm -> Term ',' ListTerm (128) ----------------------------------------------------------------------------- Terminals @@ -177,28 +180,30 @@ Terminals '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) } + '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 _) } @@ -245,22 +250,22 @@ Non-terminals ListCommand rules 52, 53 DeclUsedVars rules 54, 55 SectionName rules 56, 57 - Pattern rules 58, 59, 60 - ListPattern rules 61, 62 - Param rules 63, 64, 65 - ListParam rules 66, 67 - ParamDecl rules 68, 69, 70, 71, 72, 73 - Restriction rule 74 - ListRestriction rules 75, 76 - Term7 rules 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 - Term5 rules 99, 100 - Term4 rules 101, 102, 103 - Term3 rules 104, 105 - Term2 rules 106, 107 - Term1 rules 108, 109, 110, 111, 112, 113, 114, 115, 116 - Term6 rules 117, 118, 119, 120, 121 - Term rules 122, 123 - ListTerm rules 124, 125 + Pattern rules 58, 59, 60, 61 + ListPattern rules 62, 63 + Param rules 64, 65, 66 + ListParam rules 67, 68 + ParamDecl rules 69, 70, 71, 72, 73, 74 + Restriction rule 75 + ListRestriction rules 76, 77 + Term7 rules 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 + Term5 rules 101, 102 + Term4 rules 103, 104, 105 + Term3 rules 106, 107 + Term2 rules 108, 109 + Term1 rules 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 + Term6 rules 120, 121, 122, 123, 124 + Term rules 125, 126 + ListTerm rules 127, 128 ----------------------------------------------------------------------------- States @@ -269,170 +274,174 @@ State 0 %start_pModule_internal -> . Module (rule 0) - '#lang' shift, and enter state 120 + '#lang' shift, and enter state 123 - Module goto state 125 - LanguageDecl goto state 126 + Module goto state 128 + LanguageDecl goto state 129 State 1 %start_pHoleIdent_internal -> . HoleIdent (rule 1) - L_HoleIdentTokenshift, and enter state 67 + L_HoleIdentTokenshift, and enter state 69 HoleIdentToken goto state 29 - HoleIdent goto state 124 + HoleIdent goto state 127 State 2 %start_pVarIdent_internal -> . VarIdent (rule 2) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 123 + VarIdent goto state 126 State 3 %start_pListVarIdent_internal -> . ListVarIdent (rule 3) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 121 - ListVarIdent goto state 122 + VarIdent goto state 124 + ListVarIdent goto state 125 State 4 %start_pLanguageDecl_internal -> . LanguageDecl (rule 4) - '#lang' shift, and enter state 120 + '#lang' shift, and enter state 123 - LanguageDecl goto state 119 + LanguageDecl goto state 122 State 5 %start_pLanguage_internal -> . Language (rule 5) - 'rzk-1' shift, and enter state 118 + 'rzk-1' shift, and enter state 121 - Language goto state 117 + Language goto state 120 State 6 %start_pCommand_internal -> . Command (rule 6) - '#assume' shift, and enter state 103 - '#check' shift, and enter state 104 - '#compute' shift, and enter state 105 - '#compute-nf' shift, and enter state 106 - '#compute-whnf'shift, and enter state 107 - '#def' shift, and enter state 108 - '#define' shift, and enter state 109 - '#postulate' shift, and enter state 110 - '#section' shift, and enter state 111 - '#set-option' shift, and enter state 112 - '#unset-option'shift, and enter state 113 - '#variable' shift, and enter state 114 - '#variables' shift, and enter state 115 - - Command goto state 116 + '#assume' shift, and enter state 106 + '#check' shift, and enter state 107 + '#compute' shift, and enter state 108 + '#compute-nf' shift, and enter state 109 + '#compute-whnf'shift, and enter state 110 + '#def' shift, and enter state 111 + '#define' shift, and enter state 112 + '#postulate' shift, and enter state 113 + '#section' shift, and enter state 114 + '#set-option' shift, and enter state 115 + '#unset-option'shift, and enter state 116 + '#variable' shift, and enter state 117 + '#variables' shift, and enter state 118 + + Command goto state 119 State 7 %start_pListCommand_internal -> . ListCommand (rule 7) - '#assume' shift, and enter state 103 - '#check' shift, and enter state 104 - '#compute' shift, and enter state 105 - '#compute-nf' shift, and enter state 106 - '#compute-whnf'shift, and enter state 107 - '#def' shift, and enter state 108 - '#define' shift, and enter state 109 - '#postulate' shift, and enter state 110 - '#section' shift, and enter state 111 - '#set-option' shift, and enter state 112 - '#unset-option'shift, and enter state 113 - '#variable' shift, and enter state 114 - '#variables' shift, and enter state 115 + '#assume' shift, and enter state 106 + '#check' shift, and enter state 107 + '#compute' shift, and enter state 108 + '#compute-nf' shift, and enter state 109 + '#compute-whnf'shift, and enter state 110 + '#def' shift, and enter state 111 + '#define' shift, and enter state 112 + '#postulate' shift, and enter state 113 + '#section' shift, and enter state 114 + '#set-option' shift, and enter state 115 + '#unset-option'shift, and enter state 116 + '#variable' shift, and enter state 117 + '#variables' shift, and enter state 118 %eof reduce using rule 52 - Command goto state 101 - ListCommand goto state 102 + Command goto state 104 + ListCommand goto state 105 State 8 %start_pDeclUsedVars_internal -> . DeclUsedVars (rule 8) - 'uses' shift, and enter state 100 + 'uses' shift, and enter state 103 %eof reduce using rule 55 - DeclUsedVars goto state 99 + DeclUsedVars goto state 102 State 9 %start_pSectionName_internal -> . SectionName (rule 9) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 %eof reduce using rule 56 VarIdentToken goto state 28 - VarIdent goto state 97 - SectionName goto state 98 + VarIdent goto state 100 + SectionName goto state 101 State 10 %start_pPattern_internal -> . Pattern (rule 10) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 96 + VarIdent goto state 87 + Pattern goto state 99 State 11 %start_pListPattern_internal -> . ListPattern (rule 11) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 93 - ListPattern goto state 94 + VarIdent goto state 87 + Pattern goto state 96 + ListPattern goto state 97 State 12 %start_pParam_internal -> . Param (rule 12) - '(' shift, and enter state 89 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 91 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 92 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 95 State 13 %start_pListParam_internal -> . ListParam (rule 13) - '(' shift, and enter state 89 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 91 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 87 - ListParam goto state 88 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 90 State 14 @@ -450,24 +459,25 @@ State 14 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - ParamDecl goto state 83 + ParamDecl goto state 85 Term7 goto state 33 - Term6 goto state 84 + Term6 goto state 86 State 15 @@ -486,26 +496,28 @@ State 15 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 82 + Restriction goto state 84 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -513,7 +525,7 @@ State 15 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 81 + Term goto state 83 State 16 @@ -532,27 +544,29 @@ State 16 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 79 - ListRestrictiongoto state 80 + Restriction goto state 81 + ListRestrictiongoto state 82 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -560,13 +574,13 @@ State 16 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 81 + Term goto state 83 State 17 %start_pTerm7_internal -> . Term7 (rule 17) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -578,25 +592,26 @@ State 17 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 78 + Term7 goto state 80 State 18 %start_pTerm5_internal -> . Term5 (rule 18) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -608,29 +623,30 @@ State 18 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 77 - Term6 goto state 74 + Term5 goto state 79 + Term6 goto state 76 State 19 %start_pTerm4_internal -> . Term4 (rule 19) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -642,15 +658,16 @@ State 19 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -658,14 +675,14 @@ State 19 VarIdent goto state 31 Term7 goto state 33 Term5 goto state 34 - Term4 goto state 76 - Term6 goto state 74 + Term4 goto state 78 + Term6 goto state 76 State 20 %start_pTerm3_internal -> . Term3 (rule 20) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -677,15 +694,16 @@ State 20 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -694,14 +712,14 @@ State 20 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 - Term3 goto state 75 - Term6 goto state 74 + Term3 goto state 77 + Term6 goto state 76 State 21 %start_pTerm2_internal -> . Term2 (rule 21) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -713,15 +731,16 @@ State 21 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -731,8 +750,8 @@ State 21 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term6 goto state 74 + Term2 goto state 75 + Term6 goto state 76 State 22 @@ -751,19 +770,21 @@ State 22 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -774,15 +795,15 @@ State 22 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 72 + Term2 goto state 73 + Term1 goto state 74 Term6 goto state 39 State 23 %start_pTerm6_internal -> . Term6 (rule 23) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -794,22 +815,23 @@ State 23 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term6 goto state 69 + Term6 goto state 71 State 24 @@ -828,19 +850,21 @@ State 24 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -854,7 +878,7 @@ State 24 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 68 + Term goto state 70 State 25 @@ -873,19 +897,21 @@ State 25 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -957,6 +983,7 @@ State 28 'recOR' reduce using rule 31 'refl' reduce using rule 31 'refl_{' reduce using rule 31 + 'unit' reduce using rule 31 'uses' reduce using rule 31 '{' reduce using rule 31 '|' reduce using rule 31 @@ -1006,6 +1033,7 @@ State 29 'recOR' reduce using rule 30 'refl' reduce using rule 30 'refl_{' reduce using rule 30 + 'unit' reduce using rule 30 '|' reduce using rule 30 '|->' reduce using rule 30 '}' reduce using rule 30 @@ -1017,194 +1045,174 @@ State 29 State 30 - Term7 -> HoleIdent . (rule 96) + Term7 -> HoleIdent . (rule 98) - '(' reduce using rule 96 - ')' reduce using rule 96 - '*' reduce using rule 96 - '*_1' reduce using rule 96 - ',' reduce using rule 96 - '->' reduce using rule 96 - '/\\' reduce using rule 96 - '0_2' reduce using rule 96 - '1' reduce using rule 96 - '1_2' reduce using rule 96 - '2' reduce using rule 96 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '<' reduce using rule 96 - '<=' reduce using rule 96 - '=' reduce using rule 96 - '===' reduce using rule 96 - '=_{' reduce using rule 96 - '>' reduce using rule 96 - 'BOT' reduce using rule 96 - 'CUBE' reduce using rule 96 - 'TOP' reduce using rule 96 - 'TOPE' reduce using rule 96 - 'U' reduce using rule 96 - '[' reduce using rule 96 - '\\/' reduce using rule 96 - ']' reduce using rule 96 - 'as' reduce using rule 96 - 'idJ' reduce using rule 96 - 'recBOT' reduce using rule 96 - 'recOR' reduce using rule 96 - 'refl' reduce using rule 96 - 'refl_{' reduce using rule 96 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - '→' reduce using rule 96 - L_VarIdentTokenreduce using rule 96 - L_HoleIdentTokenreduce using rule 96 - %eof reduce using rule 96 + '(' reduce using rule 98 + ')' reduce using rule 98 + '*' reduce using rule 98 + '*_1' reduce using rule 98 + ',' reduce using rule 98 + '->' reduce using rule 98 + '/\\' reduce using rule 98 + '0_2' reduce using rule 98 + '1' reduce using rule 98 + '1_2' reduce using rule 98 + '2' reduce using rule 98 + ':' reduce using rule 98 + ':=' reduce using rule 98 + ';' reduce using rule 98 + '<' reduce using rule 98 + '<=' reduce using rule 98 + '=' reduce using rule 98 + '===' reduce using rule 98 + '=_{' reduce using rule 98 + '>' reduce using rule 98 + 'BOT' reduce using rule 98 + 'CUBE' reduce using rule 98 + 'TOP' reduce using rule 98 + 'TOPE' reduce using rule 98 + 'U' reduce using rule 98 + '[' reduce using rule 98 + '\\/' reduce using rule 98 + ']' reduce using rule 98 + 'as' reduce using rule 98 + 'idJ' reduce using rule 98 + 'recBOT' reduce using rule 98 + 'recOR' reduce using rule 98 + 'refl' reduce using rule 98 + 'refl_{' reduce using rule 98 + 'unit' reduce using rule 98 + '|' reduce using rule 98 + '|->' reduce using rule 98 + '}' reduce using rule 98 + '→' reduce using rule 98 + L_VarIdentTokenreduce using rule 98 + L_HoleIdentTokenreduce using rule 98 + %eof reduce using rule 98 State 31 - Term7 -> VarIdent . (rule 97) + Term7 -> VarIdent . (rule 99) - '(' reduce using rule 97 - ')' reduce using rule 97 - '*' reduce using rule 97 - '*_1' reduce using rule 97 - ',' reduce using rule 97 - '->' reduce using rule 97 - '/\\' reduce using rule 97 - '0_2' reduce using rule 97 - '1' reduce using rule 97 - '1_2' reduce using rule 97 - '2' reduce using rule 97 - ':' reduce using rule 97 - ':=' reduce using rule 97 - ';' reduce using rule 97 - '<' reduce using rule 97 - '<=' reduce using rule 97 - '=' reduce using rule 97 - '===' reduce using rule 97 - '=_{' reduce using rule 97 - '>' reduce using rule 97 - 'BOT' reduce using rule 97 - 'CUBE' reduce using rule 97 - 'TOP' reduce using rule 97 - 'TOPE' reduce using rule 97 - 'U' reduce using rule 97 - '[' reduce using rule 97 - '\\/' reduce using rule 97 - ']' reduce using rule 97 - 'as' reduce using rule 97 - 'idJ' reduce using rule 97 - 'recBOT' reduce using rule 97 - 'recOR' reduce using rule 97 - 'refl' reduce using rule 97 - 'refl_{' reduce using rule 97 - '|' reduce using rule 97 - '|->' reduce using rule 97 - '}' reduce using rule 97 - '→' reduce using rule 97 - L_VarIdentTokenreduce using rule 97 - L_HoleIdentTokenreduce using rule 97 - %eof reduce using rule 97 + '(' reduce using rule 99 + ')' reduce using rule 99 + '*' reduce using rule 99 + '*_1' reduce using rule 99 + ',' reduce using rule 99 + '->' reduce using rule 99 + '/\\' reduce using rule 99 + '0_2' reduce using rule 99 + '1' reduce using rule 99 + '1_2' reduce using rule 99 + '2' reduce using rule 99 + ':' reduce using rule 99 + ':=' reduce using rule 99 + ';' reduce using rule 99 + '<' reduce using rule 99 + '<=' reduce using rule 99 + '=' reduce using rule 99 + '===' reduce using rule 99 + '=_{' reduce using rule 99 + '>' reduce using rule 99 + 'BOT' reduce using rule 99 + 'CUBE' reduce using rule 99 + 'TOP' reduce using rule 99 + 'TOPE' reduce using rule 99 + 'U' reduce using rule 99 + '[' reduce using rule 99 + '\\/' reduce using rule 99 + ']' reduce using rule 99 + 'as' reduce using rule 99 + 'idJ' reduce using rule 99 + 'recBOT' reduce using rule 99 + 'recOR' reduce using rule 99 + 'refl' reduce using rule 99 + 'refl_{' reduce using rule 99 + 'unit' reduce using rule 99 + '|' reduce using rule 99 + '|->' reduce using rule 99 + '}' reduce using rule 99 + '→' reduce using rule 99 + L_VarIdentTokenreduce using rule 99 + L_HoleIdentTokenreduce using rule 99 + %eof reduce using rule 99 State 32 - Term1 -> ParamDecl . '->' Term1 (rule 108) - Term1 -> ParamDecl . '→' Term1 (rule 114) + Term1 -> ParamDecl . '->' Term1 (rule 110) + Term1 -> ParamDecl . '→' Term1 (rule 117) - '->' shift, and enter state 179 - '→' shift, and enter state 180 + '->' shift, and enter state 182 + '→' shift, and enter state 183 State 33 - Term6 -> Term7 . (rule 121) - - '(' reduce using rule 121 - ')' reduce using rule 121 - '*' reduce using rule 121 - '*_1' reduce using rule 121 - ',' reduce using rule 121 - '->' reduce using rule 121 - '/\\' reduce using rule 121 - '0_2' reduce using rule 121 - '1' reduce using rule 121 - '1_2' reduce using rule 121 - '2' reduce using rule 121 - ':' reduce using rule 121 - ':=' reduce using rule 121 - ';' reduce using rule 121 - '<' reduce using rule 121 - '<=' reduce using rule 121 - '=' reduce using rule 121 - '===' reduce using rule 121 - '=_{' reduce using rule 121 - '>' reduce using rule 121 - 'BOT' reduce using rule 121 - 'CUBE' reduce using rule 121 - 'TOP' reduce using rule 121 - 'TOPE' reduce using rule 121 - 'U' reduce using rule 121 - '[' reduce using rule 121 - '\\/' reduce using rule 121 - ']' reduce using rule 121 - 'as' reduce using rule 121 - 'idJ' reduce using rule 121 - 'recBOT' reduce using rule 121 - 'recOR' reduce using rule 121 - 'refl' reduce using rule 121 - 'refl_{' reduce using rule 121 - '|' reduce using rule 121 - '|->' reduce using rule 121 - '}' reduce using rule 121 - '→' reduce using rule 121 - L_VarIdentTokenreduce using rule 121 - L_HoleIdentTokenreduce using rule 121 - %eof reduce using rule 121 + Term6 -> Term7 . (rule 124) + + '(' reduce using rule 124 + ')' reduce using rule 124 + '*' reduce using rule 124 + '*_1' reduce using rule 124 + ',' reduce using rule 124 + '->' reduce using rule 124 + '/\\' reduce using rule 124 + '0_2' reduce using rule 124 + '1' reduce using rule 124 + '1_2' reduce using rule 124 + '2' reduce using rule 124 + ':' reduce using rule 124 + ':=' reduce using rule 124 + ';' reduce using rule 124 + '<' reduce using rule 124 + '<=' reduce using rule 124 + '=' reduce using rule 124 + '===' reduce using rule 124 + '=_{' reduce using rule 124 + '>' reduce using rule 124 + 'BOT' reduce using rule 124 + 'CUBE' reduce using rule 124 + 'TOP' reduce using rule 124 + 'TOPE' reduce using rule 124 + 'U' reduce using rule 124 + '[' reduce using rule 124 + '\\/' reduce using rule 124 + ']' reduce using rule 124 + 'as' reduce using rule 124 + 'idJ' reduce using rule 124 + 'recBOT' reduce using rule 124 + 'recOR' reduce using rule 124 + 'refl' reduce using rule 124 + 'refl_{' reduce using rule 124 + 'unit' reduce using rule 124 + '|' reduce using rule 124 + '|->' reduce using rule 124 + '}' reduce using rule 124 + '→' reduce using rule 124 + L_VarIdentTokenreduce using rule 124 + L_HoleIdentTokenreduce using rule 124 + %eof reduce using rule 124 State 34 - Term5 -> Term5 . '*' Term6 (rule 99) - Term4 -> Term5 . '===' Term5 (rule 101) - Term4 -> Term5 . '<=' Term5 (rule 102) - Term4 -> Term5 . (rule 103) - - ')' reduce using rule 103 - '*' shift, and enter state 155 - ',' reduce using rule 103 - '/\\' reduce using rule 103 - ':' reduce using rule 103 - ':=' reduce using rule 103 - ';' reduce using rule 103 - '<=' shift, and enter state 177 - '=' reduce using rule 103 - '===' shift, and enter state 178 - '=_{' reduce using rule 103 - '>' reduce using rule 103 - '\\/' reduce using rule 103 - ']' reduce using rule 103 - 'as' reduce using rule 103 - '|' reduce using rule 103 - '|->' reduce using rule 103 - '}' reduce using rule 103 - %eof reduce using rule 103 - - -State 35 - - Term3 -> Term4 . '/\\' Term3 (rule 104) - Term3 -> Term4 . (rule 105) + Term5 -> Term5 . '*' Term6 (rule 101) + Term4 -> Term5 . '===' Term5 (rule 103) + Term4 -> Term5 . '<=' Term5 (rule 104) + Term4 -> Term5 . (rule 105) ')' reduce using rule 105 + '*' shift, and enter state 158 ',' reduce using rule 105 - '/\\' shift, and enter state 176 + '/\\' reduce using rule 105 ':' reduce using rule 105 ':=' reduce using rule 105 ';' reduce using rule 105 + '<=' shift, and enter state 180 '=' reduce using rule 105 + '===' shift, and enter state 181 '=_{' reduce using rule 105 '>' reduce using rule 105 '\\/' reduce using rule 105 @@ -1216,20 +1224,21 @@ State 35 %eof reduce using rule 105 -State 36 +State 35 - Term2 -> Term3 . '\\/' Term2 (rule 106) - Term2 -> Term3 . (rule 107) + Term3 -> Term4 . '/\\' Term3 (rule 106) + Term3 -> Term4 . (rule 107) ')' reduce using rule 107 ',' reduce using rule 107 + '/\\' shift, and enter state 179 ':' reduce using rule 107 ':=' reduce using rule 107 ';' reduce using rule 107 '=' reduce using rule 107 '=_{' reduce using rule 107 '>' reduce using rule 107 - '\\/' shift, and enter state 175 + '\\/' reduce using rule 107 ']' reduce using rule 107 'as' reduce using rule 107 '|' reduce using rule 107 @@ -1238,108 +1247,131 @@ State 36 %eof reduce using rule 107 +State 36 + + Term2 -> Term3 . '\\/' Term2 (rule 108) + Term2 -> Term3 . (rule 109) + + ')' reduce using rule 109 + ',' reduce using rule 109 + ':' reduce using rule 109 + ':=' reduce using rule 109 + ';' reduce using rule 109 + '=' reduce using rule 109 + '=_{' reduce using rule 109 + '>' reduce using rule 109 + '\\/' shift, and enter state 178 + ']' reduce using rule 109 + 'as' reduce using rule 109 + '|' reduce using rule 109 + '|->' reduce using rule 109 + '}' reduce using rule 109 + %eof reduce using rule 109 + + State 37 - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 110) - Term1 -> Term2 . '=' Term2 (rule 111) - Term1 -> Term2 . (rule 113) - Term -> Term2 . 'as' Term1 (rule 122) + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 113) + Term1 -> Term2 . '=' Term2 (rule 114) + Term1 -> Term2 . (rule 116) + Term -> Term2 . 'as' Term1 (rule 125) - ')' reduce using rule 113 - ',' reduce using rule 113 - ':' reduce using rule 113 - ':=' reduce using rule 113 - ';' reduce using rule 113 - '=' shift, and enter state 156 - '=_{' shift, and enter state 157 - '>' reduce using rule 113 - ']' reduce using rule 113 - 'as' shift, and enter state 174 - '|' reduce using rule 113 - '|->' reduce using rule 113 - '}' reduce using rule 113 - %eof reduce using rule 113 + ')' reduce using rule 116 + ',' reduce using rule 116 + ':' reduce using rule 116 + ':=' reduce using rule 116 + ';' reduce using rule 116 + '=' shift, and enter state 159 + '=_{' shift, and enter state 160 + '>' reduce using rule 116 + ']' reduce using rule 116 + 'as' shift, and enter state 177 + '|' reduce using rule 116 + '|->' reduce using rule 116 + '}' reduce using rule 116 + %eof reduce using rule 116 State 38 - Term -> Term1 . (rule 123) + Term -> Term1 . (rule 126) - ')' reduce using rule 123 - ',' reduce using rule 123 - ':' reduce using rule 123 - ':=' reduce using rule 123 - ';' reduce using rule 123 - '>' reduce using rule 123 - ']' reduce using rule 123 - '|' reduce using rule 123 - '|->' reduce using rule 123 - '}' reduce using rule 123 - %eof reduce using rule 123 + ')' reduce using rule 126 + ',' reduce using rule 126 + ':' reduce using rule 126 + ':=' reduce using rule 126 + ';' reduce using rule 126 + '>' reduce using rule 126 + ']' reduce using rule 126 + '|' reduce using rule 126 + '|->' reduce using rule 126 + '}' reduce using rule 126 + %eof reduce using rule 126 State 39 - ParamDecl -> Term6 . (rule 68) - Term5 -> Term6 . (rule 100) - Term6 -> Term6 . '[' ListRestriction ']' (rule 117) - Term6 -> Term6 . Term7 (rule 118) + ParamDecl -> Term6 . (rule 69) + Term5 -> Term6 . (rule 102) + Term6 -> Term6 . '[' ListRestriction ']' (rule 120) + Term6 -> Term6 . Term7 (rule 121) - '(' shift, and enter state 70 - ')' reduce using rule 100 - '*' reduce using rule 100 + '(' shift, and enter state 72 + ')' reduce using rule 102 + '*' reduce using rule 102 '*_1' shift, and enter state 43 - ',' reduce using rule 100 - '->' reduce using rule 68 - '/\\' reduce using rule 100 + ',' reduce using rule 102 + '->' reduce using rule 69 + '/\\' reduce using rule 102 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 '2' shift, and enter state 47 - ':' reduce using rule 100 - ':=' reduce using rule 100 - ';' reduce using rule 100 + ':' reduce using rule 102 + ':=' reduce using rule 102 + ';' reduce using rule 102 '<' shift, and enter state 48 - '<=' reduce using rule 100 - '=' reduce using rule 100 - '===' reduce using rule 100 - '=_{' reduce using rule 100 - '>' reduce using rule 100 + '<=' reduce using rule 102 + '=' reduce using rule 102 + '===' reduce using rule 102 + '=_{' reduce using rule 102 + '>' reduce using rule 102 'BOT' shift, and enter state 49 'CUBE' shift, and enter state 50 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '[' shift, and enter state 152 - '\\/' reduce using rule 100 - ']' reduce using rule 100 - 'as' reduce using rule 100 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - '|' reduce using rule 100 - '|->' reduce using rule 100 - '}' reduce using rule 100 - '→' reduce using rule 68 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 - %eof reduce using rule 100 + '[' shift, and enter state 155 + '\\/' reduce using rule 102 + ']' reduce using rule 102 + 'as' reduce using rule 102 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + '|' reduce using rule 102 + '|->' reduce using rule 102 + '}' reduce using rule 102 + '→' reduce using rule 69 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 + %eof reduce using rule 102 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 151 + Term7 goto state 154 State 40 - ListTerm -> Term . (rule 124) - ListTerm -> Term . ',' ListTerm (rule 125) + ListTerm -> Term . (rule 127) + ListTerm -> Term . ',' ListTerm (rule 128) - ',' shift, and enter state 173 - %eof reduce using rule 124 + ',' shift, and enter state 176 + %eof reduce using rule 127 State 41 @@ -1351,10 +1383,10 @@ State 41 State 42 - ParamDecl -> '(' . '_' ':' Term ')' (rule 69) - ParamDecl -> '(' . VarIdent ':' Term ')' (rule 71) - Term7 -> '(' . Term ',' Term ')' (rule 91) - Term7 -> '(' . Term ')' (rule 98) + ParamDecl -> '(' . '_' ':' Term ')' (rule 70) + ParamDecl -> '(' . VarIdent ':' Term ')' (rule 72) + Term7 -> '(' . Term ',' Term ')' (rule 92) + Term7 -> '(' . Term ')' (rule 100) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -1369,25 +1401,27 @@ State 42 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - '_' shift, and enter state 172 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + '_' shift, and enter state 175 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 - VarIdent goto state 171 + VarIdent goto state 174 ParamDecl goto state 32 Term7 goto state 33 Term5 goto state 34 @@ -1396,11 +1430,107 @@ State 42 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 158 + Term goto state 161 State 43 - Term7 -> '*_1' . (rule 81) + Term7 -> '*_1' . (rule 82) + + '(' reduce using rule 82 + ')' reduce using rule 82 + '*' reduce using rule 82 + '*_1' reduce using rule 82 + ',' reduce using rule 82 + '->' reduce using rule 82 + '/\\' reduce using rule 82 + '0_2' reduce using rule 82 + '1' reduce using rule 82 + '1_2' reduce using rule 82 + '2' reduce using rule 82 + ':' reduce using rule 82 + ':=' reduce using rule 82 + ';' reduce using rule 82 + '<' reduce using rule 82 + '<=' reduce using rule 82 + '=' reduce using rule 82 + '===' reduce using rule 82 + '=_{' reduce using rule 82 + '>' reduce using rule 82 + 'BOT' reduce using rule 82 + 'CUBE' reduce using rule 82 + 'TOP' reduce using rule 82 + 'TOPE' reduce using rule 82 + 'U' reduce using rule 82 + '[' reduce using rule 82 + '\\/' reduce using rule 82 + ']' reduce using rule 82 + 'as' reduce using rule 82 + 'idJ' reduce using rule 82 + 'recBOT' reduce using rule 82 + 'recOR' reduce using rule 82 + 'refl' reduce using rule 82 + 'refl_{' reduce using rule 82 + 'unit' reduce using rule 82 + '|' reduce using rule 82 + '|->' reduce using rule 82 + '}' reduce using rule 82 + '→' reduce using rule 82 + L_VarIdentTokenreduce using rule 82 + L_HoleIdentTokenreduce using rule 82 + %eof reduce using rule 82 + + +State 44 + + Term7 -> '0_2' . (rule 84) + + '(' reduce using rule 84 + ')' reduce using rule 84 + '*' reduce using rule 84 + '*_1' reduce using rule 84 + ',' reduce using rule 84 + '->' reduce using rule 84 + '/\\' reduce using rule 84 + '0_2' reduce using rule 84 + '1' reduce using rule 84 + '1_2' reduce using rule 84 + '2' reduce using rule 84 + ':' reduce using rule 84 + ':=' reduce using rule 84 + ';' reduce using rule 84 + '<' reduce using rule 84 + '<=' reduce using rule 84 + '=' reduce using rule 84 + '===' reduce using rule 84 + '=_{' reduce using rule 84 + '>' reduce using rule 84 + 'BOT' reduce using rule 84 + 'CUBE' reduce using rule 84 + 'TOP' reduce using rule 84 + 'TOPE' reduce using rule 84 + 'U' reduce using rule 84 + '[' reduce using rule 84 + '\\/' reduce using rule 84 + ']' reduce using rule 84 + 'as' reduce using rule 84 + 'idJ' reduce using rule 84 + 'recBOT' reduce using rule 84 + 'recOR' reduce using rule 84 + 'refl' reduce using rule 84 + 'refl_{' reduce using rule 84 + 'unit' reduce using rule 84 + '|' reduce using rule 84 + '|->' reduce using rule 84 + '}' reduce using rule 84 + '→' reduce using rule 84 + L_VarIdentTokenreduce using rule 84 + L_HoleIdentTokenreduce using rule 84 + %eof reduce using rule 84 + + +State 45 + + Term7 -> '1' . (rule 81) '(' reduce using rule 81 ')' reduce using rule 81 @@ -1436,6 +1566,7 @@ State 43 'recOR' reduce using rule 81 'refl' reduce using rule 81 'refl_{' reduce using rule 81 + 'unit' reduce using rule 81 '|' reduce using rule 81 '|->' reduce using rule 81 '}' reduce using rule 81 @@ -1445,9 +1576,57 @@ State 43 %eof reduce using rule 81 -State 44 +State 46 + + Term7 -> '1_2' . (rule 85) + + '(' reduce using rule 85 + ')' reduce using rule 85 + '*' reduce using rule 85 + '*_1' reduce using rule 85 + ',' reduce using rule 85 + '->' reduce using rule 85 + '/\\' reduce using rule 85 + '0_2' reduce using rule 85 + '1' reduce using rule 85 + '1_2' reduce using rule 85 + '2' reduce using rule 85 + ':' reduce using rule 85 + ':=' reduce using rule 85 + ';' reduce using rule 85 + '<' reduce using rule 85 + '<=' reduce using rule 85 + '=' reduce using rule 85 + '===' reduce using rule 85 + '=_{' reduce using rule 85 + '>' reduce using rule 85 + 'BOT' reduce using rule 85 + 'CUBE' reduce using rule 85 + 'TOP' reduce using rule 85 + 'TOPE' reduce using rule 85 + 'U' reduce using rule 85 + '[' reduce using rule 85 + '\\/' reduce using rule 85 + ']' reduce using rule 85 + 'as' reduce using rule 85 + 'idJ' reduce using rule 85 + 'recBOT' reduce using rule 85 + 'recOR' reduce using rule 85 + 'refl' reduce using rule 85 + 'refl_{' reduce using rule 85 + 'unit' reduce using rule 85 + '|' reduce using rule 85 + '|->' reduce using rule 85 + '}' reduce using rule 85 + '→' reduce using rule 85 + L_VarIdentTokenreduce using rule 85 + L_HoleIdentTokenreduce using rule 85 + %eof reduce using rule 85 + + +State 47 - Term7 -> '0_2' . (rule 83) + Term7 -> '2' . (rule 83) '(' reduce using rule 83 ')' reduce using rule 83 @@ -1483,6 +1662,7 @@ State 44 'recOR' reduce using rule 83 'refl' reduce using rule 83 'refl_{' reduce using rule 83 + 'unit' reduce using rule 83 '|' reduce using rule 83 '|->' reduce using rule 83 '}' reduce using rule 83 @@ -1492,185 +1672,148 @@ State 44 %eof reduce using rule 83 -State 45 +State 48 - Term7 -> '1' . (rule 80) + Term7 -> '<' . ParamDecl '->' Term '>' (rule 91) - '(' reduce using rule 80 - ')' reduce using rule 80 - '*' reduce using rule 80 - '*_1' reduce using rule 80 - ',' reduce using rule 80 - '->' reduce using rule 80 - '/\\' reduce using rule 80 - '0_2' reduce using rule 80 - '1' reduce using rule 80 - '1_2' reduce using rule 80 - '2' reduce using rule 80 - ':' reduce using rule 80 - ':=' reduce using rule 80 - ';' reduce using rule 80 - '<' reduce using rule 80 - '<=' reduce using rule 80 - '=' reduce using rule 80 - '===' reduce using rule 80 - '=_{' reduce using rule 80 - '>' reduce using rule 80 - 'BOT' reduce using rule 80 - 'CUBE' reduce using rule 80 - 'TOP' reduce using rule 80 - 'TOPE' reduce using rule 80 - 'U' reduce using rule 80 - '[' reduce using rule 80 - '\\/' reduce using rule 80 - ']' reduce using rule 80 - 'as' reduce using rule 80 - 'idJ' reduce using rule 80 - 'recBOT' reduce using rule 80 - 'recOR' reduce using rule 80 - 'refl' reduce using rule 80 - 'refl_{' reduce using rule 80 - '|' reduce using rule 80 - '|->' reduce using rule 80 - '}' reduce using rule 80 - '→' reduce using rule 80 - L_VarIdentTokenreduce using rule 80 - L_HoleIdentTokenreduce using rule 80 - %eof reduce using rule 80 + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '0_2' shift, and enter state 44 + '1' shift, and enter state 45 + '1_2' shift, and enter state 46 + '2' shift, and enter state 47 + '<' shift, and enter state 48 + 'BOT' shift, and enter state 49 + 'CUBE' shift, and enter state 50 + 'TOP' shift, and enter state 52 + 'TOPE' shift, and enter state 53 + 'U' shift, and enter state 54 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 173 + Term7 goto state 33 + Term6 goto state 86 -State 46 +State 49 - Term7 -> '1_2' . (rule 84) + Term7 -> 'BOT' . (rule 87) - '(' reduce using rule 84 - ')' reduce using rule 84 - '*' reduce using rule 84 - '*_1' reduce using rule 84 - ',' reduce using rule 84 - '->' reduce using rule 84 - '/\\' reduce using rule 84 - '0_2' reduce using rule 84 - '1' reduce using rule 84 - '1_2' reduce using rule 84 - '2' reduce using rule 84 - ':' reduce using rule 84 - ':=' reduce using rule 84 - ';' reduce using rule 84 - '<' reduce using rule 84 - '<=' reduce using rule 84 - '=' reduce using rule 84 - '===' reduce using rule 84 - '=_{' reduce using rule 84 - '>' reduce using rule 84 - 'BOT' reduce using rule 84 - 'CUBE' reduce using rule 84 - 'TOP' reduce using rule 84 - 'TOPE' reduce using rule 84 - 'U' reduce using rule 84 - '[' reduce using rule 84 - '\\/' reduce using rule 84 - ']' reduce using rule 84 - 'as' reduce using rule 84 - 'idJ' reduce using rule 84 - 'recBOT' reduce using rule 84 - 'recOR' reduce using rule 84 - 'refl' reduce using rule 84 - 'refl_{' reduce using rule 84 - '|' reduce using rule 84 - '|->' reduce using rule 84 - '}' reduce using rule 84 - '→' reduce using rule 84 - L_VarIdentTokenreduce using rule 84 - L_HoleIdentTokenreduce using rule 84 - %eof reduce using rule 84 + '(' reduce using rule 87 + ')' reduce using rule 87 + '*' reduce using rule 87 + '*_1' reduce using rule 87 + ',' reduce using rule 87 + '->' reduce using rule 87 + '/\\' reduce using rule 87 + '0_2' reduce using rule 87 + '1' reduce using rule 87 + '1_2' reduce using rule 87 + '2' reduce using rule 87 + ':' reduce using rule 87 + ':=' reduce using rule 87 + ';' reduce using rule 87 + '<' reduce using rule 87 + '<=' reduce using rule 87 + '=' reduce using rule 87 + '===' reduce using rule 87 + '=_{' reduce using rule 87 + '>' reduce using rule 87 + 'BOT' reduce using rule 87 + 'CUBE' reduce using rule 87 + 'TOP' reduce using rule 87 + 'TOPE' reduce using rule 87 + 'U' reduce using rule 87 + '[' reduce using rule 87 + '\\/' reduce using rule 87 + ']' reduce using rule 87 + 'as' reduce using rule 87 + 'idJ' reduce using rule 87 + 'recBOT' reduce using rule 87 + 'recOR' reduce using rule 87 + 'refl' reduce using rule 87 + 'refl_{' reduce using rule 87 + 'unit' reduce using rule 87 + '|' reduce using rule 87 + '|->' reduce using rule 87 + '}' reduce using rule 87 + '→' reduce using rule 87 + L_VarIdentTokenreduce using rule 87 + L_HoleIdentTokenreduce using rule 87 + %eof reduce using rule 87 -State 47 +State 50 - Term7 -> '2' . (rule 82) + Term7 -> 'CUBE' . (rule 79) - '(' reduce using rule 82 - ')' reduce using rule 82 - '*' reduce using rule 82 - '*_1' reduce using rule 82 - ',' reduce using rule 82 - '->' reduce using rule 82 - '/\\' reduce using rule 82 - '0_2' reduce using rule 82 - '1' reduce using rule 82 - '1_2' reduce using rule 82 - '2' reduce using rule 82 - ':' reduce using rule 82 - ':=' reduce using rule 82 - ';' reduce using rule 82 - '<' reduce using rule 82 - '<=' reduce using rule 82 - '=' reduce using rule 82 - '===' reduce using rule 82 - '=_{' reduce using rule 82 - '>' reduce using rule 82 - 'BOT' reduce using rule 82 - 'CUBE' reduce using rule 82 - 'TOP' reduce using rule 82 - 'TOPE' reduce using rule 82 - 'U' reduce using rule 82 - '[' reduce using rule 82 - '\\/' reduce using rule 82 - ']' reduce using rule 82 - 'as' reduce using rule 82 - 'idJ' reduce using rule 82 - 'recBOT' reduce using rule 82 - 'recOR' reduce using rule 82 - 'refl' reduce using rule 82 - 'refl_{' reduce using rule 82 - '|' reduce using rule 82 - '|->' reduce using rule 82 - '}' reduce using rule 82 - '→' reduce using rule 82 - L_VarIdentTokenreduce using rule 82 - L_HoleIdentTokenreduce using rule 82 - %eof reduce using rule 82 + '(' reduce using rule 79 + ')' reduce using rule 79 + '*' reduce using rule 79 + '*_1' reduce using rule 79 + ',' reduce using rule 79 + '->' reduce using rule 79 + '/\\' reduce using rule 79 + '0_2' reduce using rule 79 + '1' reduce using rule 79 + '1_2' reduce using rule 79 + '2' reduce using rule 79 + ':' reduce using rule 79 + ':=' reduce using rule 79 + ';' reduce using rule 79 + '<' reduce using rule 79 + '<=' reduce using rule 79 + '=' reduce using rule 79 + '===' reduce using rule 79 + '=_{' reduce using rule 79 + '>' reduce using rule 79 + 'BOT' reduce using rule 79 + 'CUBE' reduce using rule 79 + 'TOP' reduce using rule 79 + 'TOPE' reduce using rule 79 + 'U' reduce using rule 79 + '[' reduce using rule 79 + '\\/' reduce using rule 79 + ']' reduce using rule 79 + 'as' reduce using rule 79 + 'idJ' reduce using rule 79 + 'recBOT' reduce using rule 79 + 'recOR' reduce using rule 79 + 'refl' reduce using rule 79 + 'refl_{' reduce using rule 79 + 'unit' reduce using rule 79 + '|' reduce using rule 79 + '|->' reduce using rule 79 + '}' reduce using rule 79 + '→' reduce using rule 79 + L_VarIdentTokenreduce using rule 79 + L_HoleIdentTokenreduce using rule 79 + %eof reduce using rule 79 -State 48 +State 51 - Term7 -> '<' . ParamDecl '->' Term '>' (rule 90) + Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 111) - '(' shift, and enter state 42 - '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + '(' shift, and enter state 172 - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 170 - Term7 goto state 33 - Term6 goto state 84 -State 49 +State 52 - Term7 -> 'BOT' . (rule 86) + Term7 -> 'TOP' . (rule 86) '(' reduce using rule 86 ')' reduce using rule 86 @@ -1706,6 +1849,7 @@ State 49 'recOR' reduce using rule 86 'refl' reduce using rule 86 'refl_{' reduce using rule 86 + 'unit' reduce using rule 86 '|' reduce using rule 86 '|->' reduce using rule 86 '}' reduce using rule 86 @@ -1715,9 +1859,57 @@ State 49 %eof reduce using rule 86 -State 50 +State 53 + + Term7 -> 'TOPE' . (rule 80) + + '(' reduce using rule 80 + ')' reduce using rule 80 + '*' reduce using rule 80 + '*_1' reduce using rule 80 + ',' reduce using rule 80 + '->' reduce using rule 80 + '/\\' reduce using rule 80 + '0_2' reduce using rule 80 + '1' reduce using rule 80 + '1_2' reduce using rule 80 + '2' reduce using rule 80 + ':' reduce using rule 80 + ':=' reduce using rule 80 + ';' reduce using rule 80 + '<' reduce using rule 80 + '<=' reduce using rule 80 + '=' reduce using rule 80 + '===' reduce using rule 80 + '=_{' reduce using rule 80 + '>' reduce using rule 80 + 'BOT' reduce using rule 80 + 'CUBE' reduce using rule 80 + 'TOP' reduce using rule 80 + 'TOPE' reduce using rule 80 + 'U' reduce using rule 80 + '[' reduce using rule 80 + '\\/' reduce using rule 80 + ']' reduce using rule 80 + 'as' reduce using rule 80 + 'idJ' reduce using rule 80 + 'recBOT' reduce using rule 80 + 'recOR' reduce using rule 80 + 'refl' reduce using rule 80 + 'refl_{' reduce using rule 80 + 'unit' reduce using rule 80 + '|' reduce using rule 80 + '|->' reduce using rule 80 + '}' reduce using rule 80 + '→' reduce using rule 80 + L_VarIdentTokenreduce using rule 80 + L_HoleIdentTokenreduce using rule 80 + %eof reduce using rule 80 + + +State 54 - Term7 -> 'CUBE' . (rule 78) + Term7 -> 'U' . (rule 78) '(' reduce using rule 78 ')' reduce using rule 78 @@ -1753,6 +1945,7 @@ State 50 'recOR' reduce using rule 78 'refl' reduce using rule 78 'refl_{' reduce using rule 78 + 'unit' reduce using rule 78 '|' reduce using rule 78 '|->' reduce using rule 78 '}' reduce using rule 78 @@ -1762,174 +1955,44 @@ State 50 %eof reduce using rule 78 -State 51 +State 55 - Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 109) + Term1 -> 'Unit' . (rule 112) - '(' shift, and enter state 169 + ')' reduce using rule 112 + ',' reduce using rule 112 + ':' reduce using rule 112 + ':=' reduce using rule 112 + ';' reduce using rule 112 + '>' reduce using rule 112 + ']' reduce using rule 112 + '|' reduce using rule 112 + '|->' reduce using rule 112 + '}' reduce using rule 112 + %eof reduce using rule 112 -State 52 +State 56 - Term7 -> 'TOP' . (rule 85) + Term1 -> '\\' . ListParam '->' Term1 (rule 115) - '(' reduce using rule 85 - ')' reduce using rule 85 - '*' reduce using rule 85 - '*_1' reduce using rule 85 - ',' reduce using rule 85 - '->' reduce using rule 85 - '/\\' reduce using rule 85 - '0_2' reduce using rule 85 - '1' reduce using rule 85 - '1_2' reduce using rule 85 - '2' reduce using rule 85 - ':' reduce using rule 85 - ':=' reduce using rule 85 - ';' reduce using rule 85 - '<' reduce using rule 85 - '<=' reduce using rule 85 - '=' reduce using rule 85 - '===' reduce using rule 85 - '=_{' reduce using rule 85 - '>' reduce using rule 85 - 'BOT' reduce using rule 85 - 'CUBE' reduce using rule 85 - 'TOP' reduce using rule 85 - 'TOPE' reduce using rule 85 - 'U' reduce using rule 85 - '[' reduce using rule 85 - '\\/' reduce using rule 85 - ']' reduce using rule 85 - 'as' reduce using rule 85 - 'idJ' reduce using rule 85 - 'recBOT' reduce using rule 85 - 'recOR' reduce using rule 85 - 'refl' reduce using rule 85 - 'refl_{' reduce using rule 85 - '|' reduce using rule 85 - '|->' reduce using rule 85 - '}' reduce using rule 85 - '→' reduce using rule 85 - L_VarIdentTokenreduce using rule 85 - L_HoleIdentTokenreduce using rule 85 - %eof reduce using rule 85 - - -State 53 - - Term7 -> 'TOPE' . (rule 79) - - '(' reduce using rule 79 - ')' reduce using rule 79 - '*' reduce using rule 79 - '*_1' reduce using rule 79 - ',' reduce using rule 79 - '->' reduce using rule 79 - '/\\' reduce using rule 79 - '0_2' reduce using rule 79 - '1' reduce using rule 79 - '1_2' reduce using rule 79 - '2' reduce using rule 79 - ':' reduce using rule 79 - ':=' reduce using rule 79 - ';' reduce using rule 79 - '<' reduce using rule 79 - '<=' reduce using rule 79 - '=' reduce using rule 79 - '===' reduce using rule 79 - '=_{' reduce using rule 79 - '>' reduce using rule 79 - 'BOT' reduce using rule 79 - 'CUBE' reduce using rule 79 - 'TOP' reduce using rule 79 - 'TOPE' reduce using rule 79 - 'U' reduce using rule 79 - '[' reduce using rule 79 - '\\/' reduce using rule 79 - ']' reduce using rule 79 - 'as' reduce using rule 79 - 'idJ' reduce using rule 79 - 'recBOT' reduce using rule 79 - 'recOR' reduce using rule 79 - 'refl' reduce using rule 79 - 'refl_{' reduce using rule 79 - '|' reduce using rule 79 - '|->' reduce using rule 79 - '}' reduce using rule 79 - '→' reduce using rule 79 - L_VarIdentTokenreduce using rule 79 - L_HoleIdentTokenreduce using rule 79 - %eof reduce using rule 79 - - -State 54 - - Term7 -> 'U' . (rule 77) - - '(' reduce using rule 77 - ')' reduce using rule 77 - '*' reduce using rule 77 - '*_1' reduce using rule 77 - ',' reduce using rule 77 - '->' reduce using rule 77 - '/\\' reduce using rule 77 - '0_2' reduce using rule 77 - '1' reduce using rule 77 - '1_2' reduce using rule 77 - '2' reduce using rule 77 - ':' reduce using rule 77 - ':=' reduce using rule 77 - ';' reduce using rule 77 - '<' reduce using rule 77 - '<=' reduce using rule 77 - '=' reduce using rule 77 - '===' reduce using rule 77 - '=_{' reduce using rule 77 - '>' reduce using rule 77 - 'BOT' reduce using rule 77 - 'CUBE' reduce using rule 77 - 'TOP' reduce using rule 77 - 'TOPE' reduce using rule 77 - 'U' reduce using rule 77 - '[' reduce using rule 77 - '\\/' reduce using rule 77 - ']' reduce using rule 77 - 'as' reduce using rule 77 - 'idJ' reduce using rule 77 - 'recBOT' reduce using rule 77 - 'recOR' reduce using rule 77 - 'refl' reduce using rule 77 - 'refl_{' reduce using rule 77 - '|' reduce using rule 77 - '|->' reduce using rule 77 - '}' reduce using rule 77 - '→' reduce using rule 77 - L_VarIdentTokenreduce using rule 77 - L_HoleIdentTokenreduce using rule 77 - %eof reduce using rule 77 - - -State 55 - - Term1 -> '\\' . ListParam '->' Term1 (rule 112) - - '(' shift, and enter state 89 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 91 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 87 - ListParam goto state 168 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 171 -State 56 +State 57 - Term6 -> 'first' . Term7 (rule 119) + Term6 -> 'first' . Term7 (rule 122) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -1941,133 +2004,136 @@ State 56 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 167 - -State 57 - - Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) - - '(' shift, and enter state 166 - + Term7 goto state 170 State 58 - Term7 -> 'recBOT' . (rule 87) + Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) - '(' reduce using rule 87 - ')' reduce using rule 87 - '*' reduce using rule 87 - '*_1' reduce using rule 87 - ',' reduce using rule 87 - '->' reduce using rule 87 - '/\\' reduce using rule 87 - '0_2' reduce using rule 87 - '1' reduce using rule 87 - '1_2' reduce using rule 87 - '2' reduce using rule 87 - ':' reduce using rule 87 - ':=' reduce using rule 87 - ';' reduce using rule 87 - '<' reduce using rule 87 - '<=' reduce using rule 87 - '=' reduce using rule 87 - '===' reduce using rule 87 - '=_{' reduce using rule 87 - '>' reduce using rule 87 - 'BOT' reduce using rule 87 - 'CUBE' reduce using rule 87 - 'TOP' reduce using rule 87 - 'TOPE' reduce using rule 87 - 'U' reduce using rule 87 - '[' reduce using rule 87 - '\\/' reduce using rule 87 - ']' reduce using rule 87 - 'as' reduce using rule 87 - 'idJ' reduce using rule 87 - 'recBOT' reduce using rule 87 - 'recOR' reduce using rule 87 - 'refl' reduce using rule 87 - 'refl_{' reduce using rule 87 - '|' reduce using rule 87 - '|->' reduce using rule 87 - '}' reduce using rule 87 - '→' reduce using rule 87 - L_VarIdentTokenreduce using rule 87 - L_HoleIdentTokenreduce using rule 87 - %eof reduce using rule 87 + '(' shift, and enter state 169 State 59 - Term7 -> 'recOR' . '(' ListRestriction ')' (rule 88) - Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 89) + Term7 -> 'recBOT' . (rule 88) - '(' shift, and enter state 165 + '(' reduce using rule 88 + ')' reduce using rule 88 + '*' reduce using rule 88 + '*_1' reduce using rule 88 + ',' reduce using rule 88 + '->' reduce using rule 88 + '/\\' reduce using rule 88 + '0_2' reduce using rule 88 + '1' reduce using rule 88 + '1_2' reduce using rule 88 + '2' reduce using rule 88 + ':' reduce using rule 88 + ':=' reduce using rule 88 + ';' reduce using rule 88 + '<' reduce using rule 88 + '<=' reduce using rule 88 + '=' reduce using rule 88 + '===' reduce using rule 88 + '=_{' reduce using rule 88 + '>' reduce using rule 88 + 'BOT' reduce using rule 88 + 'CUBE' reduce using rule 88 + 'TOP' reduce using rule 88 + 'TOPE' reduce using rule 88 + 'U' reduce using rule 88 + '[' reduce using rule 88 + '\\/' reduce using rule 88 + ']' reduce using rule 88 + 'as' reduce using rule 88 + 'idJ' reduce using rule 88 + 'recBOT' reduce using rule 88 + 'recOR' reduce using rule 88 + 'refl' reduce using rule 88 + 'refl_{' reduce using rule 88 + 'unit' reduce using rule 88 + '|' reduce using rule 88 + '|->' reduce using rule 88 + '}' reduce using rule 88 + '→' reduce using rule 88 + L_VarIdentTokenreduce using rule 88 + L_HoleIdentTokenreduce using rule 88 + %eof reduce using rule 88 State 60 - Term7 -> 'refl' . (rule 92) + Term7 -> 'recOR' . '(' ListRestriction ')' (rule 89) + Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 90) - '(' reduce using rule 92 - ')' reduce using rule 92 - '*' reduce using rule 92 - '*_1' reduce using rule 92 - ',' reduce using rule 92 - '->' reduce using rule 92 - '/\\' reduce using rule 92 - '0_2' reduce using rule 92 - '1' reduce using rule 92 - '1_2' reduce using rule 92 - '2' reduce using rule 92 - ':' reduce using rule 92 - ':=' reduce using rule 92 - ';' reduce using rule 92 - '<' reduce using rule 92 - '<=' reduce using rule 92 - '=' reduce using rule 92 - '===' reduce using rule 92 - '=_{' reduce using rule 92 - '>' reduce using rule 92 - 'BOT' reduce using rule 92 - 'CUBE' reduce using rule 92 - 'TOP' reduce using rule 92 - 'TOPE' reduce using rule 92 - 'U' reduce using rule 92 - '[' reduce using rule 92 - '\\/' reduce using rule 92 - ']' reduce using rule 92 - 'as' reduce using rule 92 - 'idJ' reduce using rule 92 - 'recBOT' reduce using rule 92 - 'recOR' reduce using rule 92 - 'refl' reduce using rule 92 - 'refl_{' reduce using rule 92 - '|' reduce using rule 92 - '|->' reduce using rule 92 - '}' reduce using rule 92 - '→' reduce using rule 92 - L_VarIdentTokenreduce using rule 92 - L_HoleIdentTokenreduce using rule 92 - %eof reduce using rule 92 + '(' shift, and enter state 168 State 61 - Term7 -> 'refl_{' . Term '}' (rule 93) - Term7 -> 'refl_{' . Term ':' Term '}' (rule 94) + Term7 -> 'refl' . (rule 94) + + '(' reduce using rule 94 + ')' reduce using rule 94 + '*' reduce using rule 94 + '*_1' reduce using rule 94 + ',' reduce using rule 94 + '->' reduce using rule 94 + '/\\' reduce using rule 94 + '0_2' reduce using rule 94 + '1' reduce using rule 94 + '1_2' reduce using rule 94 + '2' reduce using rule 94 + ':' reduce using rule 94 + ':=' reduce using rule 94 + ';' reduce using rule 94 + '<' reduce using rule 94 + '<=' reduce using rule 94 + '=' reduce using rule 94 + '===' reduce using rule 94 + '=_{' reduce using rule 94 + '>' reduce using rule 94 + 'BOT' reduce using rule 94 + 'CUBE' reduce using rule 94 + 'TOP' reduce using rule 94 + 'TOPE' reduce using rule 94 + 'U' reduce using rule 94 + '[' reduce using rule 94 + '\\/' reduce using rule 94 + ']' reduce using rule 94 + 'as' reduce using rule 94 + 'idJ' reduce using rule 94 + 'recBOT' reduce using rule 94 + 'recOR' reduce using rule 94 + 'refl' reduce using rule 94 + 'refl_{' reduce using rule 94 + 'unit' reduce using rule 94 + '|' reduce using rule 94 + '|->' reduce using rule 94 + '}' reduce using rule 94 + '→' reduce using rule 94 + L_VarIdentTokenreduce using rule 94 + L_HoleIdentTokenreduce using rule 94 + %eof reduce using rule 94 + + +State 62 + + Term7 -> 'refl_{' . Term '}' (rule 95) + Term7 -> 'refl_{' . Term ':' Term '}' (rule 96) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -2082,19 +2148,21 @@ State 61 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2108,13 +2176,13 @@ State 61 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 164 + Term goto state 167 -State 62 +State 63 - Term6 -> 'second' . Term7 (rule 120) + Term6 -> 'second' . Term7 (rule 123) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -2126,49 +2194,99 @@ State 62 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 166 + +State 64 + + Term7 -> 'unit' . (rule 93) + + '(' reduce using rule 93 + ')' reduce using rule 93 + '*' reduce using rule 93 + '*_1' reduce using rule 93 + ',' reduce using rule 93 + '->' reduce using rule 93 + '/\\' reduce using rule 93 + '0_2' reduce using rule 93 + '1' reduce using rule 93 + '1_2' reduce using rule 93 + '2' reduce using rule 93 + ':' reduce using rule 93 + ':=' reduce using rule 93 + ';' reduce using rule 93 + '<' reduce using rule 93 + '<=' reduce using rule 93 + '=' reduce using rule 93 + '===' reduce using rule 93 + '=_{' reduce using rule 93 + '>' reduce using rule 93 + 'BOT' reduce using rule 93 + 'CUBE' reduce using rule 93 + 'TOP' reduce using rule 93 + 'TOPE' reduce using rule 93 + 'U' reduce using rule 93 + '[' reduce using rule 93 + '\\/' reduce using rule 93 + ']' reduce using rule 93 + 'as' reduce using rule 93 + 'idJ' reduce using rule 93 + 'recBOT' reduce using rule 93 + 'recOR' reduce using rule 93 + 'refl' reduce using rule 93 + 'refl_{' reduce using rule 93 + 'unit' reduce using rule 93 + '|' reduce using rule 93 + '|->' reduce using rule 93 + '}' reduce using rule 93 + '→' reduce using rule 93 + L_VarIdentTokenreduce using rule 93 + L_HoleIdentTokenreduce using rule 93 + %eof reduce using rule 93 - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - Term7 goto state 163 -State 63 +State 65 - ParamDecl -> '{' . Pattern ':' Term '}' (rule 70) - ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 72) - ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 73) + ParamDecl -> '{' . Pattern ':' Term '}' (rule 71) + ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 73) + ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 74) - '(' shift, and enter state 162 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 165 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 161 + VarIdent goto state 87 + Pattern goto state 164 -State 64 +State 66 - Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 115) + Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 118) - '(' shift, and enter state 160 + '(' shift, and enter state 163 -State 65 +State 67 - Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 116) + Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 119) - '(' shift, and enter state 159 + '(' shift, and enter state 162 -State 66 +State 68 VarIdentToken -> L_VarIdentToken . (rule 27) @@ -2207,6 +2325,7 @@ State 66 'recOR' reduce using rule 27 'refl' reduce using rule 27 'refl_{' reduce using rule 27 + 'unit' reduce using rule 27 'uses' reduce using rule 27 '{' reduce using rule 27 '|' reduce using rule 27 @@ -2218,7 +2337,7 @@ State 66 %eof reduce using rule 27 -State 67 +State 69 HoleIdentToken -> L_HoleIdentToken . (rule 28) @@ -2256,6 +2375,7 @@ State 67 'recOR' reduce using rule 28 'refl' reduce using rule 28 'refl_{' reduce using rule 28 + 'unit' reduce using rule 28 '|' reduce using rule 28 '|->' reduce using rule 28 '}' reduce using rule 28 @@ -2265,20 +2385,20 @@ State 67 %eof reduce using rule 28 -State 68 +State 70 %start_pTerm_internal -> Term . (rule 24) %eof accept -State 69 +State 71 %start_pTerm6_internal -> Term6 . (rule 23) - Term6 -> Term6 . '[' ListRestriction ']' (rule 117) - Term6 -> Term6 . Term7 (rule 118) + Term6 -> Term6 . '[' ListRestriction ']' (rule 120) + Term6 -> Term6 . Term7 (rule 121) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -2290,26 +2410,27 @@ State 69 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '[' shift, and enter state 152 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + '[' shift, and enter state 155 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 %eof accept VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 151 + Term7 goto state 154 -State 70 +State 72 - Term7 -> '(' . Term ',' Term ')' (rule 91) - Term7 -> '(' . Term ')' (rule 98) + Term7 -> '(' . Term ',' Term ')' (rule 92) + Term7 -> '(' . Term ')' (rule 100) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -2324,19 +2445,21 @@ State 70 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2350,173 +2473,174 @@ State 70 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 158 + Term goto state 161 -State 71 +State 73 - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 110) - Term1 -> Term2 . '=' Term2 (rule 111) - Term1 -> Term2 . (rule 113) + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 113) + Term1 -> Term2 . '=' Term2 (rule 114) + Term1 -> Term2 . (rule 116) - ')' reduce using rule 113 - ',' reduce using rule 113 - ':' reduce using rule 113 - ':=' reduce using rule 113 - ';' reduce using rule 113 - '=' shift, and enter state 156 - '=_{' shift, and enter state 157 - '>' reduce using rule 113 - ']' reduce using rule 113 - '|' reduce using rule 113 - '|->' reduce using rule 113 - '}' reduce using rule 113 - %eof reduce using rule 113 + ')' reduce using rule 116 + ',' reduce using rule 116 + ':' reduce using rule 116 + ':=' reduce using rule 116 + ';' reduce using rule 116 + '=' shift, and enter state 159 + '=_{' shift, and enter state 160 + '>' reduce using rule 116 + ']' reduce using rule 116 + '|' reduce using rule 116 + '|->' reduce using rule 116 + '}' reduce using rule 116 + %eof reduce using rule 116 -State 72 +State 74 %start_pTerm1_internal -> Term1 . (rule 22) %eof accept -State 73 +State 75 %start_pTerm2_internal -> Term2 . (rule 21) %eof accept -State 74 +State 76 - Term5 -> Term6 . (rule 100) - Term6 -> Term6 . '[' ListRestriction ']' (rule 117) - Term6 -> Term6 . Term7 (rule 118) + Term5 -> Term6 . (rule 102) + Term6 -> Term6 . '[' ListRestriction ']' (rule 120) + Term6 -> Term6 . Term7 (rule 121) - '(' shift, and enter state 70 - ')' reduce using rule 100 - '*' reduce using rule 100 + '(' shift, and enter state 72 + ')' reduce using rule 102 + '*' reduce using rule 102 '*_1' shift, and enter state 43 - ',' reduce using rule 100 - '/\\' reduce using rule 100 + ',' reduce using rule 102 + '/\\' reduce using rule 102 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 '2' shift, and enter state 47 - ':' reduce using rule 100 - ':=' reduce using rule 100 - ';' reduce using rule 100 + ':' reduce using rule 102 + ':=' reduce using rule 102 + ';' reduce using rule 102 '<' shift, and enter state 48 - '<=' reduce using rule 100 - '=' reduce using rule 100 - '===' reduce using rule 100 - '=_{' reduce using rule 100 - '>' reduce using rule 100 + '<=' reduce using rule 102 + '=' reduce using rule 102 + '===' reduce using rule 102 + '=_{' reduce using rule 102 + '>' reduce using rule 102 'BOT' shift, and enter state 49 'CUBE' shift, and enter state 50 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '[' shift, and enter state 152 - '\\/' reduce using rule 100 - ']' reduce using rule 100 - 'as' reduce using rule 100 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - '|' reduce using rule 100 - '|->' reduce using rule 100 - '}' reduce using rule 100 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 - %eof reduce using rule 100 + '[' shift, and enter state 155 + '\\/' reduce using rule 102 + ']' reduce using rule 102 + 'as' reduce using rule 102 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + '|' reduce using rule 102 + '|->' reduce using rule 102 + '}' reduce using rule 102 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 + %eof reduce using rule 102 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 151 + Term7 goto state 154 -State 75 +State 77 %start_pTerm3_internal -> Term3 . (rule 20) %eof accept -State 76 +State 78 %start_pTerm4_internal -> Term4 . (rule 19) %eof accept -State 77 +State 79 %start_pTerm5_internal -> Term5 . (rule 18) - Term5 -> Term5 . '*' Term6 (rule 99) + Term5 -> Term5 . '*' Term6 (rule 101) - '*' shift, and enter state 155 + '*' shift, and enter state 158 %eof accept -State 78 +State 80 %start_pTerm7_internal -> Term7 . (rule 17) %eof accept -State 79 +State 81 - ListRestriction -> Restriction . (rule 75) - ListRestriction -> Restriction . ',' ListRestriction (rule 76) + ListRestriction -> Restriction . (rule 76) + ListRestriction -> Restriction . ',' ListRestriction (rule 77) - ')' reduce using rule 75 - ',' shift, and enter state 154 - ']' reduce using rule 75 - %eof reduce using rule 75 + ')' reduce using rule 76 + ',' shift, and enter state 157 + ']' reduce using rule 76 + %eof reduce using rule 76 -State 80 +State 82 %start_pListRestriction_internal -> ListRestriction . (rule 16) %eof accept -State 81 +State 83 - Restriction -> Term . '|->' Term (rule 74) + Restriction -> Term . '|->' Term (rule 75) - '|->' shift, and enter state 153 + '|->' shift, and enter state 156 -State 82 +State 84 %start_pRestriction_internal -> Restriction . (rule 15) %eof accept -State 83 +State 85 %start_pParamDecl_internal -> ParamDecl . (rule 14) %eof accept -State 84 +State 86 - ParamDecl -> Term6 . (rule 68) - Term6 -> Term6 . '[' ListRestriction ']' (rule 117) - Term6 -> Term6 . Term7 (rule 118) + ParamDecl -> Term6 . (rule 69) + Term6 -> Term6 . '[' ListRestriction ']' (rule 120) + Term6 -> Term6 . Term7 (rule 121) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 - '->' reduce using rule 68 + '->' reduce using rule 69 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 @@ -2527,91 +2651,96 @@ State 84 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '[' shift, and enter state 152 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 - %eof reduce using rule 68 + '[' shift, and enter state 155 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 + %eof reduce using rule 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 151 + Term7 goto state 154 -State 85 +State 87 - Pattern -> VarIdent . (rule 59) + Pattern -> VarIdent . (rule 60) - '(' reduce using rule 59 - ')' reduce using rule 59 - ',' reduce using rule 59 - '->' reduce using rule 59 - ':' reduce using rule 59 - '_' reduce using rule 59 - '{' reduce using rule 59 - L_VarIdentTokenreduce using rule 59 - %eof reduce using rule 59 + '(' reduce using rule 60 + ')' reduce using rule 60 + ',' reduce using rule 60 + '->' reduce using rule 60 + ':' reduce using rule 60 + '_' reduce using rule 60 + 'unit' reduce using rule 60 + '{' reduce using rule 60 + L_VarIdentTokenreduce using rule 60 + %eof reduce using rule 60 -State 86 +State 88 - Param -> Pattern . (rule 63) + Param -> Pattern . (rule 64) - '(' reduce using rule 63 - '->' reduce using rule 63 - ':' reduce using rule 63 - '_' reduce using rule 63 - '{' reduce using rule 63 - L_VarIdentTokenreduce using rule 63 - %eof reduce using rule 63 + '(' reduce using rule 64 + '->' reduce using rule 64 + ':' reduce using rule 64 + '_' reduce using rule 64 + 'unit' reduce using rule 64 + '{' reduce using rule 64 + L_VarIdentTokenreduce using rule 64 + %eof reduce using rule 64 -State 87 +State 89 - ListParam -> Param . (rule 66) - ListParam -> Param . ListParam (rule 67) + ListParam -> Param . (rule 67) + ListParam -> Param . ListParam (rule 68) - '(' shift, and enter state 89 - '->' reduce using rule 66 - ':' reduce using rule 66 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 - %eof reduce using rule 66 + '(' shift, and enter state 91 + '->' reduce using rule 67 + ':' reduce using rule 67 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 + %eof reduce using rule 67 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 87 - ListParam goto state 150 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 153 -State 88 +State 90 %start_pListParam_internal -> ListParam . (rule 13) %eof accept -State 89 +State 91 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 60) - Param -> '(' . ListPattern ':' Term ')' (rule 64) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 61) + Param -> '(' . ListPattern ':' Term ')' (rule 65) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 148 - ListPattern goto state 149 + VarIdent goto state 87 + Pattern goto state 151 + ListPattern goto state 152 -State 90 +State 92 Pattern -> '_' . (rule 58) @@ -2621,73 +2750,93 @@ State 90 '->' reduce using rule 58 ':' reduce using rule 58 '_' reduce using rule 58 + 'unit' reduce using rule 58 '{' reduce using rule 58 L_VarIdentTokenreduce using rule 58 %eof reduce using rule 58 -State 91 +State 93 + + Pattern -> 'unit' . (rule 59) + + '(' reduce using rule 59 + ')' reduce using rule 59 + ',' reduce using rule 59 + '->' reduce using rule 59 + ':' reduce using rule 59 + '_' reduce using rule 59 + 'unit' reduce using rule 59 + '{' reduce using rule 59 + L_VarIdentTokenreduce using rule 59 + %eof reduce using rule 59 + + +State 94 - Param -> '{' . Pattern ':' Term '|' Term '}' (rule 65) + Param -> '{' . Pattern ':' Term '|' Term '}' (rule 66) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 147 + VarIdent goto state 87 + Pattern goto state 150 -State 92 +State 95 %start_pParam_internal -> Param . (rule 12) %eof accept -State 93 +State 96 - ListPattern -> Pattern . (rule 61) - ListPattern -> Pattern . ListPattern (rule 62) + ListPattern -> Pattern . (rule 62) + ListPattern -> Pattern . ListPattern (rule 63) - '(' shift, and enter state 95 - ':' reduce using rule 61 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 - %eof reduce using rule 61 + '(' shift, and enter state 98 + ':' reduce using rule 62 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 + %eof reduce using rule 62 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 93 - ListPattern goto state 146 + VarIdent goto state 87 + Pattern goto state 96 + ListPattern goto state 149 -State 94 +State 97 %start_pListPattern_internal -> ListPattern . (rule 11) %eof accept -State 95 +State 98 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 60) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 61) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 145 + VarIdent goto state 87 + Pattern goto state 148 -State 96 +State 99 %start_pPattern_internal -> Pattern . (rule 10) %eof accept -State 97 +State 100 SectionName -> VarIdent . (rule 57) @@ -2695,52 +2844,52 @@ State 97 %eof reduce using rule 57 -State 98 +State 101 %start_pSectionName_internal -> SectionName . (rule 9) %eof accept -State 99 +State 102 %start_pDeclUsedVars_internal -> DeclUsedVars . (rule 8) %eof accept -State 100 +State 103 DeclUsedVars -> 'uses' . '(' ListVarIdent ')' (rule 54) - '(' shift, and enter state 144 + '(' shift, and enter state 147 -State 101 +State 104 ListCommand -> Command . ';' ListCommand (rule 53) - ';' shift, and enter state 143 + ';' shift, and enter state 146 -State 102 +State 105 %start_pListCommand_internal -> ListCommand . (rule 7) %eof accept -State 103 +State 106 Command -> '#assume' . ListVarIdent ':' Term (rule 44) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 121 - ListVarIdent goto state 142 + VarIdent goto state 124 + ListVarIdent goto state 145 -State 104 +State 107 Command -> '#check' . Term ':' Term (rule 38) @@ -2757,19 +2906,21 @@ State 104 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2783,9 +2934,9 @@ State 104 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 141 + Term goto state 144 -State 105 +State 108 Command -> '#compute' . Term (rule 39) @@ -2802,19 +2953,21 @@ State 105 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2828,9 +2981,9 @@ State 105 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 140 + Term goto state 143 -State 106 +State 109 Command -> '#compute-nf' . Term (rule 41) @@ -2847,19 +3000,21 @@ State 106 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2873,9 +3028,9 @@ State 106 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 139 + Term goto state 142 -State 107 +State 110 Command -> '#compute-whnf' . Term (rule 40) @@ -2892,19 +3047,21 @@ State 107 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2918,99 +3075,99 @@ State 107 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 138 + Term goto state 141 -State 108 +State 111 Command -> '#def' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 50) Command -> '#def' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 51) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 137 + VarIdent goto state 140 -State 109 +State 112 Command -> '#define' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 48) Command -> '#define' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 49) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 136 + VarIdent goto state 139 -State 110 +State 113 Command -> '#postulate' . VarIdent DeclUsedVars ListParam ':' Term (rule 42) Command -> '#postulate' . VarIdent DeclUsedVars ':' Term (rule 43) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 135 + VarIdent goto state 138 -State 111 +State 114 Command -> '#section' . SectionName ';' ListCommand '#end' SectionName (rule 47) ';' reduce using rule 56 - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 97 - SectionName goto state 134 + VarIdent goto state 100 + SectionName goto state 137 -State 112 +State 115 Command -> '#set-option' . String '=' String (rule 36) L_quoted shift, and enter state 27 - String goto state 133 + String goto state 136 -State 113 +State 116 Command -> '#unset-option' . String (rule 37) L_quoted shift, and enter state 27 - String goto state 132 + String goto state 135 -State 114 +State 117 Command -> '#variable' . VarIdent ':' Term (rule 45) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 131 + VarIdent goto state 134 -State 115 +State 118 Command -> '#variables' . ListVarIdent ':' Term (rule 46) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 121 - ListVarIdent goto state 130 + VarIdent goto state 124 + ListVarIdent goto state 133 -State 116 +State 119 %start_pCommand_internal -> Command . (rule 6) %eof accept -State 117 +State 120 %start_pLanguage_internal -> Language . (rule 5) %eof accept -State 118 +State 121 Language -> 'rzk-1' . (rule 35) @@ -3018,93 +3175,93 @@ State 118 %eof reduce using rule 35 -State 119 +State 122 %start_pLanguageDecl_internal -> LanguageDecl . (rule 4) %eof accept -State 120 +State 123 LanguageDecl -> '#lang' . Language ';' (rule 34) - 'rzk-1' shift, and enter state 118 + 'rzk-1' shift, and enter state 121 - Language goto state 129 + Language goto state 132 -State 121 +State 124 ListVarIdent -> VarIdent . (rule 32) ListVarIdent -> VarIdent . ListVarIdent (rule 33) ')' reduce using rule 32 ':' reduce using rule 32 - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 %eof reduce using rule 32 VarIdentToken goto state 28 - VarIdent goto state 121 - ListVarIdent goto state 128 + VarIdent goto state 124 + ListVarIdent goto state 131 -State 122 +State 125 %start_pListVarIdent_internal -> ListVarIdent . (rule 3) %eof accept -State 123 +State 126 %start_pVarIdent_internal -> VarIdent . (rule 2) %eof accept -State 124 +State 127 %start_pHoleIdent_internal -> HoleIdent . (rule 1) %eof accept -State 125 +State 128 %start_pModule_internal -> Module . (rule 0) %eof accept -State 126 +State 129 Module -> LanguageDecl . ListCommand (rule 29) - '#assume' shift, and enter state 103 - '#check' shift, and enter state 104 - '#compute' shift, and enter state 105 - '#compute-nf' shift, and enter state 106 - '#compute-whnf'shift, and enter state 107 - '#def' shift, and enter state 108 - '#define' shift, and enter state 109 - '#postulate' shift, and enter state 110 - '#section' shift, and enter state 111 - '#set-option' shift, and enter state 112 - '#unset-option'shift, and enter state 113 - '#variable' shift, and enter state 114 - '#variables' shift, and enter state 115 + '#assume' shift, and enter state 106 + '#check' shift, and enter state 107 + '#compute' shift, and enter state 108 + '#compute-nf' shift, and enter state 109 + '#compute-whnf'shift, and enter state 110 + '#def' shift, and enter state 111 + '#define' shift, and enter state 112 + '#postulate' shift, and enter state 113 + '#section' shift, and enter state 114 + '#set-option' shift, and enter state 115 + '#unset-option'shift, and enter state 116 + '#variable' shift, and enter state 117 + '#variables' shift, and enter state 118 %eof reduce using rule 52 - Command goto state 101 - ListCommand goto state 127 + Command goto state 104 + ListCommand goto state 130 -State 127 +State 130 Module -> LanguageDecl ListCommand . (rule 29) %eof reduce using rule 29 -State 128 +State 131 ListVarIdent -> VarIdent ListVarIdent . (rule 33) @@ -3113,28 +3270,28 @@ State 128 %eof reduce using rule 33 -State 129 +State 132 LanguageDecl -> '#lang' Language . ';' (rule 34) - ';' shift, and enter state 225 + ';' shift, and enter state 228 -State 130 +State 133 Command -> '#variables' ListVarIdent . ':' Term (rule 46) - ':' shift, and enter state 224 + ':' shift, and enter state 227 -State 131 +State 134 Command -> '#variable' VarIdent . ':' Term (rule 45) - ':' shift, and enter state 223 + ':' shift, and enter state 226 -State 132 +State 135 Command -> '#unset-option' String . (rule 37) @@ -3142,21 +3299,21 @@ State 132 %eof reduce using rule 37 -State 133 +State 136 Command -> '#set-option' String . '=' String (rule 36) - '=' shift, and enter state 222 + '=' shift, and enter state 225 -State 134 +State 137 Command -> '#section' SectionName . ';' ListCommand '#end' SectionName (rule 47) - ';' shift, and enter state 221 + ';' shift, and enter state 224 -State 135 +State 138 Command -> '#postulate' VarIdent . DeclUsedVars ListParam ':' Term (rule 42) Command -> '#postulate' VarIdent . DeclUsedVars ':' Term (rule 43) @@ -3164,13 +3321,14 @@ State 135 '(' reduce using rule 55 ':' reduce using rule 55 '_' reduce using rule 55 - 'uses' shift, and enter state 100 + 'unit' reduce using rule 55 + 'uses' shift, and enter state 103 '{' reduce using rule 55 L_VarIdentTokenreduce using rule 55 - DeclUsedVars goto state 220 + DeclUsedVars goto state 223 -State 136 +State 139 Command -> '#define' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 48) Command -> '#define' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 49) @@ -3178,13 +3336,14 @@ State 136 '(' reduce using rule 55 ':' reduce using rule 55 '_' reduce using rule 55 - 'uses' shift, and enter state 100 + 'unit' reduce using rule 55 + 'uses' shift, and enter state 103 '{' reduce using rule 55 L_VarIdentTokenreduce using rule 55 - DeclUsedVars goto state 219 + DeclUsedVars goto state 222 -State 137 +State 140 Command -> '#def' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 50) Command -> '#def' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 51) @@ -3192,13 +3351,14 @@ State 137 '(' reduce using rule 55 ':' reduce using rule 55 '_' reduce using rule 55 - 'uses' shift, and enter state 100 + 'unit' reduce using rule 55 + 'uses' shift, and enter state 103 '{' reduce using rule 55 L_VarIdentTokenreduce using rule 55 - DeclUsedVars goto state 218 + DeclUsedVars goto state 221 -State 138 +State 141 Command -> '#compute-whnf' Term . (rule 40) @@ -3206,7 +3366,7 @@ State 138 %eof reduce using rule 40 -State 139 +State 142 Command -> '#compute-nf' Term . (rule 41) @@ -3214,7 +3374,7 @@ State 139 %eof reduce using rule 41 -State 140 +State 143 Command -> '#compute' Term . (rule 39) @@ -3222,158 +3382,160 @@ State 140 %eof reduce using rule 39 -State 141 +State 144 Command -> '#check' Term . ':' Term (rule 38) - ':' shift, and enter state 217 + ':' shift, and enter state 220 -State 142 +State 145 Command -> '#assume' ListVarIdent . ':' Term (rule 44) - ':' shift, and enter state 216 + ':' shift, and enter state 219 -State 143 +State 146 ListCommand -> Command ';' . ListCommand (rule 53) - '#assume' shift, and enter state 103 - '#check' shift, and enter state 104 - '#compute' shift, and enter state 105 - '#compute-nf' shift, and enter state 106 - '#compute-whnf'shift, and enter state 107 - '#def' shift, and enter state 108 - '#define' shift, and enter state 109 + '#assume' shift, and enter state 106 + '#check' shift, and enter state 107 + '#compute' shift, and enter state 108 + '#compute-nf' shift, and enter state 109 + '#compute-whnf'shift, and enter state 110 + '#def' shift, and enter state 111 + '#define' shift, and enter state 112 '#end' reduce using rule 52 - '#postulate' shift, and enter state 110 - '#section' shift, and enter state 111 - '#set-option' shift, and enter state 112 - '#unset-option'shift, and enter state 113 - '#variable' shift, and enter state 114 - '#variables' shift, and enter state 115 + '#postulate' shift, and enter state 113 + '#section' shift, and enter state 114 + '#set-option' shift, and enter state 115 + '#unset-option'shift, and enter state 116 + '#variable' shift, and enter state 117 + '#variables' shift, and enter state 118 %eof reduce using rule 52 - Command goto state 101 - ListCommand goto state 215 + Command goto state 104 + ListCommand goto state 218 -State 144 +State 147 DeclUsedVars -> 'uses' '(' . ListVarIdent ')' (rule 54) - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 121 - ListVarIdent goto state 214 + VarIdent goto state 124 + ListVarIdent goto state 217 -State 145 +State 148 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 60) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 61) - ',' shift, and enter state 212 + ',' shift, and enter state 215 -State 146 +State 149 - ListPattern -> Pattern ListPattern . (rule 62) + ListPattern -> Pattern ListPattern . (rule 63) - ':' reduce using rule 62 - %eof reduce using rule 62 + ':' reduce using rule 63 + %eof reduce using rule 63 -State 147 +State 150 - Param -> '{' Pattern . ':' Term '|' Term '}' (rule 65) + Param -> '{' Pattern . ':' Term '|' Term '}' (rule 66) - ':' shift, and enter state 213 + ':' shift, and enter state 216 -State 148 +State 151 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 60) - ListPattern -> Pattern . (rule 61) - ListPattern -> Pattern . ListPattern (rule 62) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 61) + ListPattern -> Pattern . (rule 62) + ListPattern -> Pattern . ListPattern (rule 63) - '(' shift, and enter state 95 - ',' shift, and enter state 212 - ':' reduce using rule 61 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + ',' shift, and enter state 215 + ':' reduce using rule 62 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 93 - ListPattern goto state 146 + VarIdent goto state 87 + Pattern goto state 96 + ListPattern goto state 149 -State 149 +State 152 - Param -> '(' ListPattern . ':' Term ')' (rule 64) + Param -> '(' ListPattern . ':' Term ')' (rule 65) - ':' shift, and enter state 211 + ':' shift, and enter state 214 -State 150 +State 153 - ListParam -> Param ListParam . (rule 67) + ListParam -> Param ListParam . (rule 68) - '->' reduce using rule 67 - ':' reduce using rule 67 - %eof reduce using rule 67 + '->' reduce using rule 68 + ':' reduce using rule 68 + %eof reduce using rule 68 -State 151 +State 154 - Term6 -> Term6 Term7 . (rule 118) + Term6 -> Term6 Term7 . (rule 121) - '(' reduce using rule 118 - ')' reduce using rule 118 - '*' reduce using rule 118 - '*_1' reduce using rule 118 - ',' reduce using rule 118 - '->' reduce using rule 118 - '/\\' reduce using rule 118 - '0_2' reduce using rule 118 - '1' reduce using rule 118 - '1_2' reduce using rule 118 - '2' reduce using rule 118 - ':' reduce using rule 118 - ':=' reduce using rule 118 - ';' reduce using rule 118 - '<' reduce using rule 118 - '<=' reduce using rule 118 - '=' reduce using rule 118 - '===' reduce using rule 118 - '=_{' reduce using rule 118 - '>' reduce using rule 118 - 'BOT' reduce using rule 118 - 'CUBE' reduce using rule 118 - 'TOP' reduce using rule 118 - 'TOPE' reduce using rule 118 - 'U' reduce using rule 118 - '[' reduce using rule 118 - '\\/' reduce using rule 118 - ']' reduce using rule 118 - 'as' reduce using rule 118 - 'idJ' reduce using rule 118 - 'recBOT' reduce using rule 118 - 'recOR' reduce using rule 118 - 'refl' reduce using rule 118 - 'refl_{' reduce using rule 118 - '|' reduce using rule 118 - '|->' reduce using rule 118 - '}' reduce using rule 118 - '→' reduce using rule 118 - L_VarIdentTokenreduce using rule 118 - L_HoleIdentTokenreduce using rule 118 - %eof reduce using rule 118 + '(' reduce using rule 121 + ')' reduce using rule 121 + '*' reduce using rule 121 + '*_1' reduce using rule 121 + ',' reduce using rule 121 + '->' reduce using rule 121 + '/\\' reduce using rule 121 + '0_2' reduce using rule 121 + '1' reduce using rule 121 + '1_2' reduce using rule 121 + '2' reduce using rule 121 + ':' reduce using rule 121 + ':=' reduce using rule 121 + ';' reduce using rule 121 + '<' reduce using rule 121 + '<=' reduce using rule 121 + '=' reduce using rule 121 + '===' reduce using rule 121 + '=_{' reduce using rule 121 + '>' reduce using rule 121 + 'BOT' reduce using rule 121 + 'CUBE' reduce using rule 121 + 'TOP' reduce using rule 121 + 'TOPE' reduce using rule 121 + 'U' reduce using rule 121 + '[' reduce using rule 121 + '\\/' reduce using rule 121 + ']' reduce using rule 121 + 'as' reduce using rule 121 + 'idJ' reduce using rule 121 + 'recBOT' reduce using rule 121 + 'recOR' reduce using rule 121 + 'refl' reduce using rule 121 + 'refl_{' reduce using rule 121 + 'unit' reduce using rule 121 + '|' reduce using rule 121 + '|->' reduce using rule 121 + '}' reduce using rule 121 + '→' reduce using rule 121 + L_VarIdentTokenreduce using rule 121 + L_HoleIdentTokenreduce using rule 121 + %eof reduce using rule 121 -State 152 +State 155 - Term6 -> Term6 '[' . ListRestriction ']' (rule 117) + Term6 -> Term6 '[' . ListRestriction ']' (rule 120) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3388,27 +3550,29 @@ State 152 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 79 - ListRestrictiongoto state 210 + Restriction goto state 81 + ListRestrictiongoto state 213 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -3416,11 +3580,11 @@ State 152 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 81 + Term goto state 83 -State 153 +State 156 - Restriction -> Term '|->' . Term (rule 74) + Restriction -> Term '|->' . Term (rule 75) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3435,19 +3599,21 @@ State 153 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3461,11 +3627,11 @@ State 153 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 209 + Term goto state 212 -State 154 +State 157 - ListRestriction -> Restriction ',' . ListRestriction (rule 76) + ListRestriction -> Restriction ',' . ListRestriction (rule 77) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3480,27 +3646,29 @@ State 154 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 79 - ListRestrictiongoto state 208 + Restriction goto state 81 + ListRestrictiongoto state 211 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -3508,13 +3676,13 @@ State 154 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 81 + Term goto state 83 -State 155 +State 158 - Term5 -> Term5 '*' . Term6 (rule 99) + Term5 -> Term5 '*' . Term6 (rule 101) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -3526,28 +3694,29 @@ State 155 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term6 goto state 207 + Term6 goto state 210 -State 156 +State 159 - Term1 -> Term2 '=' . Term2 (rule 111) + Term1 -> Term2 '=' . Term2 (rule 114) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -3559,15 +3728,16 @@ State 156 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3577,12 +3747,12 @@ State 156 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 206 - Term6 goto state 74 + Term2 goto state 209 + Term6 goto state 76 -State 157 +State 160 - Term1 -> Term2 '=_{' . Term '}' Term2 (rule 110) + Term1 -> Term2 '=_{' . Term '}' Term2 (rule 113) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3597,148 +3767,154 @@ State 157 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 - - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 32 - Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 37 - Term1 goto state 38 - Term6 goto state 39 - Term goto state 205 - -State 158 - - Term7 -> '(' Term . ',' Term ')' (rule 91) - Term7 -> '(' Term . ')' (rule 98) - - ')' shift, and enter state 203 - ',' shift, and enter state 204 - - -State 159 - - Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 116) - - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 - - VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 202 - -State 160 - - Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 115) - - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 - - VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 201 - -State 161 - - ParamDecl -> '{' Pattern . ':' Term '}' (rule 70) - ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 73) - - ':' shift, and enter state 200 - - -State 162 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 60) - ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 72) - - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 - - VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 199 - -State 163 - - Term6 -> 'second' Term7 . (rule 120) - - '(' reduce using rule 120 - ')' reduce using rule 120 - '*' reduce using rule 120 - '*_1' reduce using rule 120 - ',' reduce using rule 120 - '->' reduce using rule 120 - '/\\' reduce using rule 120 - '0_2' reduce using rule 120 - '1' reduce using rule 120 - '1_2' reduce using rule 120 - '2' reduce using rule 120 - ':' reduce using rule 120 - ':=' reduce using rule 120 - ';' reduce using rule 120 - '<' reduce using rule 120 - '<=' reduce using rule 120 - '=' reduce using rule 120 - '===' reduce using rule 120 - '=_{' reduce using rule 120 - '>' reduce using rule 120 - 'BOT' reduce using rule 120 - 'CUBE' reduce using rule 120 - 'TOP' reduce using rule 120 - 'TOPE' reduce using rule 120 - 'U' reduce using rule 120 - '[' reduce using rule 120 - '\\/' reduce using rule 120 - ']' reduce using rule 120 - 'as' reduce using rule 120 - 'idJ' reduce using rule 120 - 'recBOT' reduce using rule 120 - 'recOR' reduce using rule 120 - 'refl' reduce using rule 120 - 'refl_{' reduce using rule 120 - '|' reduce using rule 120 - '|->' reduce using rule 120 - '}' reduce using rule 120 - '→' reduce using rule 120 - L_VarIdentTokenreduce using rule 120 - L_HoleIdentTokenreduce using rule 120 - %eof reduce using rule 120 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 208 + +State 161 + + Term7 -> '(' Term . ',' Term ')' (rule 92) + Term7 -> '(' Term . ')' (rule 100) + + ')' shift, and enter state 206 + ',' shift, and enter state 207 +State 162 + + Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 119) + + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 + + VarIdentToken goto state 28 + VarIdent goto state 87 + Pattern goto state 205 + +State 163 + + Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 118) + + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 + + VarIdentToken goto state 28 + VarIdent goto state 87 + Pattern goto state 204 + State 164 - Term7 -> 'refl_{' Term . '}' (rule 93) - Term7 -> 'refl_{' Term . ':' Term '}' (rule 94) + ParamDecl -> '{' Pattern . ':' Term '}' (rule 71) + ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 74) - ':' shift, and enter state 197 - '}' shift, and enter state 198 + ':' shift, and enter state 203 State 165 - Term7 -> 'recOR' '(' . ListRestriction ')' (rule 88) - Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 89) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 61) + ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 73) + + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 + + VarIdentToken goto state 28 + VarIdent goto state 87 + Pattern goto state 202 + +State 166 + + Term6 -> 'second' Term7 . (rule 123) + + '(' reduce using rule 123 + ')' reduce using rule 123 + '*' reduce using rule 123 + '*_1' reduce using rule 123 + ',' reduce using rule 123 + '->' reduce using rule 123 + '/\\' reduce using rule 123 + '0_2' reduce using rule 123 + '1' reduce using rule 123 + '1_2' reduce using rule 123 + '2' reduce using rule 123 + ':' reduce using rule 123 + ':=' reduce using rule 123 + ';' reduce using rule 123 + '<' reduce using rule 123 + '<=' reduce using rule 123 + '=' reduce using rule 123 + '===' reduce using rule 123 + '=_{' reduce using rule 123 + '>' reduce using rule 123 + 'BOT' reduce using rule 123 + 'CUBE' reduce using rule 123 + 'TOP' reduce using rule 123 + 'TOPE' reduce using rule 123 + 'U' reduce using rule 123 + '[' reduce using rule 123 + '\\/' reduce using rule 123 + ']' reduce using rule 123 + 'as' reduce using rule 123 + 'idJ' reduce using rule 123 + 'recBOT' reduce using rule 123 + 'recOR' reduce using rule 123 + 'refl' reduce using rule 123 + 'refl_{' reduce using rule 123 + 'unit' reduce using rule 123 + '|' reduce using rule 123 + '|->' reduce using rule 123 + '}' reduce using rule 123 + '→' reduce using rule 123 + L_VarIdentTokenreduce using rule 123 + L_HoleIdentTokenreduce using rule 123 + %eof reduce using rule 123 + + +State 167 + + Term7 -> 'refl_{' Term . '}' (rule 95) + Term7 -> 'refl_{' Term . ':' Term '}' (rule 96) + + ':' shift, and enter state 200 + '}' shift, and enter state 201 + + +State 168 + + Term7 -> 'recOR' '(' . ListRestriction ')' (rule 89) + Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 90) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3753,27 +3929,29 @@ State 165 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 79 - ListRestrictiongoto state 195 + Restriction goto state 81 + ListRestrictiongoto state 198 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -3781,11 +3959,11 @@ State 165 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 196 + Term goto state 199 -State 166 +State 169 - Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3800,19 +3978,21 @@ State 166 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3826,131 +4006,134 @@ State 166 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 194 + Term goto state 197 -State 167 +State 170 - Term6 -> 'first' Term7 . (rule 119) + Term6 -> 'first' Term7 . (rule 122) - '(' reduce using rule 119 - ')' reduce using rule 119 - '*' reduce using rule 119 - '*_1' reduce using rule 119 - ',' reduce using rule 119 - '->' reduce using rule 119 - '/\\' reduce using rule 119 - '0_2' reduce using rule 119 - '1' reduce using rule 119 - '1_2' reduce using rule 119 - '2' reduce using rule 119 - ':' reduce using rule 119 - ':=' reduce using rule 119 - ';' reduce using rule 119 - '<' reduce using rule 119 - '<=' reduce using rule 119 - '=' reduce using rule 119 - '===' reduce using rule 119 - '=_{' reduce using rule 119 - '>' reduce using rule 119 - 'BOT' reduce using rule 119 - 'CUBE' reduce using rule 119 - 'TOP' reduce using rule 119 - 'TOPE' reduce using rule 119 - 'U' reduce using rule 119 - '[' reduce using rule 119 - '\\/' reduce using rule 119 - ']' reduce using rule 119 - 'as' reduce using rule 119 - 'idJ' reduce using rule 119 - 'recBOT' reduce using rule 119 - 'recOR' reduce using rule 119 - 'refl' reduce using rule 119 - 'refl_{' reduce using rule 119 - '|' reduce using rule 119 - '|->' reduce using rule 119 - '}' reduce using rule 119 - '→' reduce using rule 119 - L_VarIdentTokenreduce using rule 119 - L_HoleIdentTokenreduce using rule 119 - %eof reduce using rule 119 + '(' reduce using rule 122 + ')' reduce using rule 122 + '*' reduce using rule 122 + '*_1' reduce using rule 122 + ',' reduce using rule 122 + '->' reduce using rule 122 + '/\\' reduce using rule 122 + '0_2' reduce using rule 122 + '1' reduce using rule 122 + '1_2' reduce using rule 122 + '2' reduce using rule 122 + ':' reduce using rule 122 + ':=' reduce using rule 122 + ';' reduce using rule 122 + '<' reduce using rule 122 + '<=' reduce using rule 122 + '=' reduce using rule 122 + '===' reduce using rule 122 + '=_{' reduce using rule 122 + '>' reduce using rule 122 + 'BOT' reduce using rule 122 + 'CUBE' reduce using rule 122 + 'TOP' reduce using rule 122 + 'TOPE' reduce using rule 122 + 'U' reduce using rule 122 + '[' reduce using rule 122 + '\\/' reduce using rule 122 + ']' reduce using rule 122 + 'as' reduce using rule 122 + 'idJ' reduce using rule 122 + 'recBOT' reduce using rule 122 + 'recOR' reduce using rule 122 + 'refl' reduce using rule 122 + 'refl_{' reduce using rule 122 + 'unit' reduce using rule 122 + '|' reduce using rule 122 + '|->' reduce using rule 122 + '}' reduce using rule 122 + '→' reduce using rule 122 + L_VarIdentTokenreduce using rule 122 + L_HoleIdentTokenreduce using rule 122 + %eof reduce using rule 122 -State 168 +State 171 - Term1 -> '\\' ListParam . '->' Term1 (rule 112) + Term1 -> '\\' ListParam . '->' Term1 (rule 115) - '->' shift, and enter state 193 + '->' shift, and enter state 196 -State 169 +State 172 - Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 109) + Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 111) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 192 + VarIdent goto state 87 + Pattern goto state 195 -State 170 +State 173 - Term7 -> '<' ParamDecl . '->' Term '>' (rule 90) + Term7 -> '<' ParamDecl . '->' Term '>' (rule 91) - '->' shift, and enter state 191 + '->' shift, and enter state 194 -State 171 +State 174 - ParamDecl -> '(' VarIdent . ':' Term ')' (rule 71) - Term7 -> VarIdent . (rule 97) + ParamDecl -> '(' VarIdent . ':' Term ')' (rule 72) + Term7 -> VarIdent . (rule 99) - '(' reduce using rule 97 - ')' reduce using rule 97 - '*' reduce using rule 97 - '*_1' reduce using rule 97 - ',' reduce using rule 97 - '->' reduce using rule 97 - '/\\' reduce using rule 97 - '0_2' reduce using rule 97 - '1' reduce using rule 97 - '1_2' reduce using rule 97 - '2' reduce using rule 97 - ':' shift, and enter state 190 - '<' reduce using rule 97 - '<=' reduce using rule 97 - '=' reduce using rule 97 - '===' reduce using rule 97 - '=_{' reduce using rule 97 - 'BOT' reduce using rule 97 - 'CUBE' reduce using rule 97 - 'TOP' reduce using rule 97 - 'TOPE' reduce using rule 97 - 'U' reduce using rule 97 - '[' reduce using rule 97 - '\\/' reduce using rule 97 - 'as' reduce using rule 97 - 'idJ' reduce using rule 97 - 'recBOT' reduce using rule 97 - 'recOR' reduce using rule 97 - 'refl' reduce using rule 97 - 'refl_{' reduce using rule 97 - '→' reduce using rule 97 - L_VarIdentTokenreduce using rule 97 - L_HoleIdentTokenreduce using rule 97 + '(' reduce using rule 99 + ')' reduce using rule 99 + '*' reduce using rule 99 + '*_1' reduce using rule 99 + ',' reduce using rule 99 + '->' reduce using rule 99 + '/\\' reduce using rule 99 + '0_2' reduce using rule 99 + '1' reduce using rule 99 + '1_2' reduce using rule 99 + '2' reduce using rule 99 + ':' shift, and enter state 193 + '<' reduce using rule 99 + '<=' reduce using rule 99 + '=' reduce using rule 99 + '===' reduce using rule 99 + '=_{' reduce using rule 99 + 'BOT' reduce using rule 99 + 'CUBE' reduce using rule 99 + 'TOP' reduce using rule 99 + 'TOPE' reduce using rule 99 + 'U' reduce using rule 99 + '[' reduce using rule 99 + '\\/' reduce using rule 99 + 'as' reduce using rule 99 + 'idJ' reduce using rule 99 + 'recBOT' reduce using rule 99 + 'recOR' reduce using rule 99 + 'refl' reduce using rule 99 + 'refl_{' reduce using rule 99 + 'unit' reduce using rule 99 + '→' reduce using rule 99 + L_VarIdentTokenreduce using rule 99 + L_HoleIdentTokenreduce using rule 99 -State 172 +State 175 - ParamDecl -> '(' '_' . ':' Term ')' (rule 69) + ParamDecl -> '(' '_' . ':' Term ')' (rule 70) - ':' shift, and enter state 189 + ':' shift, and enter state 192 -State 173 +State 176 - ListTerm -> Term ',' . ListTerm (rule 125) + ListTerm -> Term ',' . ListTerm (rule 128) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -3965,19 +4148,21 @@ State 173 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3992,11 +4177,11 @@ State 173 Term1 goto state 38 Term6 goto state 39 Term goto state 40 - ListTerm goto state 188 + ListTerm goto state 191 -State 174 +State 177 - Term -> Term2 'as' . Term1 (rule 122) + Term -> Term2 'as' . Term1 (rule 125) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4011,19 +4196,21 @@ State 174 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4034,15 +4221,15 @@ State 174 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 187 + Term2 goto state 73 + Term1 goto state 190 Term6 goto state 39 -State 175 +State 178 - Term2 -> Term3 '\\/' . Term2 (rule 106) + Term2 -> Term3 '\\/' . Term2 (rule 108) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -4054,15 +4241,16 @@ State 175 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4072,14 +4260,14 @@ State 175 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 186 - Term6 goto state 74 + Term2 goto state 189 + Term6 goto state 76 -State 176 +State 179 - Term3 -> Term4 '/\\' . Term3 (rule 104) + Term3 -> Term4 '/\\' . Term3 (rule 106) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -4091,15 +4279,16 @@ State 176 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4108,14 +4297,14 @@ State 176 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 - Term3 goto state 185 - Term6 goto state 74 + Term3 goto state 188 + Term6 goto state 76 -State 177 +State 180 - Term4 -> Term5 '<=' . Term5 (rule 102) + Term4 -> Term5 '<=' . Term5 (rule 104) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -4127,29 +4316,30 @@ State 177 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 184 - Term6 goto state 74 + Term5 goto state 187 + Term6 goto state 76 -State 178 +State 181 - Term4 -> Term5 '===' . Term5 (rule 101) + Term4 -> Term5 '===' . Term5 (rule 103) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -4161,27 +4351,28 @@ State 178 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 183 - Term6 goto state 74 + Term5 goto state 186 + Term6 goto state 76 -State 179 +State 182 - Term1 -> ParamDecl '->' . Term1 (rule 108) + Term1 -> ParamDecl '->' . Term1 (rule 110) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4196,19 +4387,21 @@ State 179 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4219,13 +4412,13 @@ State 179 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 182 + Term2 goto state 73 + Term1 goto state 185 Term6 goto state 39 -State 180 +State 183 - Term1 -> ParamDecl '→' . Term1 (rule 114) + Term1 -> ParamDecl '→' . Term1 (rule 117) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4240,19 +4433,21 @@ State 180 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4263,98 +4458,77 @@ State 180 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 181 + Term2 goto state 73 + Term1 goto state 184 Term6 goto state 39 -State 181 - - Term1 -> ParamDecl '→' Term1 . (rule 114) - - ')' reduce using rule 114 - ',' reduce using rule 114 - ':' reduce using rule 114 - ':=' reduce using rule 114 - ';' reduce using rule 114 - '>' reduce using rule 114 - ']' reduce using rule 114 - '|' reduce using rule 114 - '|->' reduce using rule 114 - '}' reduce using rule 114 - %eof reduce using rule 114 - - -State 182 +State 184 - Term1 -> ParamDecl '->' Term1 . (rule 108) + Term1 -> ParamDecl '→' Term1 . (rule 117) - ')' reduce using rule 108 - ',' reduce using rule 108 - ':' reduce using rule 108 - ':=' reduce using rule 108 - ';' reduce using rule 108 - '>' reduce using rule 108 - ']' reduce using rule 108 - '|' reduce using rule 108 - '|->' reduce using rule 108 - '}' reduce using rule 108 - %eof reduce using rule 108 + ')' reduce using rule 117 + ',' reduce using rule 117 + ':' reduce using rule 117 + ':=' reduce using rule 117 + ';' reduce using rule 117 + '>' reduce using rule 117 + ']' reduce using rule 117 + '|' reduce using rule 117 + '|->' reduce using rule 117 + '}' reduce using rule 117 + %eof reduce using rule 117 -State 183 +State 185 - Term5 -> Term5 . '*' Term6 (rule 99) - Term4 -> Term5 '===' Term5 . (rule 101) + Term1 -> ParamDecl '->' Term1 . (rule 110) - ')' reduce using rule 101 - '*' shift, and enter state 155 - ',' reduce using rule 101 - '/\\' reduce using rule 101 - ':' reduce using rule 101 - ':=' reduce using rule 101 - ';' reduce using rule 101 - '=' reduce using rule 101 - '=_{' reduce using rule 101 - '>' reduce using rule 101 - '\\/' reduce using rule 101 - ']' reduce using rule 101 - 'as' reduce using rule 101 - '|' reduce using rule 101 - '|->' reduce using rule 101 - '}' reduce using rule 101 - %eof reduce using rule 101 + ')' reduce using rule 110 + ',' reduce using rule 110 + ':' reduce using rule 110 + ':=' reduce using rule 110 + ';' reduce using rule 110 + '>' reduce using rule 110 + ']' reduce using rule 110 + '|' reduce using rule 110 + '|->' reduce using rule 110 + '}' reduce using rule 110 + %eof reduce using rule 110 -State 184 +State 186 - Term5 -> Term5 . '*' Term6 (rule 99) - Term4 -> Term5 '<=' Term5 . (rule 102) + Term5 -> Term5 . '*' Term6 (rule 101) + Term4 -> Term5 '===' Term5 . (rule 103) - ')' reduce using rule 102 - '*' shift, and enter state 155 - ',' reduce using rule 102 - '/\\' reduce using rule 102 - ':' reduce using rule 102 - ':=' reduce using rule 102 - ';' reduce using rule 102 - '=' reduce using rule 102 - '=_{' reduce using rule 102 - '>' reduce using rule 102 - '\\/' reduce using rule 102 - ']' reduce using rule 102 - 'as' reduce using rule 102 - '|' reduce using rule 102 - '|->' reduce using rule 102 - '}' reduce using rule 102 - %eof reduce using rule 102 + ')' reduce using rule 103 + '*' shift, and enter state 158 + ',' reduce using rule 103 + '/\\' reduce using rule 103 + ':' reduce using rule 103 + ':=' reduce using rule 103 + ';' reduce using rule 103 + '=' reduce using rule 103 + '=_{' reduce using rule 103 + '>' reduce using rule 103 + '\\/' reduce using rule 103 + ']' reduce using rule 103 + 'as' reduce using rule 103 + '|' reduce using rule 103 + '|->' reduce using rule 103 + '}' reduce using rule 103 + %eof reduce using rule 103 -State 185 +State 187 - Term3 -> Term4 '/\\' Term3 . (rule 104) + Term5 -> Term5 . '*' Term6 (rule 101) + Term4 -> Term5 '<=' Term5 . (rule 104) ')' reduce using rule 104 + '*' shift, and enter state 158 ',' reduce using rule 104 + '/\\' reduce using rule 104 ':' reduce using rule 104 ':=' reduce using rule 104 ';' reduce using rule 104 @@ -4370,9 +4544,9 @@ State 185 %eof reduce using rule 104 -State 186 +State 188 - Term2 -> Term3 '\\/' Term2 . (rule 106) + Term3 -> Term4 '/\\' Term3 . (rule 106) ')' reduce using rule 106 ',' reduce using rule 106 @@ -4382,6 +4556,7 @@ State 186 '=' reduce using rule 106 '=_{' reduce using rule 106 '>' reduce using rule 106 + '\\/' reduce using rule 106 ']' reduce using rule 106 'as' reduce using rule 106 '|' reduce using rule 106 @@ -4390,33 +4565,53 @@ State 186 %eof reduce using rule 106 -State 187 - - Term -> Term2 'as' Term1 . (rule 122) +State 189 - ')' reduce using rule 122 - ',' reduce using rule 122 - ':' reduce using rule 122 - ':=' reduce using rule 122 - ';' reduce using rule 122 - '>' reduce using rule 122 - ']' reduce using rule 122 - '|' reduce using rule 122 - '|->' reduce using rule 122 - '}' reduce using rule 122 - %eof reduce using rule 122 + Term2 -> Term3 '\\/' Term2 . (rule 108) + ')' reduce using rule 108 + ',' reduce using rule 108 + ':' reduce using rule 108 + ':=' reduce using rule 108 + ';' reduce using rule 108 + '=' reduce using rule 108 + '=_{' reduce using rule 108 + '>' reduce using rule 108 + ']' reduce using rule 108 + 'as' reduce using rule 108 + '|' reduce using rule 108 + '|->' reduce using rule 108 + '}' reduce using rule 108 + %eof reduce using rule 108 -State 188 - ListTerm -> Term ',' ListTerm . (rule 125) +State 190 + Term -> Term2 'as' Term1 . (rule 125) + + ')' reduce using rule 125 + ',' reduce using rule 125 + ':' reduce using rule 125 + ':=' reduce using rule 125 + ';' reduce using rule 125 + '>' reduce using rule 125 + ']' reduce using rule 125 + '|' reduce using rule 125 + '|->' reduce using rule 125 + '}' reduce using rule 125 %eof reduce using rule 125 -State 189 +State 191 + + ListTerm -> Term ',' ListTerm . (rule 128) + + %eof reduce using rule 128 - ParamDecl -> '(' '_' ':' . Term ')' (rule 69) + +State 192 + + ParamDecl -> '(' '_' ':' . Term ')' (rule 70) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4431,19 +4626,21 @@ State 189 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4457,11 +4654,11 @@ State 189 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 257 + Term goto state 260 -State 190 +State 193 - ParamDecl -> '(' VarIdent ':' . Term ')' (rule 71) + ParamDecl -> '(' VarIdent ':' . Term ')' (rule 72) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4476,19 +4673,21 @@ State 190 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4502,11 +4701,11 @@ State 190 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 256 + Term goto state 259 -State 191 +State 194 - Term7 -> '<' ParamDecl '->' . Term '>' (rule 90) + Term7 -> '<' ParamDecl '->' . Term '>' (rule 91) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4521,19 +4720,21 @@ State 191 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4547,18 +4748,18 @@ State 191 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 255 + Term goto state 258 -State 192 +State 195 - Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 109) + Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 111) - ':' shift, and enter state 254 + ':' shift, and enter state 257 -State 193 +State 196 - Term1 -> '\\' ListParam '->' . Term1 (rule 112) + Term1 -> '\\' ListParam '->' . Term1 (rule 115) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4573,19 +4774,21 @@ State 193 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4596,36 +4799,36 @@ State 193 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 253 + Term2 goto state 73 + Term1 goto state 256 Term6 goto state 39 -State 194 +State 197 - Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) - ',' shift, and enter state 252 + ',' shift, and enter state 255 -State 195 +State 198 - Term7 -> 'recOR' '(' ListRestriction . ')' (rule 88) + Term7 -> 'recOR' '(' ListRestriction . ')' (rule 89) - ')' shift, and enter state 251 + ')' shift, and enter state 254 -State 196 +State 199 - Restriction -> Term . '|->' Term (rule 74) - Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 89) + Restriction -> Term . '|->' Term (rule 75) + Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 90) - ',' shift, and enter state 250 - '|->' shift, and enter state 153 + ',' shift, and enter state 253 + '|->' shift, and enter state 156 -State 197 +State 200 - Term7 -> 'refl_{' Term ':' . Term '}' (rule 94) + Term7 -> 'refl_{' Term ':' . Term '}' (rule 96) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4640,19 +4843,21 @@ State 197 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4666,68 +4871,69 @@ State 197 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 249 + Term goto state 252 -State 198 +State 201 - Term7 -> 'refl_{' Term '}' . (rule 93) + Term7 -> 'refl_{' Term '}' . (rule 95) - '(' reduce using rule 93 - ')' reduce using rule 93 - '*' reduce using rule 93 - '*_1' reduce using rule 93 - ',' reduce using rule 93 - '->' reduce using rule 93 - '/\\' reduce using rule 93 - '0_2' reduce using rule 93 - '1' reduce using rule 93 - '1_2' reduce using rule 93 - '2' reduce using rule 93 - ':' reduce using rule 93 - ':=' reduce using rule 93 - ';' reduce using rule 93 - '<' reduce using rule 93 - '<=' reduce using rule 93 - '=' reduce using rule 93 - '===' reduce using rule 93 - '=_{' reduce using rule 93 - '>' reduce using rule 93 - 'BOT' reduce using rule 93 - 'CUBE' reduce using rule 93 - 'TOP' reduce using rule 93 - 'TOPE' reduce using rule 93 - 'U' reduce using rule 93 - '[' reduce using rule 93 - '\\/' reduce using rule 93 - ']' reduce using rule 93 - 'as' reduce using rule 93 - 'idJ' reduce using rule 93 - 'recBOT' reduce using rule 93 - 'recOR' reduce using rule 93 - 'refl' reduce using rule 93 - 'refl_{' reduce using rule 93 - '|' reduce using rule 93 - '|->' reduce using rule 93 - '}' reduce using rule 93 - '→' reduce using rule 93 - L_VarIdentTokenreduce using rule 93 - L_HoleIdentTokenreduce using rule 93 - %eof reduce using rule 93 + '(' reduce using rule 95 + ')' reduce using rule 95 + '*' reduce using rule 95 + '*_1' reduce using rule 95 + ',' reduce using rule 95 + '->' reduce using rule 95 + '/\\' reduce using rule 95 + '0_2' reduce using rule 95 + '1' reduce using rule 95 + '1_2' reduce using rule 95 + '2' reduce using rule 95 + ':' reduce using rule 95 + ':=' reduce using rule 95 + ';' reduce using rule 95 + '<' reduce using rule 95 + '<=' reduce using rule 95 + '=' reduce using rule 95 + '===' reduce using rule 95 + '=_{' reduce using rule 95 + '>' reduce using rule 95 + 'BOT' reduce using rule 95 + 'CUBE' reduce using rule 95 + 'TOP' reduce using rule 95 + 'TOPE' reduce using rule 95 + 'U' reduce using rule 95 + '[' reduce using rule 95 + '\\/' reduce using rule 95 + ']' reduce using rule 95 + 'as' reduce using rule 95 + 'idJ' reduce using rule 95 + 'recBOT' reduce using rule 95 + 'recOR' reduce using rule 95 + 'refl' reduce using rule 95 + 'refl_{' reduce using rule 95 + 'unit' reduce using rule 95 + '|' reduce using rule 95 + '|->' reduce using rule 95 + '}' reduce using rule 95 + '→' reduce using rule 95 + L_VarIdentTokenreduce using rule 95 + L_HoleIdentTokenreduce using rule 95 + %eof reduce using rule 95 -State 199 +State 202 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 60) - ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 72) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 61) + ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 73) - ',' shift, and enter state 212 - ':' shift, and enter state 248 + ',' shift, and enter state 215 + ':' shift, and enter state 251 -State 200 +State 203 - ParamDecl -> '{' Pattern ':' . Term '}' (rule 70) - ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 73) + ParamDecl -> '{' Pattern ':' . Term '}' (rule 71) + ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 74) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4742,19 +4948,21 @@ State 200 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4768,72 +4976,73 @@ State 200 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 247 + Term goto state 250 -State 201 +State 204 - Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 115) + Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 118) - ':' shift, and enter state 246 + ':' shift, and enter state 249 -State 202 +State 205 - Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 116) + Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 119) - ':' shift, and enter state 245 + ':' shift, and enter state 248 -State 203 +State 206 - Term7 -> '(' Term ')' . (rule 98) + Term7 -> '(' Term ')' . (rule 100) - '(' reduce using rule 98 - ')' reduce using rule 98 - '*' reduce using rule 98 - '*_1' reduce using rule 98 - ',' reduce using rule 98 - '->' reduce using rule 98 - '/\\' reduce using rule 98 - '0_2' reduce using rule 98 - '1' reduce using rule 98 - '1_2' reduce using rule 98 - '2' reduce using rule 98 - ':' reduce using rule 98 - ':=' reduce using rule 98 - ';' reduce using rule 98 - '<' reduce using rule 98 - '<=' reduce using rule 98 - '=' reduce using rule 98 - '===' reduce using rule 98 - '=_{' reduce using rule 98 - '>' reduce using rule 98 - 'BOT' reduce using rule 98 - 'CUBE' reduce using rule 98 - 'TOP' reduce using rule 98 - 'TOPE' reduce using rule 98 - 'U' reduce using rule 98 - '[' reduce using rule 98 - '\\/' reduce using rule 98 - ']' reduce using rule 98 - 'as' reduce using rule 98 - 'idJ' reduce using rule 98 - 'recBOT' reduce using rule 98 - 'recOR' reduce using rule 98 - 'refl' reduce using rule 98 - 'refl_{' reduce using rule 98 - '|' reduce using rule 98 - '|->' reduce using rule 98 - '}' reduce using rule 98 - '→' reduce using rule 98 - L_VarIdentTokenreduce using rule 98 - L_HoleIdentTokenreduce using rule 98 - %eof reduce using rule 98 + '(' reduce using rule 100 + ')' reduce using rule 100 + '*' reduce using rule 100 + '*_1' reduce using rule 100 + ',' reduce using rule 100 + '->' reduce using rule 100 + '/\\' reduce using rule 100 + '0_2' reduce using rule 100 + '1' reduce using rule 100 + '1_2' reduce using rule 100 + '2' reduce using rule 100 + ':' reduce using rule 100 + ':=' reduce using rule 100 + ';' reduce using rule 100 + '<' reduce using rule 100 + '<=' reduce using rule 100 + '=' reduce using rule 100 + '===' reduce using rule 100 + '=_{' reduce using rule 100 + '>' reduce using rule 100 + 'BOT' reduce using rule 100 + 'CUBE' reduce using rule 100 + 'TOP' reduce using rule 100 + 'TOPE' reduce using rule 100 + 'U' reduce using rule 100 + '[' reduce using rule 100 + '\\/' reduce using rule 100 + ']' reduce using rule 100 + 'as' reduce using rule 100 + 'idJ' reduce using rule 100 + 'recBOT' reduce using rule 100 + 'recOR' reduce using rule 100 + 'refl' reduce using rule 100 + 'refl_{' reduce using rule 100 + 'unit' reduce using rule 100 + '|' reduce using rule 100 + '|->' reduce using rule 100 + '}' reduce using rule 100 + '→' reduce using rule 100 + L_VarIdentTokenreduce using rule 100 + L_HoleIdentTokenreduce using rule 100 + %eof reduce using rule 100 -State 204 +State 207 - Term7 -> '(' Term ',' . Term ')' (rule 91) + Term7 -> '(' Term ',' . Term ')' (rule 92) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4848,19 +5057,21 @@ State 204 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4874,113 +5085,114 @@ State 204 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 244 + Term goto state 247 -State 205 +State 208 - Term1 -> Term2 '=_{' Term . '}' Term2 (rule 110) + Term1 -> Term2 '=_{' Term . '}' Term2 (rule 113) - '}' shift, and enter state 243 + '}' shift, and enter state 246 -State 206 +State 209 - Term1 -> Term2 '=' Term2 . (rule 111) + Term1 -> Term2 '=' Term2 . (rule 114) - ')' reduce using rule 111 - ',' reduce using rule 111 - ':' reduce using rule 111 - ':=' reduce using rule 111 - ';' reduce using rule 111 - '>' reduce using rule 111 - ']' reduce using rule 111 - '|' reduce using rule 111 - '|->' reduce using rule 111 - '}' reduce using rule 111 - %eof reduce using rule 111 + ')' reduce using rule 114 + ',' reduce using rule 114 + ':' reduce using rule 114 + ':=' reduce using rule 114 + ';' reduce using rule 114 + '>' reduce using rule 114 + ']' reduce using rule 114 + '|' reduce using rule 114 + '|->' reduce using rule 114 + '}' reduce using rule 114 + %eof reduce using rule 114 -State 207 +State 210 - Term5 -> Term5 '*' Term6 . (rule 99) - Term6 -> Term6 . '[' ListRestriction ']' (rule 117) - Term6 -> Term6 . Term7 (rule 118) + Term5 -> Term5 '*' Term6 . (rule 101) + Term6 -> Term6 . '[' ListRestriction ']' (rule 120) + Term6 -> Term6 . Term7 (rule 121) - '(' shift, and enter state 70 - ')' reduce using rule 99 - '*' reduce using rule 99 + '(' shift, and enter state 72 + ')' reduce using rule 101 + '*' reduce using rule 101 '*_1' shift, and enter state 43 - ',' reduce using rule 99 - '/\\' reduce using rule 99 + ',' reduce using rule 101 + '/\\' reduce using rule 101 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - ':' reduce using rule 99 - ':=' reduce using rule 99 - ';' reduce using rule 99 + '2' shift, and enter state 47 + ':' reduce using rule 101 + ':=' reduce using rule 101 + ';' reduce using rule 101 '<' shift, and enter state 48 - '<=' reduce using rule 99 - '=' reduce using rule 99 - '===' reduce using rule 99 - '=_{' reduce using rule 99 - '>' reduce using rule 99 + '<=' reduce using rule 101 + '=' reduce using rule 101 + '===' reduce using rule 101 + '=_{' reduce using rule 101 + '>' reduce using rule 101 'BOT' shift, and enter state 49 'CUBE' shift, and enter state 50 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '[' shift, and enter state 152 - '\\/' reduce using rule 99 - ']' reduce using rule 99 - 'as' reduce using rule 99 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - '|' reduce using rule 99 - '|->' reduce using rule 99 - '}' reduce using rule 99 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 - %eof reduce using rule 99 + '[' shift, and enter state 155 + '\\/' reduce using rule 101 + ']' reduce using rule 101 + 'as' reduce using rule 101 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'unit' shift, and enter state 64 + '|' reduce using rule 101 + '|->' reduce using rule 101 + '}' reduce using rule 101 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 + %eof reduce using rule 101 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 151 + Term7 goto state 154 -State 208 +State 211 - ListRestriction -> Restriction ',' ListRestriction . (rule 76) + ListRestriction -> Restriction ',' ListRestriction . (rule 77) - ')' reduce using rule 76 - ']' reduce using rule 76 - %eof reduce using rule 76 + ')' reduce using rule 77 + ']' reduce using rule 77 + %eof reduce using rule 77 -State 209 +State 212 - Restriction -> Term '|->' Term . (rule 74) + Restriction -> Term '|->' Term . (rule 75) - ')' reduce using rule 74 - ',' reduce using rule 74 - ']' reduce using rule 74 - %eof reduce using rule 74 + ')' reduce using rule 75 + ',' reduce using rule 75 + ']' reduce using rule 75 + %eof reduce using rule 75 -State 210 +State 213 - Term6 -> Term6 '[' ListRestriction . ']' (rule 117) + Term6 -> Term6 '[' ListRestriction . ']' (rule 120) - ']' shift, and enter state 242 + ']' shift, and enter state 245 -State 211 +State 214 - Param -> '(' ListPattern ':' . Term ')' (rule 64) + Param -> '(' ListPattern ':' . Term ')' (rule 65) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4995,19 +5207,21 @@ State 211 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5021,23 +5235,24 @@ State 211 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 241 + Term goto state 244 -State 212 +State 215 - Pattern -> '(' Pattern ',' . Pattern ')' (rule 60) + Pattern -> '(' Pattern ',' . Pattern ')' (rule 61) - '(' shift, and enter state 95 - '_' shift, and enter state 90 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 98 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 240 + VarIdent goto state 87 + Pattern goto state 243 -State 213 +State 216 - Param -> '{' Pattern ':' . Term '|' Term '}' (rule 65) + Param -> '{' Pattern ':' . Term '|' Term '}' (rule 66) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5052,19 +5267,21 @@ State 213 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5078,16 +5295,16 @@ State 213 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 239 + Term goto state 242 -State 214 +State 217 DeclUsedVars -> 'uses' '(' ListVarIdent . ')' (rule 54) - ')' shift, and enter state 238 + ')' shift, and enter state 241 -State 215 +State 218 ListCommand -> Command ';' ListCommand . (rule 53) @@ -5095,7 +5312,7 @@ State 215 %eof reduce using rule 53 -State 216 +State 219 Command -> '#assume' ListVarIdent ':' . Term (rule 44) @@ -5112,19 +5329,21 @@ State 216 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5138,9 +5357,9 @@ State 216 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 237 + Term goto state 240 -State 217 +State 220 Command -> '#check' Term ':' . Term (rule 38) @@ -5157,19 +5376,21 @@ State 217 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5183,90 +5404,93 @@ State 217 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 236 + Term goto state 239 -State 218 +State 221 Command -> '#def' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 50) Command -> '#def' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 51) - '(' shift, and enter state 89 - ':' shift, and enter state 235 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 91 + ':' shift, and enter state 238 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 87 - ListParam goto state 234 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 237 -State 219 +State 222 Command -> '#define' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 48) Command -> '#define' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 49) - '(' shift, and enter state 89 - ':' shift, and enter state 233 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 91 + ':' shift, and enter state 236 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 87 - ListParam goto state 232 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 235 -State 220 +State 223 Command -> '#postulate' VarIdent DeclUsedVars . ListParam ':' Term (rule 42) Command -> '#postulate' VarIdent DeclUsedVars . ':' Term (rule 43) - '(' shift, and enter state 89 - ':' shift, and enter state 231 - '_' shift, and enter state 90 - '{' shift, and enter state 91 - L_VarIdentTokenshift, and enter state 66 + '(' shift, and enter state 91 + ':' shift, and enter state 234 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 VarIdentToken goto state 28 - VarIdent goto state 85 - Pattern goto state 86 - Param goto state 87 - ListParam goto state 230 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 233 -State 221 +State 224 Command -> '#section' SectionName ';' . ListCommand '#end' SectionName (rule 47) - '#assume' shift, and enter state 103 - '#check' shift, and enter state 104 - '#compute' shift, and enter state 105 - '#compute-nf' shift, and enter state 106 - '#compute-whnf'shift, and enter state 107 - '#def' shift, and enter state 108 - '#define' shift, and enter state 109 + '#assume' shift, and enter state 106 + '#check' shift, and enter state 107 + '#compute' shift, and enter state 108 + '#compute-nf' shift, and enter state 109 + '#compute-whnf'shift, and enter state 110 + '#def' shift, and enter state 111 + '#define' shift, and enter state 112 '#end' reduce using rule 52 - '#postulate' shift, and enter state 110 - '#section' shift, and enter state 111 - '#set-option' shift, and enter state 112 - '#unset-option'shift, and enter state 113 - '#variable' shift, and enter state 114 - '#variables' shift, and enter state 115 + '#postulate' shift, and enter state 113 + '#section' shift, and enter state 114 + '#set-option' shift, and enter state 115 + '#unset-option'shift, and enter state 116 + '#variable' shift, and enter state 117 + '#variables' shift, and enter state 118 - Command goto state 101 - ListCommand goto state 229 + Command goto state 104 + ListCommand goto state 232 -State 222 +State 225 Command -> '#set-option' String '=' . String (rule 36) L_quoted shift, and enter state 27 - String goto state 228 + String goto state 231 -State 223 +State 226 Command -> '#variable' VarIdent ':' . Term (rule 45) @@ -5283,19 +5507,21 @@ State 223 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5309,9 +5535,9 @@ State 223 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 227 + Term goto state 230 -State 224 +State 227 Command -> '#variables' ListVarIdent ':' . Term (rule 46) @@ -5328,19 +5554,21 @@ State 224 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5354,9 +5582,9 @@ State 224 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 226 + Term goto state 229 -State 225 +State 228 LanguageDecl -> '#lang' Language ';' . (rule 34) @@ -5376,7 +5604,7 @@ State 225 %eof reduce using rule 34 -State 226 +State 229 Command -> '#variables' ListVarIdent ':' Term . (rule 46) @@ -5384,7 +5612,7 @@ State 226 %eof reduce using rule 46 -State 227 +State 230 Command -> '#variable' VarIdent ':' Term . (rule 45) @@ -5392,7 +5620,7 @@ State 227 %eof reduce using rule 45 -State 228 +State 231 Command -> '#set-option' String '=' String . (rule 36) @@ -5400,21 +5628,21 @@ State 228 %eof reduce using rule 36 -State 229 +State 232 Command -> '#section' SectionName ';' ListCommand . '#end' SectionName (rule 47) - '#end' shift, and enter state 281 + '#end' shift, and enter state 284 -State 230 +State 233 Command -> '#postulate' VarIdent DeclUsedVars ListParam . ':' Term (rule 42) - ':' shift, and enter state 280 + ':' shift, and enter state 283 -State 231 +State 234 Command -> '#postulate' VarIdent DeclUsedVars ':' . Term (rule 43) @@ -5431,19 +5659,21 @@ State 231 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5457,16 +5687,16 @@ State 231 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 279 + Term goto state 282 -State 232 +State 235 Command -> '#define' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 48) - ':' shift, and enter state 278 + ':' shift, and enter state 281 -State 233 +State 236 Command -> '#define' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 49) @@ -5483,19 +5713,21 @@ State 233 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5509,16 +5741,16 @@ State 233 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 277 + Term goto state 280 -State 234 +State 237 Command -> '#def' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 50) - ':' shift, and enter state 276 + ':' shift, and enter state 279 -State 235 +State 238 Command -> '#def' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 51) @@ -5535,19 +5767,21 @@ State 235 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5561,9 +5795,9 @@ State 235 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 275 + Term goto state 278 -State 236 +State 239 Command -> '#check' Term ':' Term . (rule 38) @@ -5571,7 +5805,7 @@ State 236 %eof reduce using rule 38 -State 237 +State 240 Command -> '#assume' ListVarIdent ':' Term . (rule 44) @@ -5579,91 +5813,93 @@ State 237 %eof reduce using rule 44 -State 238 +State 241 DeclUsedVars -> 'uses' '(' ListVarIdent ')' . (rule 54) '(' reduce using rule 54 ':' reduce using rule 54 '_' reduce using rule 54 + 'unit' reduce using rule 54 '{' reduce using rule 54 L_VarIdentTokenreduce using rule 54 %eof reduce using rule 54 -State 239 +State 242 - Param -> '{' Pattern ':' Term . '|' Term '}' (rule 65) + Param -> '{' Pattern ':' Term . '|' Term '}' (rule 66) - '|' shift, and enter state 274 + '|' shift, and enter state 277 -State 240 +State 243 - Pattern -> '(' Pattern ',' Pattern . ')' (rule 60) + Pattern -> '(' Pattern ',' Pattern . ')' (rule 61) - ')' shift, and enter state 273 + ')' shift, and enter state 276 -State 241 +State 244 - Param -> '(' ListPattern ':' Term . ')' (rule 64) + Param -> '(' ListPattern ':' Term . ')' (rule 65) - ')' shift, and enter state 272 + ')' shift, and enter state 275 -State 242 +State 245 - Term6 -> Term6 '[' ListRestriction ']' . (rule 117) + Term6 -> Term6 '[' ListRestriction ']' . (rule 120) - '(' reduce using rule 117 - ')' reduce using rule 117 - '*' reduce using rule 117 - '*_1' reduce using rule 117 - ',' reduce using rule 117 - '->' reduce using rule 117 - '/\\' reduce using rule 117 - '0_2' reduce using rule 117 - '1' reduce using rule 117 - '1_2' reduce using rule 117 - '2' reduce using rule 117 - ':' reduce using rule 117 - ':=' reduce using rule 117 - ';' reduce using rule 117 - '<' reduce using rule 117 - '<=' reduce using rule 117 - '=' reduce using rule 117 - '===' reduce using rule 117 - '=_{' reduce using rule 117 - '>' reduce using rule 117 - 'BOT' reduce using rule 117 - 'CUBE' reduce using rule 117 - 'TOP' reduce using rule 117 - 'TOPE' reduce using rule 117 - 'U' reduce using rule 117 - '[' reduce using rule 117 - '\\/' reduce using rule 117 - ']' reduce using rule 117 - 'as' reduce using rule 117 - 'idJ' reduce using rule 117 - 'recBOT' reduce using rule 117 - 'recOR' reduce using rule 117 - 'refl' reduce using rule 117 - 'refl_{' reduce using rule 117 - '|' reduce using rule 117 - '|->' reduce using rule 117 - '}' reduce using rule 117 - '→' reduce using rule 117 - L_VarIdentTokenreduce using rule 117 - L_HoleIdentTokenreduce using rule 117 - %eof reduce using rule 117 + '(' reduce using rule 120 + ')' reduce using rule 120 + '*' reduce using rule 120 + '*_1' reduce using rule 120 + ',' reduce using rule 120 + '->' reduce using rule 120 + '/\\' reduce using rule 120 + '0_2' reduce using rule 120 + '1' reduce using rule 120 + '1_2' reduce using rule 120 + '2' reduce using rule 120 + ':' reduce using rule 120 + ':=' reduce using rule 120 + ';' reduce using rule 120 + '<' reduce using rule 120 + '<=' reduce using rule 120 + '=' reduce using rule 120 + '===' reduce using rule 120 + '=_{' reduce using rule 120 + '>' reduce using rule 120 + 'BOT' reduce using rule 120 + 'CUBE' reduce using rule 120 + 'TOP' reduce using rule 120 + 'TOPE' reduce using rule 120 + 'U' reduce using rule 120 + '[' reduce using rule 120 + '\\/' reduce using rule 120 + ']' reduce using rule 120 + 'as' reduce using rule 120 + 'idJ' reduce using rule 120 + 'recBOT' reduce using rule 120 + 'recOR' reduce using rule 120 + 'refl' reduce using rule 120 + 'refl_{' reduce using rule 120 + 'unit' reduce using rule 120 + '|' reduce using rule 120 + '|->' reduce using rule 120 + '}' reduce using rule 120 + '→' reduce using rule 120 + L_VarIdentTokenreduce using rule 120 + L_HoleIdentTokenreduce using rule 120 + %eof reduce using rule 120 -State 243 +State 246 - Term1 -> Term2 '=_{' Term '}' . Term2 (rule 110) + Term1 -> Term2 '=_{' Term '}' . Term2 (rule 113) - '(' shift, and enter state 70 + '(' shift, and enter state 72 '*_1' shift, and enter state 43 '0_2' shift, and enter state 44 '1' shift, and enter state 45 @@ -5675,15 +5911,16 @@ State 243 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5693,19 +5930,19 @@ State 243 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 271 - Term6 goto state 74 + Term2 goto state 274 + Term6 goto state 76 -State 244 +State 247 - Term7 -> '(' Term ',' Term . ')' (rule 91) + Term7 -> '(' Term ',' Term . ')' (rule 92) - ')' shift, and enter state 270 + ')' shift, and enter state 273 -State 245 +State 248 - Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 116) + Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 119) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5720,19 +5957,21 @@ State 245 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5746,11 +5985,11 @@ State 245 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 269 + Term goto state 272 -State 246 +State 249 - Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 115) + Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 118) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5765,19 +6004,21 @@ State 246 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5791,20 +6032,20 @@ State 246 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 268 + Term goto state 271 -State 247 +State 250 - ParamDecl -> '{' Pattern ':' Term . '}' (rule 70) - ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 73) + ParamDecl -> '{' Pattern ':' Term . '}' (rule 71) + ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 74) - '|' shift, and enter state 266 - '}' shift, and enter state 267 + '|' shift, and enter state 269 + '}' shift, and enter state 270 -State 248 +State 251 - ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 72) + ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 73) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5819,19 +6060,21 @@ State 248 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5845,18 +6088,18 @@ State 248 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 265 + Term goto state 268 -State 249 +State 252 - Term7 -> 'refl_{' Term ':' Term . '}' (rule 94) + Term7 -> 'refl_{' Term ':' Term . '}' (rule 96) - '}' shift, and enter state 264 + '}' shift, and enter state 267 -State 250 +State 253 - Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 89) + Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 90) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5871,19 +6114,21 @@ State 250 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5897,58 +6142,59 @@ State 250 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 263 + Term goto state 266 -State 251 +State 254 - Term7 -> 'recOR' '(' ListRestriction ')' . (rule 88) + Term7 -> 'recOR' '(' ListRestriction ')' . (rule 89) - '(' reduce using rule 88 - ')' reduce using rule 88 - '*' reduce using rule 88 - '*_1' reduce using rule 88 - ',' reduce using rule 88 - '->' reduce using rule 88 - '/\\' reduce using rule 88 - '0_2' reduce using rule 88 - '1' reduce using rule 88 - '1_2' reduce using rule 88 - '2' reduce using rule 88 - ':' reduce using rule 88 - ':=' reduce using rule 88 - ';' reduce using rule 88 - '<' reduce using rule 88 - '<=' reduce using rule 88 - '=' reduce using rule 88 - '===' reduce using rule 88 - '=_{' reduce using rule 88 - '>' reduce using rule 88 - 'BOT' reduce using rule 88 - 'CUBE' reduce using rule 88 - 'TOP' reduce using rule 88 - 'TOPE' reduce using rule 88 - 'U' reduce using rule 88 - '[' reduce using rule 88 - '\\/' reduce using rule 88 - ']' reduce using rule 88 - 'as' reduce using rule 88 - 'idJ' reduce using rule 88 - 'recBOT' reduce using rule 88 - 'recOR' reduce using rule 88 - 'refl' reduce using rule 88 - 'refl_{' reduce using rule 88 - '|' reduce using rule 88 - '|->' reduce using rule 88 - '}' reduce using rule 88 - '→' reduce using rule 88 - L_VarIdentTokenreduce using rule 88 - L_HoleIdentTokenreduce using rule 88 - %eof reduce using rule 88 + '(' reduce using rule 89 + ')' reduce using rule 89 + '*' reduce using rule 89 + '*_1' reduce using rule 89 + ',' reduce using rule 89 + '->' reduce using rule 89 + '/\\' reduce using rule 89 + '0_2' reduce using rule 89 + '1' reduce using rule 89 + '1_2' reduce using rule 89 + '2' reduce using rule 89 + ':' reduce using rule 89 + ':=' reduce using rule 89 + ';' reduce using rule 89 + '<' reduce using rule 89 + '<=' reduce using rule 89 + '=' reduce using rule 89 + '===' reduce using rule 89 + '=_{' reduce using rule 89 + '>' reduce using rule 89 + 'BOT' reduce using rule 89 + 'CUBE' reduce using rule 89 + 'TOP' reduce using rule 89 + 'TOPE' reduce using rule 89 + 'U' reduce using rule 89 + '[' reduce using rule 89 + '\\/' reduce using rule 89 + ']' reduce using rule 89 + 'as' reduce using rule 89 + 'idJ' reduce using rule 89 + 'recBOT' reduce using rule 89 + 'recOR' reduce using rule 89 + 'refl' reduce using rule 89 + 'refl_{' reduce using rule 89 + 'unit' reduce using rule 89 + '|' reduce using rule 89 + '|->' reduce using rule 89 + '}' reduce using rule 89 + '→' reduce using rule 89 + L_VarIdentTokenreduce using rule 89 + L_HoleIdentTokenreduce using rule 89 + %eof reduce using rule 89 -State 252 +State 255 - Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5963,19 +6209,21 @@ State 252 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5989,28 +6237,28 @@ State 252 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 262 + Term goto state 265 -State 253 +State 256 - Term1 -> '\\' ListParam '->' Term1 . (rule 112) + Term1 -> '\\' ListParam '->' Term1 . (rule 115) - ')' reduce using rule 112 - ',' reduce using rule 112 - ':' reduce using rule 112 - ':=' reduce using rule 112 - ';' reduce using rule 112 - '>' reduce using rule 112 - ']' reduce using rule 112 - '|' reduce using rule 112 - '|->' reduce using rule 112 - '}' reduce using rule 112 - %eof reduce using rule 112 + ')' reduce using rule 115 + ',' reduce using rule 115 + ':' reduce using rule 115 + ':=' reduce using rule 115 + ';' reduce using rule 115 + '>' reduce using rule 115 + ']' reduce using rule 115 + '|' reduce using rule 115 + '|->' reduce using rule 115 + '}' reduce using rule 115 + %eof reduce using rule 115 -State 254 +State 257 - Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 109) + Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 111) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6025,19 +6273,21 @@ State 254 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6051,172 +6301,174 @@ State 254 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 261 + Term goto state 264 -State 255 +State 258 - Term7 -> '<' ParamDecl '->' Term . '>' (rule 90) + Term7 -> '<' ParamDecl '->' Term . '>' (rule 91) - '>' shift, and enter state 260 + '>' shift, and enter state 263 -State 256 +State 259 - ParamDecl -> '(' VarIdent ':' Term . ')' (rule 71) + ParamDecl -> '(' VarIdent ':' Term . ')' (rule 72) - ')' shift, and enter state 259 + ')' shift, and enter state 262 -State 257 +State 260 - ParamDecl -> '(' '_' ':' Term . ')' (rule 69) + ParamDecl -> '(' '_' ':' Term . ')' (rule 70) - ')' shift, and enter state 258 + ')' shift, and enter state 261 -State 258 +State 261 - ParamDecl -> '(' '_' ':' Term ')' . (rule 69) + ParamDecl -> '(' '_' ':' Term ')' . (rule 70) - '->' reduce using rule 69 - '→' reduce using rule 69 - %eof reduce using rule 69 + '->' reduce using rule 70 + '→' reduce using rule 70 + %eof reduce using rule 70 -State 259 +State 262 - ParamDecl -> '(' VarIdent ':' Term ')' . (rule 71) + ParamDecl -> '(' VarIdent ':' Term ')' . (rule 72) - '->' reduce using rule 71 - '→' reduce using rule 71 - %eof reduce using rule 71 + '->' reduce using rule 72 + '→' reduce using rule 72 + %eof reduce using rule 72 -State 260 +State 263 - Term7 -> '<' ParamDecl '->' Term '>' . (rule 90) + Term7 -> '<' ParamDecl '->' Term '>' . (rule 91) - '(' reduce using rule 90 - ')' reduce using rule 90 - '*' reduce using rule 90 - '*_1' reduce using rule 90 - ',' reduce using rule 90 - '->' reduce using rule 90 - '/\\' reduce using rule 90 - '0_2' reduce using rule 90 - '1' reduce using rule 90 - '1_2' reduce using rule 90 - '2' reduce using rule 90 - ':' reduce using rule 90 - ':=' reduce using rule 90 - ';' reduce using rule 90 - '<' reduce using rule 90 - '<=' reduce using rule 90 - '=' reduce using rule 90 - '===' reduce using rule 90 - '=_{' reduce using rule 90 - '>' reduce using rule 90 - 'BOT' reduce using rule 90 - 'CUBE' reduce using rule 90 - 'TOP' reduce using rule 90 - 'TOPE' reduce using rule 90 - 'U' reduce using rule 90 - '[' reduce using rule 90 - '\\/' reduce using rule 90 - ']' reduce using rule 90 - 'as' reduce using rule 90 - 'idJ' reduce using rule 90 - 'recBOT' reduce using rule 90 - 'recOR' reduce using rule 90 - 'refl' reduce using rule 90 - 'refl_{' reduce using rule 90 - '|' reduce using rule 90 - '|->' reduce using rule 90 - '}' reduce using rule 90 - '→' reduce using rule 90 - L_VarIdentTokenreduce using rule 90 - L_HoleIdentTokenreduce using rule 90 - %eof reduce using rule 90 + '(' reduce using rule 91 + ')' reduce using rule 91 + '*' reduce using rule 91 + '*_1' reduce using rule 91 + ',' reduce using rule 91 + '->' reduce using rule 91 + '/\\' reduce using rule 91 + '0_2' reduce using rule 91 + '1' reduce using rule 91 + '1_2' reduce using rule 91 + '2' reduce using rule 91 + ':' reduce using rule 91 + ':=' reduce using rule 91 + ';' reduce using rule 91 + '<' reduce using rule 91 + '<=' reduce using rule 91 + '=' reduce using rule 91 + '===' reduce using rule 91 + '=_{' reduce using rule 91 + '>' reduce using rule 91 + 'BOT' reduce using rule 91 + 'CUBE' reduce using rule 91 + 'TOP' reduce using rule 91 + 'TOPE' reduce using rule 91 + 'U' reduce using rule 91 + '[' reduce using rule 91 + '\\/' reduce using rule 91 + ']' reduce using rule 91 + 'as' reduce using rule 91 + 'idJ' reduce using rule 91 + 'recBOT' reduce using rule 91 + 'recOR' reduce using rule 91 + 'refl' reduce using rule 91 + 'refl_{' reduce using rule 91 + 'unit' reduce using rule 91 + '|' reduce using rule 91 + '|->' reduce using rule 91 + '}' reduce using rule 91 + '→' reduce using rule 91 + L_VarIdentTokenreduce using rule 91 + L_HoleIdentTokenreduce using rule 91 + %eof reduce using rule 91 -State 261 +State 264 - Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 109) + Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 111) - ')' shift, and enter state 295 + ')' shift, and enter state 298 -State 262 +State 265 - Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 97) - ',' shift, and enter state 294 + ',' shift, and enter state 297 -State 263 +State 266 - Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 89) + Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 90) - ',' shift, and enter state 293 + ',' shift, and enter state 296 -State 264 +State 267 - Term7 -> 'refl_{' Term ':' Term '}' . (rule 94) + Term7 -> 'refl_{' Term ':' Term '}' . (rule 96) - '(' reduce using rule 94 - ')' reduce using rule 94 - '*' reduce using rule 94 - '*_1' reduce using rule 94 - ',' reduce using rule 94 - '->' reduce using rule 94 - '/\\' reduce using rule 94 - '0_2' reduce using rule 94 - '1' reduce using rule 94 - '1_2' reduce using rule 94 - '2' reduce using rule 94 - ':' reduce using rule 94 - ':=' reduce using rule 94 - ';' reduce using rule 94 - '<' reduce using rule 94 - '<=' reduce using rule 94 - '=' reduce using rule 94 - '===' reduce using rule 94 - '=_{' reduce using rule 94 - '>' reduce using rule 94 - 'BOT' reduce using rule 94 - 'CUBE' reduce using rule 94 - 'TOP' reduce using rule 94 - 'TOPE' reduce using rule 94 - 'U' reduce using rule 94 - '[' reduce using rule 94 - '\\/' reduce using rule 94 - ']' reduce using rule 94 - 'as' reduce using rule 94 - 'idJ' reduce using rule 94 - 'recBOT' reduce using rule 94 - 'recOR' reduce using rule 94 - 'refl' reduce using rule 94 - 'refl_{' reduce using rule 94 - '|' reduce using rule 94 - '|->' reduce using rule 94 - '}' reduce using rule 94 - '→' reduce using rule 94 - L_VarIdentTokenreduce using rule 94 - L_HoleIdentTokenreduce using rule 94 - %eof reduce using rule 94 + '(' reduce using rule 96 + ')' reduce using rule 96 + '*' reduce using rule 96 + '*_1' reduce using rule 96 + ',' reduce using rule 96 + '->' reduce using rule 96 + '/\\' reduce using rule 96 + '0_2' reduce using rule 96 + '1' reduce using rule 96 + '1_2' reduce using rule 96 + '2' reduce using rule 96 + ':' reduce using rule 96 + ':=' reduce using rule 96 + ';' reduce using rule 96 + '<' reduce using rule 96 + '<=' reduce using rule 96 + '=' reduce using rule 96 + '===' reduce using rule 96 + '=_{' reduce using rule 96 + '>' reduce using rule 96 + 'BOT' reduce using rule 96 + 'CUBE' reduce using rule 96 + 'TOP' reduce using rule 96 + 'TOPE' reduce using rule 96 + 'U' reduce using rule 96 + '[' reduce using rule 96 + '\\/' reduce using rule 96 + ']' reduce using rule 96 + 'as' reduce using rule 96 + 'idJ' reduce using rule 96 + 'recBOT' reduce using rule 96 + 'recOR' reduce using rule 96 + 'refl' reduce using rule 96 + 'refl_{' reduce using rule 96 + 'unit' reduce using rule 96 + '|' reduce using rule 96 + '|->' reduce using rule 96 + '}' reduce using rule 96 + '→' reduce using rule 96 + L_VarIdentTokenreduce using rule 96 + L_HoleIdentTokenreduce using rule 96 + %eof reduce using rule 96 -State 265 +State 268 - ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 72) + ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 73) - ')' shift, and enter state 292 + ')' shift, and enter state 295 -State 266 +State 269 - ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 73) + ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 74) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6231,19 +6483,21 @@ State 266 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6257,126 +6511,129 @@ State 266 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 291 + Term goto state 294 -State 267 +State 270 - ParamDecl -> '{' Pattern ':' Term '}' . (rule 70) + ParamDecl -> '{' Pattern ':' Term '}' . (rule 71) - '->' reduce using rule 70 - '→' reduce using rule 70 - %eof reduce using rule 70 + '->' reduce using rule 71 + '→' reduce using rule 71 + %eof reduce using rule 71 -State 268 +State 271 - Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 115) + Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 118) - ')' shift, and enter state 290 + ')' shift, and enter state 293 -State 269 +State 272 - Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 116) + Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 119) - ')' shift, and enter state 289 + ')' shift, and enter state 292 -State 270 +State 273 - Term7 -> '(' Term ',' Term ')' . (rule 91) + Term7 -> '(' Term ',' Term ')' . (rule 92) - '(' reduce using rule 91 - ')' reduce using rule 91 - '*' reduce using rule 91 - '*_1' reduce using rule 91 - ',' reduce using rule 91 - '->' reduce using rule 91 - '/\\' reduce using rule 91 - '0_2' reduce using rule 91 - '1' reduce using rule 91 - '1_2' reduce using rule 91 - '2' reduce using rule 91 - ':' reduce using rule 91 - ':=' reduce using rule 91 - ';' reduce using rule 91 - '<' reduce using rule 91 - '<=' reduce using rule 91 - '=' reduce using rule 91 - '===' reduce using rule 91 - '=_{' reduce using rule 91 - '>' reduce using rule 91 - 'BOT' reduce using rule 91 - 'CUBE' reduce using rule 91 - 'TOP' reduce using rule 91 - 'TOPE' reduce using rule 91 - 'U' reduce using rule 91 - '[' reduce using rule 91 - '\\/' reduce using rule 91 - ']' reduce using rule 91 - 'as' reduce using rule 91 - 'idJ' reduce using rule 91 - 'recBOT' reduce using rule 91 - 'recOR' reduce using rule 91 - 'refl' reduce using rule 91 - 'refl_{' reduce using rule 91 - '|' reduce using rule 91 - '|->' reduce using rule 91 - '}' reduce using rule 91 - '→' reduce using rule 91 - L_VarIdentTokenreduce using rule 91 - L_HoleIdentTokenreduce using rule 91 - %eof reduce using rule 91 + '(' reduce using rule 92 + ')' reduce using rule 92 + '*' reduce using rule 92 + '*_1' reduce using rule 92 + ',' reduce using rule 92 + '->' reduce using rule 92 + '/\\' reduce using rule 92 + '0_2' reduce using rule 92 + '1' reduce using rule 92 + '1_2' reduce using rule 92 + '2' reduce using rule 92 + ':' reduce using rule 92 + ':=' reduce using rule 92 + ';' reduce using rule 92 + '<' reduce using rule 92 + '<=' reduce using rule 92 + '=' reduce using rule 92 + '===' reduce using rule 92 + '=_{' reduce using rule 92 + '>' reduce using rule 92 + 'BOT' reduce using rule 92 + 'CUBE' reduce using rule 92 + 'TOP' reduce using rule 92 + 'TOPE' reduce using rule 92 + 'U' reduce using rule 92 + '[' reduce using rule 92 + '\\/' reduce using rule 92 + ']' reduce using rule 92 + 'as' reduce using rule 92 + 'idJ' reduce using rule 92 + 'recBOT' reduce using rule 92 + 'recOR' reduce using rule 92 + 'refl' reduce using rule 92 + 'refl_{' reduce using rule 92 + 'unit' reduce using rule 92 + '|' reduce using rule 92 + '|->' reduce using rule 92 + '}' reduce using rule 92 + '→' reduce using rule 92 + L_VarIdentTokenreduce using rule 92 + L_HoleIdentTokenreduce using rule 92 + %eof reduce using rule 92 -State 271 +State 274 - Term1 -> Term2 '=_{' Term '}' Term2 . (rule 110) + Term1 -> Term2 '=_{' Term '}' Term2 . (rule 113) - ')' reduce using rule 110 - ',' reduce using rule 110 - ':' reduce using rule 110 - ':=' reduce using rule 110 - ';' reduce using rule 110 - '>' reduce using rule 110 - ']' reduce using rule 110 - '|' reduce using rule 110 - '|->' reduce using rule 110 - '}' reduce using rule 110 - %eof reduce using rule 110 + ')' reduce using rule 113 + ',' reduce using rule 113 + ':' reduce using rule 113 + ':=' reduce using rule 113 + ';' reduce using rule 113 + '>' reduce using rule 113 + ']' reduce using rule 113 + '|' reduce using rule 113 + '|->' reduce using rule 113 + '}' reduce using rule 113 + %eof reduce using rule 113 -State 272 +State 275 - Param -> '(' ListPattern ':' Term ')' . (rule 64) + Param -> '(' ListPattern ':' Term ')' . (rule 65) - '(' reduce using rule 64 - '->' reduce using rule 64 - ':' reduce using rule 64 - '_' reduce using rule 64 - '{' reduce using rule 64 - L_VarIdentTokenreduce using rule 64 - %eof reduce using rule 64 + '(' reduce using rule 65 + '->' reduce using rule 65 + ':' reduce using rule 65 + '_' reduce using rule 65 + 'unit' reduce using rule 65 + '{' reduce using rule 65 + L_VarIdentTokenreduce using rule 65 + %eof reduce using rule 65 -State 273 +State 276 - Pattern -> '(' Pattern ',' Pattern ')' . (rule 60) + Pattern -> '(' Pattern ',' Pattern ')' . (rule 61) - '(' reduce using rule 60 - ')' reduce using rule 60 - ',' reduce using rule 60 - '->' reduce using rule 60 - ':' reduce using rule 60 - '_' reduce using rule 60 - '{' reduce using rule 60 - L_VarIdentTokenreduce using rule 60 - %eof reduce using rule 60 + '(' reduce using rule 61 + ')' reduce using rule 61 + ',' reduce using rule 61 + '->' reduce using rule 61 + ':' reduce using rule 61 + '_' reduce using rule 61 + 'unit' reduce using rule 61 + '{' reduce using rule 61 + L_VarIdentTokenreduce using rule 61 + %eof reduce using rule 61 -State 274 +State 277 - Param -> '{' Pattern ':' Term '|' . Term '}' (rule 65) + Param -> '{' Pattern ':' Term '|' . Term '}' (rule 66) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6391,19 +6648,21 @@ State 274 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6417,16 +6676,16 @@ State 274 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 288 + Term goto state 291 -State 275 +State 278 Command -> '#def' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 51) - ':=' shift, and enter state 287 + ':=' shift, and enter state 290 -State 276 +State 279 Command -> '#def' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 50) @@ -6443,19 +6702,21 @@ State 276 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6469,16 +6730,16 @@ State 276 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 286 + Term goto state 289 -State 277 +State 280 Command -> '#define' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 49) - ':=' shift, and enter state 285 + ':=' shift, and enter state 288 -State 278 +State 281 Command -> '#define' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 48) @@ -6495,19 +6756,21 @@ State 278 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6521,9 +6784,9 @@ State 278 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 284 + Term goto state 287 -State 279 +State 282 Command -> '#postulate' VarIdent DeclUsedVars ':' Term . (rule 43) @@ -6531,7 +6794,7 @@ State 279 %eof reduce using rule 43 -State 280 +State 283 Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' . Term (rule 42) @@ -6548,19 +6811,21 @@ State 280 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6574,21 +6839,21 @@ State 280 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 283 + Term goto state 286 -State 281 +State 284 Command -> '#section' SectionName ';' ListCommand '#end' . SectionName (rule 47) ';' reduce using rule 56 - L_VarIdentTokenshift, and enter state 66 + L_VarIdentTokenshift, and enter state 68 %eof reduce using rule 56 VarIdentToken goto state 28 - VarIdent goto state 97 - SectionName goto state 282 + VarIdent goto state 100 + SectionName goto state 285 -State 282 +State 285 Command -> '#section' SectionName ';' ListCommand '#end' SectionName . (rule 47) @@ -6596,7 +6861,7 @@ State 282 %eof reduce using rule 47 -State 283 +State 286 Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term . (rule 42) @@ -6604,14 +6869,14 @@ State 283 %eof reduce using rule 42 -State 284 +State 287 Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 48) - ':=' shift, and enter state 307 + ':=' shift, and enter state 310 -State 285 +State 288 Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 49) @@ -6628,19 +6893,21 @@ State 285 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6654,16 +6921,16 @@ State 285 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 306 + Term goto state 309 -State 286 +State 289 Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 50) - ':=' shift, and enter state 305 + ':=' shift, and enter state 308 -State 287 +State 290 Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 51) @@ -6680,19 +6947,21 @@ State 287 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6706,46 +6975,46 @@ State 287 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 304 + Term goto state 307 -State 288 +State 291 - Param -> '{' Pattern ':' Term '|' Term . '}' (rule 65) + Param -> '{' Pattern ':' Term '|' Term . '}' (rule 66) - '}' shift, and enter state 303 + '}' shift, and enter state 306 -State 289 +State 292 - Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 116) + Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 119) - ',' shift, and enter state 302 + ',' shift, and enter state 305 -State 290 +State 293 - Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 115) + Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 118) - ',' shift, and enter state 301 + ',' shift, and enter state 304 -State 291 +State 294 - ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 73) + ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 74) - '}' shift, and enter state 300 + '}' shift, and enter state 303 -State 292 +State 295 - ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 72) + ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 73) - '|' shift, and enter state 299 + '|' shift, and enter state 302 -State 293 +State 296 - Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 89) + Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 90) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6760,19 +7029,21 @@ State 293 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6786,11 +7057,11 @@ State 293 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 298 + Term goto state 301 -State 294 +State 297 - Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6805,19 +7076,21 @@ State 294 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6831,18 +7104,18 @@ State 294 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 297 + Term goto state 300 -State 295 +State 298 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 109) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 111) - ',' shift, and enter state 296 + ',' shift, and enter state 299 -State 296 +State 299 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 109) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 111) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6857,19 +7130,21 @@ State 296 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6880,27 +7155,27 @@ State 296 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 315 + Term2 goto state 73 + Term1 goto state 318 Term6 goto state 39 -State 297 +State 300 - Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 97) - ',' shift, and enter state 314 + ',' shift, and enter state 317 -State 298 +State 301 - Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 89) + Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 90) - ',' shift, and enter state 313 + ',' shift, and enter state 316 -State 299 +State 302 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 72) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 73) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6915,19 +7190,21 @@ State 299 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6941,20 +7218,20 @@ State 299 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 312 + Term goto state 315 -State 300 +State 303 - ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 73) + ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 74) - '->' reduce using rule 73 - '→' reduce using rule 73 - %eof reduce using rule 73 + '->' reduce using rule 74 + '→' reduce using rule 74 + %eof reduce using rule 74 -State 301 +State 304 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 115) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 118) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6969,19 +7246,21 @@ State 301 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6992,13 +7271,13 @@ State 301 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 311 + Term2 goto state 73 + Term1 goto state 314 Term6 goto state 39 -State 302 +State 305 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 116) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 119) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7013,19 +7292,21 @@ State 302 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7036,24 +7317,25 @@ State 302 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 71 - Term1 goto state 310 + Term2 goto state 73 + Term1 goto state 313 Term6 goto state 39 -State 303 +State 306 - Param -> '{' Pattern ':' Term '|' Term '}' . (rule 65) + Param -> '{' Pattern ':' Term '|' Term '}' . (rule 66) - '(' reduce using rule 65 - '->' reduce using rule 65 - ':' reduce using rule 65 - '_' reduce using rule 65 - '{' reduce using rule 65 - L_VarIdentTokenreduce using rule 65 - %eof reduce using rule 65 + '(' reduce using rule 66 + '->' reduce using rule 66 + ':' reduce using rule 66 + '_' reduce using rule 66 + 'unit' reduce using rule 66 + '{' reduce using rule 66 + L_VarIdentTokenreduce using rule 66 + %eof reduce using rule 66 -State 304 +State 307 Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 51) @@ -7061,7 +7343,7 @@ State 304 %eof reduce using rule 51 -State 305 +State 308 Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 50) @@ -7078,19 +7360,21 @@ State 305 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7104,9 +7388,9 @@ State 305 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 309 + Term goto state 312 -State 306 +State 309 Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 49) @@ -7114,7 +7398,7 @@ State 306 %eof reduce using rule 49 -State 307 +State 310 Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 48) @@ -7131,19 +7415,21 @@ State 307 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7157,9 +7443,9 @@ State 307 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 308 + Term goto state 311 -State 308 +State 311 Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 48) @@ -7167,58 +7453,58 @@ State 308 %eof reduce using rule 48 -State 309 +State 312 Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 50) ';' reduce using rule 50 - %eof reduce using rule 50 - - -State 310 - - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 116) - - ')' reduce using rule 116 - ',' reduce using rule 116 - ':' reduce using rule 116 - ':=' reduce using rule 116 - ';' reduce using rule 116 - '>' reduce using rule 116 - ']' reduce using rule 116 - '|' reduce using rule 116 - '|->' reduce using rule 116 - '}' reduce using rule 116 - %eof reduce using rule 116 + %eof reduce using rule 50 -State 311 +State 313 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 115) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 119) - ')' reduce using rule 115 - ',' reduce using rule 115 - ':' reduce using rule 115 - ':=' reduce using rule 115 - ';' reduce using rule 115 - '>' reduce using rule 115 - ']' reduce using rule 115 - '|' reduce using rule 115 - '|->' reduce using rule 115 - '}' reduce using rule 115 - %eof reduce using rule 115 + ')' reduce using rule 119 + ',' reduce using rule 119 + ':' reduce using rule 119 + ':=' reduce using rule 119 + ';' reduce using rule 119 + '>' reduce using rule 119 + ']' reduce using rule 119 + '|' reduce using rule 119 + '|->' reduce using rule 119 + '}' reduce using rule 119 + %eof reduce using rule 119 -State 312 +State 314 + + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 118) + + ')' reduce using rule 118 + ',' reduce using rule 118 + ':' reduce using rule 118 + ':=' reduce using rule 118 + ';' reduce using rule 118 + '>' reduce using rule 118 + ']' reduce using rule 118 + '|' reduce using rule 118 + '|->' reduce using rule 118 + '}' reduce using rule 118 + %eof reduce using rule 118 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 72) - '}' shift, and enter state 318 +State 315 + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 73) -State 313 + '}' shift, and enter state 321 + + +State 316 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 89) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 90) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7233,19 +7519,21 @@ State 313 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7259,11 +7547,11 @@ State 313 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 317 + Term goto state 320 -State 314 +State 317 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7278,19 +7566,21 @@ State 314 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7304,98 +7594,99 @@ State 314 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 316 + Term goto state 319 -State 315 +State 318 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 109) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 111) - ')' reduce using rule 109 - ',' reduce using rule 109 - ':' reduce using rule 109 - ':=' reduce using rule 109 - ';' reduce using rule 109 - '>' reduce using rule 109 - ']' reduce using rule 109 - '|' reduce using rule 109 - '|->' reduce using rule 109 - '}' reduce using rule 109 - %eof reduce using rule 109 + ')' reduce using rule 111 + ',' reduce using rule 111 + ':' reduce using rule 111 + ':=' reduce using rule 111 + ';' reduce using rule 111 + '>' reduce using rule 111 + ']' reduce using rule 111 + '|' reduce using rule 111 + '|->' reduce using rule 111 + '}' reduce using rule 111 + %eof reduce using rule 111 -State 316 +State 319 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 97) - ',' shift, and enter state 320 + ',' shift, and enter state 323 -State 317 +State 320 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 89) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 90) - ')' shift, and enter state 319 + ')' shift, and enter state 322 -State 318 +State 321 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 72) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 73) - '->' reduce using rule 72 - '→' reduce using rule 72 - %eof reduce using rule 72 + '->' reduce using rule 73 + '→' reduce using rule 73 + %eof reduce using rule 73 -State 319 +State 322 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 89) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 90) - '(' reduce using rule 89 - ')' reduce using rule 89 - '*' reduce using rule 89 - '*_1' reduce using rule 89 - ',' reduce using rule 89 - '->' reduce using rule 89 - '/\\' reduce using rule 89 - '0_2' reduce using rule 89 - '1' reduce using rule 89 - '1_2' reduce using rule 89 - '2' reduce using rule 89 - ':' reduce using rule 89 - ':=' reduce using rule 89 - ';' reduce using rule 89 - '<' reduce using rule 89 - '<=' reduce using rule 89 - '=' reduce using rule 89 - '===' reduce using rule 89 - '=_{' reduce using rule 89 - '>' reduce using rule 89 - 'BOT' reduce using rule 89 - 'CUBE' reduce using rule 89 - 'TOP' reduce using rule 89 - 'TOPE' reduce using rule 89 - 'U' reduce using rule 89 - '[' reduce using rule 89 - '\\/' reduce using rule 89 - ']' reduce using rule 89 - 'as' reduce using rule 89 - 'idJ' reduce using rule 89 - 'recBOT' reduce using rule 89 - 'recOR' reduce using rule 89 - 'refl' reduce using rule 89 - 'refl_{' reduce using rule 89 - '|' reduce using rule 89 - '|->' reduce using rule 89 - '}' reduce using rule 89 - '→' reduce using rule 89 - L_VarIdentTokenreduce using rule 89 - L_HoleIdentTokenreduce using rule 89 - %eof reduce using rule 89 + '(' reduce using rule 90 + ')' reduce using rule 90 + '*' reduce using rule 90 + '*_1' reduce using rule 90 + ',' reduce using rule 90 + '->' reduce using rule 90 + '/\\' reduce using rule 90 + '0_2' reduce using rule 90 + '1' reduce using rule 90 + '1_2' reduce using rule 90 + '2' reduce using rule 90 + ':' reduce using rule 90 + ':=' reduce using rule 90 + ';' reduce using rule 90 + '<' reduce using rule 90 + '<=' reduce using rule 90 + '=' reduce using rule 90 + '===' reduce using rule 90 + '=_{' reduce using rule 90 + '>' reduce using rule 90 + 'BOT' reduce using rule 90 + 'CUBE' reduce using rule 90 + 'TOP' reduce using rule 90 + 'TOPE' reduce using rule 90 + 'U' reduce using rule 90 + '[' reduce using rule 90 + '\\/' reduce using rule 90 + ']' reduce using rule 90 + 'as' reduce using rule 90 + 'idJ' reduce using rule 90 + 'recBOT' reduce using rule 90 + 'recOR' reduce using rule 90 + 'refl' reduce using rule 90 + 'refl_{' reduce using rule 90 + 'unit' reduce using rule 90 + '|' reduce using rule 90 + '|->' reduce using rule 90 + '}' reduce using rule 90 + '→' reduce using rule 90 + L_VarIdentTokenreduce using rule 90 + L_HoleIdentTokenreduce using rule 90 + %eof reduce using rule 90 -State 320 +State 323 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7410,19 +7701,21 @@ State 320 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7436,18 +7729,18 @@ State 320 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 321 + Term goto state 324 -State 321 +State 324 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 97) - ',' shift, and enter state 322 + ',' shift, and enter state 325 -State 322 +State 325 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7462,19 +7755,21 @@ State 322 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 - '\\' shift, and enter state 55 - 'first' shift, and enter state 56 - 'idJ' shift, and enter state 57 - 'recBOT' shift, and enter state 58 - 'recOR' shift, and enter state 59 - 'refl' shift, and enter state 60 - 'refl_{' shift, and enter state 61 - 'second' shift, and enter state 62 - '{' shift, and enter state 63 - 'Σ' shift, and enter state 64 - '∑' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 66 - L_HoleIdentTokenshift, and enter state 67 + 'Unit' shift, and enter state 55 + '\\' shift, and enter state 56 + 'first' shift, and enter state 57 + 'idJ' shift, and enter state 58 + 'recBOT' shift, and enter state 59 + 'recOR' shift, and enter state 60 + 'refl' shift, and enter state 61 + 'refl_{' shift, and enter state 62 + 'second' shift, and enter state 63 + 'unit' shift, and enter state 64 + '{' shift, and enter state 65 + 'Σ' shift, and enter state 66 + '∑' shift, and enter state 67 + L_VarIdentTokenshift, and enter state 68 + L_HoleIdentTokenshift, and enter state 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7488,66 +7783,67 @@ State 322 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 323 + Term goto state 326 -State 323 +State 326 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 97) - ')' shift, and enter state 324 + ')' shift, and enter state 327 -State 324 +State 327 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 95) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 97) - '(' reduce using rule 95 - ')' reduce using rule 95 - '*' reduce using rule 95 - '*_1' reduce using rule 95 - ',' reduce using rule 95 - '->' reduce using rule 95 - '/\\' reduce using rule 95 - '0_2' reduce using rule 95 - '1' reduce using rule 95 - '1_2' reduce using rule 95 - '2' reduce using rule 95 - ':' reduce using rule 95 - ':=' reduce using rule 95 - ';' reduce using rule 95 - '<' reduce using rule 95 - '<=' reduce using rule 95 - '=' reduce using rule 95 - '===' reduce using rule 95 - '=_{' reduce using rule 95 - '>' reduce using rule 95 - 'BOT' reduce using rule 95 - 'CUBE' reduce using rule 95 - 'TOP' reduce using rule 95 - 'TOPE' reduce using rule 95 - 'U' reduce using rule 95 - '[' reduce using rule 95 - '\\/' reduce using rule 95 - ']' reduce using rule 95 - 'as' reduce using rule 95 - 'idJ' reduce using rule 95 - 'recBOT' reduce using rule 95 - 'recOR' reduce using rule 95 - 'refl' reduce using rule 95 - 'refl_{' reduce using rule 95 - '|' reduce using rule 95 - '|->' reduce using rule 95 - '}' reduce using rule 95 - '→' reduce using rule 95 - L_VarIdentTokenreduce using rule 95 - L_HoleIdentTokenreduce using rule 95 - %eof reduce using rule 95 + '(' reduce using rule 97 + ')' reduce using rule 97 + '*' reduce using rule 97 + '*_1' reduce using rule 97 + ',' reduce using rule 97 + '->' reduce using rule 97 + '/\\' reduce using rule 97 + '0_2' reduce using rule 97 + '1' reduce using rule 97 + '1_2' reduce using rule 97 + '2' reduce using rule 97 + ':' reduce using rule 97 + ':=' reduce using rule 97 + ';' reduce using rule 97 + '<' reduce using rule 97 + '<=' reduce using rule 97 + '=' reduce using rule 97 + '===' reduce using rule 97 + '=_{' reduce using rule 97 + '>' reduce using rule 97 + 'BOT' reduce using rule 97 + 'CUBE' reduce using rule 97 + 'TOP' reduce using rule 97 + 'TOPE' reduce using rule 97 + 'U' reduce using rule 97 + '[' reduce using rule 97 + '\\/' reduce using rule 97 + ']' reduce using rule 97 + 'as' reduce using rule 97 + 'idJ' reduce using rule 97 + 'recBOT' reduce using rule 97 + 'recOR' reduce using rule 97 + 'refl' reduce using rule 97 + 'refl_{' reduce using rule 97 + 'unit' reduce using rule 97 + '|' reduce using rule 97 + '|->' reduce using rule 97 + '}' reduce using rule 97 + '→' reduce using rule 97 + L_VarIdentTokenreduce using rule 97 + L_HoleIdentTokenreduce using rule 97 + %eof reduce using rule 97 ----------------------------------------------------------------------------- Grammar Totals ----------------------------------------------------------------------------- -Number of rules: 126 -Number of terminals: 66 +Number of rules: 129 +Number of terminals: 68 Number of non-terminals: 55 -Number of states: 325 +Number of states: 328 diff --git a/rzk/src/Language/Rzk/Syntax/Par.y b/rzk/src/Language/Rzk/Syntax/Par.y index 81d59ebeb..6c4381ace 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.y +++ b/rzk/src/Language/Rzk/Syntax/Par.y @@ -114,28 +114,30 @@ import Language.Rzk.Syntax.Lex '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) } + '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 _) } @@ -213,6 +215,7 @@ SectionName 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)) } @@ -267,6 +270,7 @@ Term7 | '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)) } | '<' 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)) } @@ -300,6 +304,7 @@ Term1 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) Term1 : ParamDecl '->' Term1 { (fst $1, Language.Rzk.Syntax.Abs.TypeFun (fst $1) (snd $1) (snd $3)) } | 'Sigma' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } + | 'Unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | Term2 '=_{' Term '}' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TypeId (fst $1) (snd $1) (snd $3) (snd $5)) } | Term2 '=' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst $1) (snd $1) (snd $3)) } | '\\' ListParam '->' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } diff --git a/rzk/src/Language/Rzk/Syntax/Print.hs b/rzk/src/Language/Rzk/Syntax/Print.hs index 860393168..1d6f25443 100644 --- a/rzk/src/Language/Rzk/Syntax/Print.hs +++ b/rzk/src/Language/Rzk/Syntax/Print.hs @@ -196,6 +196,7 @@ instance Print (Language.Rzk.Syntax.Abs.SectionName' a) where 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 ")")]) @@ -252,6 +253,7 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where 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 1 (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 "]")]) @@ -260,6 +262,7 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where 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/rzk/src/Language/Rzk/Syntax/Skel.hs b/rzk/src/Language/Rzk/Syntax/Skel.hs index cc8df6eef..d96538151 100644 --- a/rzk/src/Language/Rzk/Syntax/Skel.hs +++ b/rzk/src/Language/Rzk/Syntax/Skel.hs @@ -68,6 +68,7 @@ transSectionName x = case x of transPattern :: Show a => Language.Rzk.Syntax.Abs.Pattern' a -> Result transPattern x = case x of Language.Rzk.Syntax.Abs.PatternWildcard _ -> failure x + Language.Rzk.Syntax.Abs.PatternUnit _ -> failure x Language.Rzk.Syntax.Abs.PatternVar _ varident -> failure x Language.Rzk.Syntax.Abs.PatternPair _ pattern_1 pattern_2 -> failure x @@ -109,6 +110,7 @@ transTerm x = case x of Language.Rzk.Syntax.Abs.RecOr _ restrictions -> failure x Language.Rzk.Syntax.Abs.TypeFun _ paramdecl term -> failure x Language.Rzk.Syntax.Abs.TypeSigma _ pattern_ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.TypeUnit _ -> failure x Language.Rzk.Syntax.Abs.TypeId _ term1 term2 term3 -> failure x Language.Rzk.Syntax.Abs.TypeIdSimple _ term1 term2 -> failure x Language.Rzk.Syntax.Abs.TypeRestricted _ term restrictions -> failure x @@ -117,6 +119,7 @@ transTerm x = case x of Language.Rzk.Syntax.Abs.Pair _ term1 term2 -> failure x Language.Rzk.Syntax.Abs.First _ term -> failure x Language.Rzk.Syntax.Abs.Second _ term -> failure x + Language.Rzk.Syntax.Abs.Unit _ -> failure x Language.Rzk.Syntax.Abs.Refl _ -> failure x Language.Rzk.Syntax.Abs.ReflTerm _ term -> failure x Language.Rzk.Syntax.Abs.ReflTermType _ term1 term2 -> failure x diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs index bd777365e..83c66353c 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokenize.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -56,9 +56,10 @@ tokenizeParam = \case tokenizePattern :: Pattern -> [VSToken] tokenizePattern = \case - PatternWildcard _loc -> [] - PatternVar _loc var -> mkToken var vs_parameter [vs_declaration] - PatternPair _loc l r -> foldMap tokenizePattern [l, r] + 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) @@ -125,6 +126,9 @@ tokenizeTerm' varTokenType = go [ 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] diff --git a/rzk/src/Rzk/TypeCheck.hs b/rzk/src/Rzk/TypeCheck.hs index 2d1f41cce..874771196 100644 --- a/rzk/src/Rzk/TypeCheck.hs +++ b/rzk/src/Rzk/TypeCheck.hs @@ -24,8 +24,8 @@ import Debug.Trace 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 @@ data Decl var = Decl , 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,7 +47,7 @@ typecheckModulesWithLocation = \case localDeclsPrepared decls $ typecheckModulesWithLocation ms -typecheckModules :: [Rzk.Module] -> TypeCheck Rzk.VarIdent () +typecheckModules :: [Rzk.Module] -> TypeCheck VarIdent () typecheckModules = \case [] -> return () m : ms -> do @@ -55,7 +55,7 @@ typecheckModules = \case 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 }) $ @@ -67,14 +67,14 @@ countCommands (Rzk.CommandSection _loc _name sectionCommands _name2 : commands) countCommands sectionCommands + countCommands commands countCommands (_ : commands) = 1 + countCommands commands -typecheckModule :: Rzk.Module -> TypeCheck Rzk.VarIdent [Decl'] +typecheckModule :: Rzk.Module -> TypeCheck VarIdent [Decl'] typecheckModule (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 @@ typecheckModule (Rzk.Module _moduleLoc _lang commands) = 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 (VarIdent <$> 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 (VarIdent name) ty' (Just term') False (VarIdent <$> vars) fmap (decl :) $ localDeclPrepared decl $ do Context{..} <- ask termSVG <- case renderBackend of - Just RenderSVG -> renderTermSVG (Pure name) + Just RenderSVG -> renderTermSVG (Pure (VarIdent name)) Just RenderLaTeX -> issueTypeError $ TypeErrorOther "\"latex\" rendering is not yet supported" Nothing -> pure Nothing maybe id trace termSVG $ do @@ -113,12 +113,12 @@ typecheckModule (Rzk.Module _moduleLoc _lang commands) = 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 (VarIdent <$> 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 (VarIdent name) ty' Nothing False (VarIdent <$> vars) fmap (decl :) $ localDeclPrepared decl $ go (i + 1) moreCommands @@ -152,10 +152,10 @@ typecheckModule (Rzk.Module _moduleLoc _lang commands) = 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 (VarIdent name) ty' Nothing True [] | name <- names ] fmap (decls <>) $ localDeclsPrepared decls $ go (i + 1) moreCommands @@ -219,7 +219,7 @@ data TypeError var | TypeErrorTopeNotSatisfied [TermT var] (TermT var) | TypeErrorTopesNotEquivalent (TermT var) (TermT var) | TypeErrorInvalidArgumentType (Term var) (TermT var) - | TypeErrorDuplicateTopLevel Rzk.VarIdent + | TypeErrorDuplicateTopLevel VarIdent | TypeErrorUnusedVariable var (TermT var) | TypeErrorUnusedUsedVariables [var] var | TypeErrorImplicitAssumption (var, TermT var) var @@ -232,10 +232,10 @@ data TypeErrorInContext var = TypeErrorInContext 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 @@ -325,38 +325,38 @@ ppTypeError' = \case TypeErrorDuplicateTopLevel name -> unlines [ "duplicate top-level definition" - , " " <> Rzk.printTree name + , " " <> Rzk.printTree (getVarIdent name) ] 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 +374,7 @@ ppTypeErrorInScopedContextWith' used vars = \case 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 +413,23 @@ data Action var | 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 Nothing "_") $ + toRzkVarIdent origs var = fromMaybe (VarIdent (Rzk.VarIdent Nothing "_")) $ 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 Nothing "_") $ + toRzkVarIdent var = fromMaybe (VarIdent (Rzk.VarIdent Nothing "_")) $ join (lookup var origs) <|> lookup var mapping ppAction :: Int -> Action' -> String @@ -553,7 +553,7 @@ addVarToScope var info ScopeInfo{..} = ScopeInfo 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 +609,14 @@ varTypes = map (fmap varType) . varInfos 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 +627,12 @@ withSection name sectionBody next = do 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 +732,7 @@ abstractAssumption (var, VarInfo{..}) Decl{..} = Decl 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 +749,9 @@ ppContext' ctx@Context{..} = unlines _ -> "" , 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,21 +773,21 @@ ppContext' ctx@Context{..} = unlines -- , intercalate "\n" (map ((" " <>) . show . untyped) (intercalate [TopeAndT topeT topeBottomT topeBottomT] (saturateTopes [] <$> simplifyLHS localTopes))) ] -doesShadowName :: Rzk.VarIdent -> TypeCheck var Bool +doesShadowName :: VarIdent -> TypeCheck var Bool doesShadowName name = asks $ \ctx -> name `elem` 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 () -checkNameShadowing :: Rzk.VarIdent -> TypeCheck var () +checkNameShadowing :: VarIdent -> TypeCheck var () checkNameShadowing name = do doesShadowName name >>= \case True -> issueWarning $ - Rzk.printTree name <> " shadows an existing definition" + Rzk.printTree (getVarIdent name) <> " shadows an existing definition" False -> return () withLocation :: LocationInfo -> TypeCheck var a -> TypeCheck var a @@ -796,21 +796,21 @@ withLocation loc = local $ \Context{..} -> Context { location = Just loc, .. } 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 +1070,7 @@ switchVariance = local $ \Context{..} -> Context 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 +1081,7 @@ enterScopeContext orig ty = } . 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 +1233,8 @@ whnfT tt = performing (ActionWHNF tt) $ case tt of 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 +1340,10 @@ nfTope tt = performing (ActionNF tt) $ fmap termIsNF $ case tt of 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 +1445,8 @@ nfT tt = performing (ActionNF tt) $ case tt of -- 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 +1629,9 @@ unifyInCurrentContext mterm expected actual = performing action $ UniverseCubeT{} -> def UniverseTopeT{} -> def + TypeUnitT{} -> def + UnitT{} -> return () -- Unit always unifies! + CubeUnitT{} -> def CubeUnitStarT{} -> def Cube2T{} -> def @@ -1888,6 +1899,18 @@ cubeUnitStarT = CubeUnitStarT TypeInfo , 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 +1959,7 @@ typeRestrictedT ty rs = t lambdaT :: TermT var - -> Maybe Rzk.VarIdent + -> Maybe VarIdent -> Maybe (TermT var, Maybe (Scope TermT var)) -> Scope TermT var -> TermT var @@ -2003,7 +2026,7 @@ reflT ty mx = t } typeFunT - :: Maybe Rzk.VarIdent + :: Maybe VarIdent -> TermT var -> Maybe (Scope TermT var) -> Scope TermT var @@ -2018,7 +2041,7 @@ typeFunT orig cube mtope ret = t } typeSigmaT - :: Maybe Rzk.VarIdent + :: Maybe VarIdent -> TermT var -> Scope TermT var -> TermT var @@ -2237,6 +2260,9 @@ infer tt = performing (ActionInfer tt) $ case tt of return (secondT r t') ty -> issueTypeError $ TypeErrorNotPair t' ty + TypeUnit -> pure universeT + Unit -> pure typeUnitT + TopeTop -> pure topeTopT TopeBottom -> pure topeBottomT @@ -2598,7 +2624,7 @@ renderObjectsFor mainColor dim t term = fmap catMaybes $ do label <- case term' of AppT _ (Pure z) arg - | Just (Just (Rzk.VarIdent _loc "_")) <- lookup z origs -> return "" + | Just (Just "_") <- lookup z origs -> return "" | null (nub (freeVars (untyped arg)) \\ nub (freeVars (untyped t))) -> ppTermInContext (Pure z) _ -> ppTermInContext term' @@ -2609,7 +2635,7 @@ renderObjectsFor mainColor dim t term = fmap catMaybes $ do case term' of Pure{} -> "purple" AppT _ (Pure x) arg - | Just (Just (Rzk.VarIdent _loc "_")) <- lookup x origs -> mainColor + | Just (Just "_") <- lookup x origs -> mainColor | null (nub (freeVars (untyped arg)) \\ nub (freeVars (untyped t))) -> "purple" _ -> mainColor }) @@ -2654,7 +2680,7 @@ renderObjectsInSubShapeFor mainColor dim sub super retType f x = fmap catMaybes _ -> do case term of AppT _ (Pure z) arg - | Just (Just (Rzk.VarIdent _loc "_")) <- lookup z origs -> return "" + | Just (Just "_") <- lookup z origs -> return "" | null (nub (freeVars (untyped arg)) \\ [super]) -> ppTermInContext (Pure z) _ -> ppTermInContext term color <- checkEntails tope contextTopes' >>= \case @@ -2662,7 +2688,7 @@ renderObjectsInSubShapeFor mainColor dim sub super retType f x = fmap catMaybes case term of Pure{} -> return "purple" AppT _ (Pure z) arg - | Just (Just (Rzk.VarIdent _loc "_")) <- lookup z origs -> return mainColor + | Just (Just "_") <- lookup z origs -> return mainColor | null (nub (freeVars (untyped arg)) \\ [super]) -> return "purple" _ -> return mainColor False -> return "gray" @@ -2718,7 +2744,7 @@ renderTermSVGFor mainColor accDim (mp, xs) t = do maybe id localTope mtopeArg $ do Just <$> renderForSubShapeSVG mainColor dim (map S xs) Z ret (S <$> f) (S <$> x) -- FIXME: breaks for 2 * (2 * 2), but works for 2 * 2 * 2 = (2 * 2) * 2 _ -> traverse (\(p', _) -> renderForSVG mainColor accDim p' t') mp - TypeFunT{} | null xs -> enterScope (Just (Rzk.VarIdent Nothing "_")) t' $ do + TypeFunT{} | null xs -> enterScope (Just "_") t' $ do renderTermSVGFor "blue" 0 (Nothing, []) (Pure Z) -- use blue for types _ -> case t' of -- check evaluated term @@ -2728,7 +2754,7 @@ renderTermSVGFor mainColor accDim (mp, xs) t = do maybe id localTope mtopeArg $ do Just <$> renderForSubShapeSVG mainColor dim (map S xs) Z ret (S <$> f) (S <$> x) -- FIXME: breaks for 2 * (2 * 2), but works for 2 * 2 * 2 = (2 * 2) * 2 _ -> traverse (\(p', _) -> renderForSVG mainColor accDim p' t') mp - TypeFunT{} | null xs -> enterScope (Just (Rzk.VarIdent Nothing "_")) t' $ do + TypeFunT{} | null xs -> enterScope (Just "_") t' $ do renderTermSVGFor "blue" 0 (Nothing, []) (Pure Z) -- use blue for types _ -> case ty of -- check type of the term From bf9d6cd9c0b24e3d91b76e635f76153596297abd Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Tue, 20 Jun 2023 13:28:23 +0300 Subject: [PATCH 12/13] Use location information for duplicates, fix unit types --- rzk/src/Language/Rzk/Free/Syntax.hs | 68 +- rzk/src/Language/Rzk/Syntax.cf | 2 +- rzk/src/Language/Rzk/Syntax/Doc.txt | 2 +- rzk/src/Language/Rzk/Syntax/Par.hs | 110 +- rzk/src/Language/Rzk/Syntax/Par.info | 1593 ++++++++++++++------------ rzk/src/Language/Rzk/Syntax/Par.y | 2 +- rzk/src/Language/Rzk/Syntax/Print.hs | 59 +- rzk/src/Rzk/Main.hs | 2 +- rzk/src/Rzk/TypeCheck.hs | 58 +- 9 files changed, 1007 insertions(+), 889 deletions(-) diff --git a/rzk/src/Language/Rzk/Free/Syntax.hs b/rzk/src/Language/Rzk/Free/Syntax.hs index 05d46dc96..fb5019c5f 100644 --- a/rzk/src/Language/Rzk/Free/Syntax.hs +++ b/rzk/src/Language/Rzk/Free/Syntax.hs @@ -16,7 +16,8 @@ import Data.Char (chr, ord) import Data.Coerce import Data.Function (on) import Data.Functor (void) -import Data.List (nub, (\\)) +import Data.List (intercalate, nub, (\\)) +import Data.Maybe (fromMaybe) import Data.String import Free.Scoped @@ -24,13 +25,36 @@ import Free.Scoped.TH import qualified Language.Rzk.Syntax as Rzk -newtype VarIdent = VarIdent { getVarIdent :: Rzk.VarIdent } +data RzkPosition = RzkPosition + { rzkFilePath :: Maybe FilePath + , rzkLineCol :: Rzk.BNFC'Position + } + +ppRzkPosition :: RzkPosition -> String +ppRzkPosition RzkPosition{..} = intercalate ":" $ concat + [ [fromMaybe "" 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 Nothing (fromString s)) + 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 @@ -141,14 +165,14 @@ toScopePattern pat bvars = toTerm $ \z -> where bindings (Rzk.PatternWildcard _loc) _ = [] bindings (Rzk.PatternUnit _loc) _ = [] - bindings (Rzk.PatternVar _loc x) t = [(VarIdent x, t)] + 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 :: (VarIdent -> Term a) -> Rzk.Term -> Term a toTerm bvars = go where go = \case - Rzk.Var _loc x -> bvars (VarIdent x) + Rzk.Var _loc x -> bvars (varIdent x) Rzk.Universe _loc -> Universe Rzk.UniverseCube _loc -> UniverseCube @@ -211,15 +235,15 @@ toTerm bvars = go Rzk.Hole _loc _ident -> error "holes are not supported" - patternVar (Rzk.PatternVar _loc x) = Just (VarIdent 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 -> [VarIdent] -> [VarIdent] -> Scope Term VarIdent -> Rzk.Term -fromScope' x used xs = fromTermWith' (VarIdent x : used) xs . (>>= fmap VarIdent . f . fmap getVarIdent) +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 @@ -239,7 +263,7 @@ fromTermWith' used vars = go go :: Term' -> Rzk.Term go = \case - Pure z -> Rzk.Var loc (getVarIdent z) + Pure z -> Rzk.Var loc (fromVarIdent z) Universe -> Rzk.Universe loc UniverseCube -> Rzk.UniverseCube loc @@ -259,23 +283,23 @@ fromTermWith' used vars = go RecBottom -> Rzk.RecBottom loc RecOr rs -> Rzk.RecOr loc [ Rzk.Restriction loc (go tope) (go term) | (tope, term) <- rs ] - TypeFun z arg Nothing ret -> withFresh z $ \(VarIdent x, xs) -> - Rzk.TypeFun loc (Rzk.ParamVarType loc (Rzk.PatternVar loc x) (go arg)) (fromScope' x used xs ret) - TypeFun z arg (Just tope) ret -> withFresh z $ \(VarIdent x, xs) -> - Rzk.TypeFun loc (Rzk.ParamVarShape loc (Rzk.PatternVar loc x) (go arg) (fromScope' x used xs tope)) (fromScope' x used xs ret) + TypeFun z arg Nothing ret -> withFresh z $ \(x, xs) -> + 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 (fromVarIdent x)) (go arg) (fromScope' x used xs tope)) (fromScope' x used xs ret) - TypeSigma z a b -> withFresh z $ \(VarIdent x, xs) -> - Rzk.TypeSigma loc (Rzk.PatternVar loc x) (go a) (fromScope' x used xs b) + TypeSigma z a b -> withFresh z $ \(x, xs) -> + 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 $ \(VarIdent x, xs) -> - Rzk.Lambda loc [Rzk.ParamPattern loc (Rzk.PatternVar loc x)] (fromScope' x used xs scope) - Lambda z (Just (ty, Nothing)) scope -> withFresh z $ \(VarIdent x, xs) -> - Rzk.Lambda loc [Rzk.ParamPatternType loc [Rzk.PatternVar loc x] (go ty)] (fromScope' x used xs scope) - Lambda z (Just (cube, Just tope)) scope -> withFresh z $ \(VarIdent x, xs) -> - Rzk.Lambda loc [Rzk.ParamPatternShape loc (Rzk.PatternVar loc x) (go cube) (fromScope' x used xs tope)] (fromScope' x used xs scope) + Lambda z Nothing scope -> withFresh z $ \(x, xs) -> + 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 (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 (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) @@ -293,7 +317,7 @@ fromTermWith' used vars = go defaultVarIdents :: [VarIdent] defaultVarIdents = - [ VarIdent (Rzk.VarIdent Nothing (Rzk.VarIdentToken name)) + [ fromString name | n <- [1..] , let name = "x" <> map digitToSub (show n) ] where diff --git a/rzk/src/Language/Rzk/Syntax.cf b/rzk/src/Language/Rzk/Syntax.cf index 74a7babea..61a5e318b 100644 --- a/rzk/src/Language/Rzk/Syntax.cf +++ b/rzk/src/Language/Rzk/Syntax.cf @@ -107,7 +107,7 @@ define recOr psi phi a b = RecOr [ Restriction psi a, Restriction phi b ] ; -- Types TypeFun. Term1 ::= ParamDecl "->" Term1 ; TypeSigma. Term1 ::= "Sigma" "(" Pattern ":" Term ")" "," Term1 ; -TypeUnit. Term1 ::= "Unit" ; +TypeUnit. Term7 ::= "Unit" ; TypeId. Term1 ::= Term2 "=_{" Term "}" Term2 ; TypeIdSimple. Term1 ::= Term2 "=" Term2 ; TypeRestricted. Term6 ::= Term6 "[" [Restriction] "]" ; diff --git a/rzk/src/Language/Rzk/Syntax/Doc.txt b/rzk/src/Language/Rzk/Syntax/Doc.txt index 5d1698497..fa4e03987 100644 --- a/rzk/src/Language/Rzk/Syntax/Doc.txt +++ b/rzk/src/Language/Rzk/Syntax/Doc.txt @@ -123,6 +123,7 @@ All other symbols are terminals. | | **|** | ``recBOT`` | | **|** | ``recOR`` ``(`` //[Restriction]// ``)`` | | **|** | ``recOR`` ``(`` //Term// ``,`` //Term// ``,`` //Term// ``,`` //Term// ``)`` + | | **|** | ``Unit`` | | **|** | ``<`` //ParamDecl// ``->`` //Term// ``>`` | | **|** | ``(`` //Term// ``,`` //Term// ``)`` | | **|** | ``unit`` @@ -144,7 +145,6 @@ All other symbols are terminals. | | **|** | //Term3// | //Term1// | -> | //ParamDecl// ``->`` //Term1// | | **|** | ``Sigma`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// - | | **|** | ``Unit`` | | **|** | //Term2// ``=_{`` //Term// ``}`` //Term2// | | **|** | //Term2// ``=`` //Term2// | | **|** | ``\`` //[Param]// ``->`` //Term1// diff --git a/rzk/src/Language/Rzk/Syntax/Par.hs b/rzk/src/Language/Rzk/Syntax/Par.hs index c5e7af57f..d3e69daf8 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.hs +++ b/rzk/src/Language/Rzk/Syntax/Par.hs @@ -267,7 +267,7 @@ happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x 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\x3b\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\x00\x9f\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x0e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x80\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\x0e\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\x2e\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\x03\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\x00\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\x0e\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\x2e\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\x0b\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\xbb\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\x3b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x0e\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\x3b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x0e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x03\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x80\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\xbb\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\x3b\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"# +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 = @@ -283,22 +283,22 @@ happyExpListPerState st = f (Prelude.True, nr) = [token_strs Prelude.!! nr] happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\x03\x00\xce\xff\xdc\xff\xdc\xff\x25\x00\x04\x00\xf9\x06\xf9\x06\x0f\x00\x10\x00\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\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x01\x00\x40\x00\x41\x00\xee\xff\x00\x00\xa4\x00\x6e\x00\x43\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\x81\x00\x00\x00\x88\x00\x00\x00\x4b\x00\x47\x01\x00\x00\x5a\x00\x9a\x00\x9c\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\x89\x00\x93\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\xcc\x00\xcc\x00\xd9\x00\xd9\x00\xda\x00\xda\x00\x00\x00\xda\x00\xee\x00\xf8\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xf9\x06\x00\x00\x00\x00\x23\x01\x26\x01\x28\x01\x00\x00\x2a\x01\x2f\x01\x15\x01\x15\x01\x15\x01\x00\x00\x00\x00\x00\x00\x32\x01\x3d\x01\xf9\x06\x18\x01\x48\x01\x00\x00\x42\x01\x0d\x00\x4d\x01\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\xf9\x00\xf9\x00\x4b\x00\x33\x00\x6a\x00\x6a\x00\x4e\x01\x6a\x00\x00\x00\xea\xff\x4b\x00\x4b\x00\x00\x00\x58\x01\x6a\x00\x5f\x01\x5b\x01\x5d\x01\x4b\x00\x4b\x00\xf9\x00\xf9\x00\xf9\x00\xf9\x00\x4b\x00\x4b\x00\x00\x00\x00\x00\x50\x01\x50\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\x63\x01\x4b\x00\x6f\x01\x73\x01\xfd\xff\x4b\x00\x00\x00\xf9\xff\x4b\x00\x6c\x01\x7d\x01\x00\x00\x4b\x00\x4f\x01\x00\x00\x20\x01\x00\x00\x00\x00\x60\x01\x4b\x00\x6a\x00\x4b\x00\x8f\x01\x00\x00\x4b\x00\x4b\x00\x56\x01\x57\x01\x5a\x01\xf9\x06\x61\x01\x4b\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x01\x89\x01\x4b\x00\x8a\x01\x4b\x00\x8b\x01\x4b\x00\x00\x00\x00\x00\x00\x00\x66\x01\x96\x01\x97\x01\x00\x00\xf9\x00\xb4\x01\x4b\x00\x4b\x00\x3d\x00\x4b\x00\x88\x01\x4b\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\xb1\x01\xc6\x01\xc7\x01\x00\x00\x00\x00\x00\x00\xc8\x01\xcb\x01\xe6\x01\x00\x00\xc9\x01\x4b\x00\x00\x00\xca\x01\xec\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\xc0\x01\x4b\x00\xe2\x01\x4b\x00\x00\x00\x4b\x00\xbc\x01\x00\x00\x00\x00\xe4\x01\x4b\x00\xe5\x01\x4b\x00\xc4\x01\xf1\x01\x01\x02\xe7\x01\xe8\x01\x4b\x00\x4b\x00\x0c\x02\x4b\x00\x12\x02\x14\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\xed\x01\x4b\x00\x4b\x00\x00\x00\x26\x02\x2a\x02\x00\x00\x00\x00\x4b\x00\x32\x02\x4b\x00\x39\x02\x00\x00\x00\x00"# +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# "\x14\x00\xa7\x00\x02\x00\x67\x00\x44\x02\x46\x02\x57\x02\x5d\x00\x41\x02\x54\x00\x94\x02\x22\x02\x08\x07\xc5\x00\x91\x06\x02\x02\xb6\x01\xed\x00\x98\x06\x8a\x06\x6c\x06\x3d\x06\xad\x05\xcd\x06\x1d\x02\x9a\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\xfb\x00\x00\x00\x00\x00\x28\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x22\x01\x00\x00\x00\x00\x00\x00\x00\x00\x43\x02\xd7\x06\x00\x00\x95\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x06\x4e\x02\x00\x00\x00\x00\x00\x00\xde\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x06\x00\x00\x00\x00\x72\x01\x00\x00\x48\x02\x00\x00\x00\x00\xba\x02\x00\x00\x6e\x02\x00\x00\xbb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x69\x02\x74\x02\x8f\x02\x9a\x02\x2a\x00\xde\x00\xf3\x00\x86\x00\x51\x02\x61\x02\xfd\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x66\x02\x67\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x13\x01\x00\x00\x00\x00\x00\x00\x6e\x02\x00\x00\x00\x00\x00\x00\xd1\x01\xb5\x02\xdc\x01\xd2\x06\x44\x06\xc0\x02\x00\x00\xe0\x02\xe1\x02\x00\x00\x06\x03\x00\x00\x00\x00\xf7\x01\xdb\x02\x00\x00\x00\x00\x07\x03\x00\x00\x00\x00\x00\x00\xa8\x01\xb7\x05\x4b\x06\x73\x06\xaf\x06\xb6\x06\xd1\x05\xdb\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x02\x01\x03\x0c\x03\x00\x00\xf5\x05\x00\x00\x00\x00\x00\x00\x27\x03\x00\x00\x00\x00\x32\x03\x00\x00\x00\x00\x00\x00\x4d\x03\x00\x00\x00\x00\xde\x06\x00\x00\x00\x00\x00\x00\x58\x03\x2c\x03\x73\x03\x00\x00\x00\x00\x7e\x03\x99\x03\x87\x01\xe4\x06\xe9\x06\x2b\x01\x77\x02\xa4\x03\xbf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x03\x00\x00\xe5\x03\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x06\x00\x00\x0b\x04\x16\x04\x00\x00\x31\x04\x00\x00\x3c\x04\x00\x00\x57\x04\x00\x00\x62\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x04\x00\x00\xa3\x04\x00\x00\xae\x04\x00\x00\xc9\x04\x9b\x00\x00\x00\x00\x00\x00\x00\xd4\x04\x00\x00\xef\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x04\x15\x05\x00\x00\xff\x05\x00\x00\x00\x00\x20\x05\x00\x00\x19\x06\x23\x06\x00\x00\x00\x00\x3b\x05\x00\x00\x46\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x05\x6c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x05\x00\x00\x92\x05\x00\x00\x00\x00\x00\x00"# +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\x9d\xff\x9c\xff\x00\x00\x83\xff\x96\xff\x94\xff\x92\xff\x8b\xff\x81\xff\x99\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\x8f\xff\x00\x00\x00\x00\x00\x00\xa7\xff\x00\x00\xa1\xff\x00\x00\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x8b\xff\x00\x00\x00\x00\x99\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\x9c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x91\xff\x98\xff\x97\xff\x95\xff\x93\xff\x82\xff\x7f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x8d\xff\x9a\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\xa4\xff\x00\x00\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\xa3\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\x90\xff\x00\x00\x00\x00\xb6\xff\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff"# +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\x03\x00\x27\x00\x28\x00\x29\x00\x07\x00\x2b\x00\x10\x00\x30\x00\x43\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\x09\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\x37\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\x43\x00\x3b\x00\x01\x00\x16\x00\x2f\x00\x3f\x00\x05\x00\x41\x00\x10\x00\x43\x00\x44\x00\x13\x00\x42\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\x2d\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\x45\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\x10\x00\x2f\x00\x01\x00\x1e\x00\x01\x00\x43\x00\x05\x00\x06\x00\x05\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x0c\x00\x10\x00\x02\x00\x10\x00\x04\x00\x10\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\x45\x00\x2b\x00\x3d\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\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x14\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x3b\x00\x42\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x43\x00\x44\x00\x1e\x00\x05\x00\x06\x00\x09\x00\x0a\x00\x43\x00\x24\x00\x25\x00\x45\x00\x27\x00\x28\x00\x29\x00\x01\x00\x02\x00\x37\x00\x04\x00\x05\x00\x09\x00\x0a\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x09\x00\x0a\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x43\x00\x43\x00\x44\x00\x1e\x00\x45\x00\x1d\x00\x1b\x00\x01\x00\x1b\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x20\x00\x2b\x00\x1d\x00\x1b\x00\x0d\x00\x3a\x00\x0f\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x1b\x00\x39\x00\x13\x00\x43\x00\x14\x00\x1b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x12\x00\x43\x00\x44\x00\x1e\x00\x10\x00\x10\x00\x1b\x00\x1b\x00\x10\x00\x24\x00\x25\x00\x15\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x1b\x00\x01\x00\x15\x00\x1b\x00\x1b\x00\x05\x00\x1b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x1b\x00\x0d\x00\x39\x00\x0f\x00\x10\x00\x14\x00\x11\x00\x2f\x00\x2f\x00\x1b\x00\x01\x00\x2f\x00\x43\x00\x44\x00\x05\x00\x3e\x00\x2e\x00\x39\x00\x39\x00\x3b\x00\x3b\x00\x39\x00\x0d\x00\x3b\x00\x0f\x00\x10\x00\x1b\x00\x43\x00\x43\x00\x01\x00\x02\x00\x43\x00\x04\x00\x05\x00\x11\x00\x08\x00\x3c\x00\x42\x00\x1b\x00\x1b\x00\x1b\x00\x11\x00\x11\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\x11\x00\x3e\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\x23\x00\x04\x00\x05\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x1c\x00\x01\x00\x02\x00\x14\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\x14\x00\x04\x00\x05\x00\x11\x00\x1c\x00\x43\x00\x1c\x00\x1c\x00\x3e\x00\x01\x00\x02\x00\x14\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\x14\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\x3c\x00\x3e\x00\x14\x00\x05\x00\x14\x00\x01\x00\x02\x00\x3e\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\x14\x00\x04\x00\x05\x00\x01\x00\x11\x00\x07\x00\x0b\x00\x05\x00\x08\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\x09\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x08\x00\x04\x00\x05\x00\x01\x00\x0b\x00\x0b\x00\x0b\x00\x05\x00\xff\xff\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\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\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\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\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\x01\x00\x14\x00\x1a\x00\xff\xff\x05\x00\x01\x00\x14\x00\x1a\x00\xff\xff\x05\x00\xff\xff\xff\xff\x0d\x00\x14\x00\x0f\x00\x10\x00\xff\xff\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\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\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"# +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\x80\x00\x35\x00\x36\x00\x37\x00\x81\x00\x9c\x00\x63\x00\xb2\x00\x45\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\x7c\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\x7a\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\x45\x00\x42\x00\x1c\x00\xb4\x00\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\x1c\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\xb3\x00\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\xff\xff\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\xaa\x00\x89\x00\x5e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xa9\x00\x5d\x00\x1c\x00\x31\x00\x1c\x00\x45\x00\x7c\x00\x91\x00\x64\x00\x32\x00\x33\x00\x5e\x00\x35\x00\x36\x00\x37\x00\x1d\x01\x5c\x00\x1d\x00\xa4\x00\x7f\x00\xa3\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\xff\xff\x9c\x00\x9d\x00\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\x8a\x00\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x50\x00\x86\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x42\x00\x1c\x00\x9a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x45\x00\x46\x00\x31\x00\x7c\x00\xd9\x00\x68\x00\x82\x00\x45\x00\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x1c\x00\x1d\x00\x7a\x00\x1e\x00\x1f\x00\x68\x00\xda\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x68\x00\xe8\x00\xaa\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x45\x00\x45\x00\x46\x00\x31\x00\xff\xff\xe5\x00\xe4\x00\x1c\x00\xe3\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\xe2\x00\x9c\x00\xe1\x00\xdd\x00\x58\x00\x68\x00\x59\x00\xab\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\xdc\x00\x41\x00\x2c\x00\x45\x00\xd8\x00\xd9\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x9f\x00\x45\x00\x46\x00\x31\x00\x5c\x00\x5c\x00\xd7\x00\xcc\x00\x5c\x00\x32\x00\x33\x00\xc5\x00\x35\x00\x36\x00\x37\x00\xef\x00\xed\x00\x1c\x00\xc3\x00\xeb\x00\xc2\x00\x57\x00\xc1\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x02\x01\x58\x00\x41\x00\x59\x00\x99\x00\x00\x01\xff\x00\x5d\x00\x5d\x00\xfa\x00\x1c\x00\x5d\x00\x45\x00\x46\x00\x57\x00\xf7\x00\xf6\x00\x5e\x00\x5e\x00\x5f\x00\x5f\x00\x5e\x00\x58\x00\x5f\x00\x59\x00\xed\x00\xf9\x00\x45\x00\x45\x00\x1c\x00\x1d\x00\x45\x00\x1e\x00\x1f\x00\xf2\x00\x1d\x01\x16\x01\x1c\x00\x1c\x01\x1a\x01\x18\x01\x15\x01\x14\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\x12\x01\x0c\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\x08\x01\x1e\x00\x1f\x00\x07\x01\x06\x01\x2b\x01\x28\x01\x26\x01\x23\x01\x1c\x00\x1d\x00\x2a\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\x29\x01\x1e\x00\x1f\x00\x25\x01\x21\x01\x45\x00\x37\x01\x35\x01\x33\x01\x1c\x00\x1d\x00\x32\x01\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\x31\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x2c\x01\x1e\x00\x1f\x00\x1c\x00\x2f\x01\x30\x01\x3e\x01\x57\x00\x3d\x01\x1c\x00\x1d\x00\x42\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\x44\x01\x43\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x46\x01\x1e\x00\x1f\x00\x1c\x00\x48\x01\x7a\x00\x66\x00\x57\x00\x78\x00\x1c\x00\x1d\x00\x88\x00\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\x77\x00\x87\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x84\x00\x1e\x00\x1f\x00\x1c\x00\xdf\x00\xde\x00\xdd\x00\x57\x00\x00\x00\x1c\x00\x1d\x00\xe7\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\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8f\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\x63\x00\xa4\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\x96\x00\x94\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\xcd\x00\xcc\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\xca\x00\xc3\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\x1c\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xf3\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\x1c\x00\x21\x00\x47\x00\x00\x00\x57\x00\x1c\x00\xa6\x00\xd2\x00\x00\x00\x57\x00\x00\x00\x00\x00\x58\x00\x9a\x00\x59\x00\xeb\x00\x00\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\x1c\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +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), @@ -1081,8 +1081,15 @@ happyReduction_90 (happy_x_10 `HappyStk` ((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 = happyReduce 5# 20# happyReduction_91 -happyReduction_91 (happy_x_5 `HappyStk` +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` @@ -1095,8 +1102,8 @@ happyReduction_91 (happy_x_5 `HappyStk` ((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_92 = happyReduce 5# 20# happyReduction_92 -happyReduction_92 (happy_x_5 `HappyStk` +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` @@ -1109,22 +1116,22 @@ happyReduction_92 (happy_x_5 `HappyStk` ((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_93 = happySpecReduce_1 20# happyReduction_93 -happyReduction_93 happy_x_1 +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_94 = happySpecReduce_1 20# happyReduction_94 -happyReduction_94 happy_x_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_95 = happySpecReduce_3 20# happyReduction_95 -happyReduction_95 happy_x_3 +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 -> @@ -1133,8 +1140,8 @@ happyReduction_95 happy_x_3 ((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_96 = happyReduce 5# 20# happyReduction_96 -happyReduction_96 (happy_x_5 `HappyStk` +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` @@ -1147,8 +1154,8 @@ happyReduction_96 (happy_x_5 `HappyStk` ((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_97 = happyReduce 14# 20# happyReduction_97 -happyReduction_97 (happy_x_14 `HappyStk` +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` @@ -1174,22 +1181,22 @@ happyReduction_97 (happy_x_14 `HappyStk` ((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_98 = happySpecReduce_1 20# happyReduction_98 -happyReduction_98 happy_x_1 +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_99 = happySpecReduce_1 20# happyReduction_99 -happyReduction_99 happy_x_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_100 = happySpecReduce_3 20# happyReduction_100 -happyReduction_100 happy_x_3 +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 -> @@ -1198,8 +1205,8 @@ happyReduction_100 happy_x_3 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2)) )}} -happyReduce_101 = happySpecReduce_3 21# happyReduction_101 -happyReduction_101 happy_x_3 +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) -> @@ -1208,15 +1215,15 @@ happyReduction_101 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_102 = happySpecReduce_1 21# happyReduction_102 -happyReduction_102 happy_x_1 +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_103 = happySpecReduce_3 22# happyReduction_103 -happyReduction_103 happy_x_3 +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) -> @@ -1225,8 +1232,8 @@ happyReduction_103 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_104 = happySpecReduce_3 22# happyReduction_104 -happyReduction_104 happy_x_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) -> @@ -1235,15 +1242,15 @@ happyReduction_104 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_105 = happySpecReduce_1 22# happyReduction_105 -happyReduction_105 happy_x_1 +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_106 = happySpecReduce_3 23# happyReduction_106 -happyReduction_106 happy_x_3 +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) -> @@ -1252,15 +1259,15 @@ happyReduction_106 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_107 = happySpecReduce_1 23# happyReduction_107 -happyReduction_107 happy_x_1 +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_108 = happySpecReduce_3 24# happyReduction_108 -happyReduction_108 happy_x_3 +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) -> @@ -1269,15 +1276,15 @@ happyReduction_108 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_109 = happySpecReduce_1 24# happyReduction_109 -happyReduction_109 happy_x_1 +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_110 = happySpecReduce_3 25# happyReduction_110 -happyReduction_110 happy_x_3 +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) -> @@ -1286,8 +1293,8 @@ happyReduction_110 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_111 = happyReduce 8# 25# happyReduction_111 -happyReduction_111 (happy_x_8 `HappyStk` +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` @@ -1304,13 +1311,6 @@ happyReduction_111 (happy_x_8 `HappyStk` ((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_112 = happySpecReduce_1 25# happyReduction_112 -happyReduction_112 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn54 - ((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_113 = happyReduce 5# 25# happyReduction_113 happyReduction_113 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` diff --git a/rzk/src/Language/Rzk/Syntax/Par.info b/rzk/src/Language/Rzk/Syntax/Par.info index e30272c7f..e79fe38ff 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.info +++ b/rzk/src/Language/Rzk/Syntax/Par.info @@ -97,28 +97,28 @@ Grammar Term7 -> 'recBOT' (88) Term7 -> 'recOR' '(' ListRestriction ')' (89) Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (90) - Term7 -> '<' ParamDecl '->' Term '>' (91) - Term7 -> '(' Term ',' Term ')' (92) - Term7 -> 'unit' (93) - Term7 -> 'refl' (94) - Term7 -> 'refl_{' Term '}' (95) - Term7 -> 'refl_{' Term ':' Term '}' (96) - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (97) - Term7 -> HoleIdent (98) - Term7 -> VarIdent (99) - Term7 -> '(' Term ')' (100) - Term5 -> Term5 '*' Term6 (101) - Term5 -> Term6 (102) - Term4 -> Term5 '===' Term5 (103) - Term4 -> Term5 '<=' Term5 (104) - Term4 -> Term5 (105) - Term3 -> Term4 '/\\' Term3 (106) - Term3 -> Term4 (107) - Term2 -> Term3 '\\/' Term2 (108) - Term2 -> Term3 (109) - Term1 -> ParamDecl '->' Term1 (110) - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (111) - Term1 -> 'Unit' (112) + Term7 -> 'Unit' (91) + Term7 -> '<' ParamDecl '->' Term '>' (92) + Term7 -> '(' Term ',' Term ')' (93) + Term7 -> 'unit' (94) + Term7 -> 'refl' (95) + Term7 -> 'refl_{' Term '}' (96) + Term7 -> 'refl_{' Term ':' Term '}' (97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (98) + Term7 -> HoleIdent (99) + Term7 -> VarIdent (100) + Term7 -> '(' Term ')' (101) + Term5 -> Term5 '*' Term6 (102) + Term5 -> Term6 (103) + Term4 -> Term5 '===' Term5 (104) + Term4 -> Term5 '<=' Term5 (105) + Term4 -> Term5 (106) + Term3 -> Term4 '/\\' Term3 (107) + Term3 -> Term4 (108) + Term2 -> Term3 '\\/' Term2 (109) + Term2 -> Term3 (110) + Term1 -> ParamDecl '->' Term1 (111) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (112) Term1 -> Term2 '=_{' Term '}' Term2 (113) Term1 -> Term2 '=' Term2 (114) Term1 -> '\\' ListParam '->' Term1 (115) @@ -257,12 +257,12 @@ Non-terminals ParamDecl rules 69, 70, 71, 72, 73, 74 Restriction rule 75 ListRestriction rules 76, 77 - Term7 rules 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 - Term5 rules 101, 102 - Term4 rules 103, 104, 105 - Term3 rules 106, 107 - Term2 rules 108, 109 - Term1 rules 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 + Term7 rules 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101 + Term5 rules 102, 103 + Term4 rules 104, 105, 106 + Term3 rules 107, 108 + Term2 rules 109, 110 + Term1 rules 111, 112, 113, 114, 115, 116, 117, 118, 119 Term6 rules 120, 121, 122, 123, 124 Term rules 125, 126 ListTerm rules 127, 128 @@ -459,6 +459,7 @@ State 14 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -592,6 +593,7 @@ State 17 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 'recOR' shift, and enter state 60 @@ -623,6 +625,7 @@ State 18 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -658,6 +661,7 @@ State 19 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -694,6 +698,7 @@ State 20 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -731,6 +736,7 @@ State 21 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -815,6 +821,7 @@ State 23 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -973,6 +980,7 @@ State 28 'TOP' reduce using rule 31 'TOPE' reduce using rule 31 'U' reduce using rule 31 + 'Unit' reduce using rule 31 '[' reduce using rule 31 '\\/' reduce using rule 31 ']' reduce using rule 31 @@ -1024,6 +1032,7 @@ State 29 'TOP' reduce using rule 30 'TOPE' reduce using rule 30 'U' reduce using rule 30 + 'Unit' reduce using rule 30 '[' reduce using rule 30 '\\/' reduce using rule 30 ']' reduce using rule 30 @@ -1045,55 +1054,7 @@ State 29 State 30 - Term7 -> HoleIdent . (rule 98) - - '(' reduce using rule 98 - ')' reduce using rule 98 - '*' reduce using rule 98 - '*_1' reduce using rule 98 - ',' reduce using rule 98 - '->' reduce using rule 98 - '/\\' reduce using rule 98 - '0_2' reduce using rule 98 - '1' reduce using rule 98 - '1_2' reduce using rule 98 - '2' reduce using rule 98 - ':' reduce using rule 98 - ':=' reduce using rule 98 - ';' reduce using rule 98 - '<' reduce using rule 98 - '<=' reduce using rule 98 - '=' reduce using rule 98 - '===' reduce using rule 98 - '=_{' reduce using rule 98 - '>' reduce using rule 98 - 'BOT' reduce using rule 98 - 'CUBE' reduce using rule 98 - 'TOP' reduce using rule 98 - 'TOPE' reduce using rule 98 - 'U' reduce using rule 98 - '[' reduce using rule 98 - '\\/' reduce using rule 98 - ']' reduce using rule 98 - 'as' reduce using rule 98 - 'idJ' reduce using rule 98 - 'recBOT' reduce using rule 98 - 'recOR' reduce using rule 98 - 'refl' reduce using rule 98 - 'refl_{' reduce using rule 98 - 'unit' reduce using rule 98 - '|' reduce using rule 98 - '|->' reduce using rule 98 - '}' reduce using rule 98 - '→' reduce using rule 98 - L_VarIdentTokenreduce using rule 98 - L_HoleIdentTokenreduce using rule 98 - %eof reduce using rule 98 - - -State 31 - - Term7 -> VarIdent . (rule 99) + Term7 -> HoleIdent . (rule 99) '(' reduce using rule 99 ')' reduce using rule 99 @@ -1120,6 +1081,7 @@ State 31 'TOP' reduce using rule 99 'TOPE' reduce using rule 99 'U' reduce using rule 99 + 'Unit' reduce using rule 99 '[' reduce using rule 99 '\\/' reduce using rule 99 ']' reduce using rule 99 @@ -1139,9 +1101,58 @@ State 31 %eof reduce using rule 99 +State 31 + + Term7 -> VarIdent . (rule 100) + + '(' reduce using rule 100 + ')' reduce using rule 100 + '*' reduce using rule 100 + '*_1' reduce using rule 100 + ',' reduce using rule 100 + '->' reduce using rule 100 + '/\\' reduce using rule 100 + '0_2' reduce using rule 100 + '1' reduce using rule 100 + '1_2' reduce using rule 100 + '2' reduce using rule 100 + ':' reduce using rule 100 + ':=' reduce using rule 100 + ';' reduce using rule 100 + '<' reduce using rule 100 + '<=' reduce using rule 100 + '=' reduce using rule 100 + '===' reduce using rule 100 + '=_{' reduce using rule 100 + '>' reduce using rule 100 + 'BOT' reduce using rule 100 + 'CUBE' reduce using rule 100 + 'TOP' reduce using rule 100 + 'TOPE' reduce using rule 100 + 'U' reduce using rule 100 + 'Unit' reduce using rule 100 + '[' reduce using rule 100 + '\\/' reduce using rule 100 + ']' reduce using rule 100 + 'as' reduce using rule 100 + 'idJ' reduce using rule 100 + 'recBOT' reduce using rule 100 + 'recOR' reduce using rule 100 + 'refl' reduce using rule 100 + 'refl_{' reduce using rule 100 + 'unit' reduce using rule 100 + '|' reduce using rule 100 + '|->' reduce using rule 100 + '}' reduce using rule 100 + '→' reduce using rule 100 + L_VarIdentTokenreduce using rule 100 + L_HoleIdentTokenreduce using rule 100 + %eof reduce using rule 100 + + State 32 - Term1 -> ParamDecl . '->' Term1 (rule 110) + Term1 -> ParamDecl . '->' Term1 (rule 111) Term1 -> ParamDecl . '→' Term1 (rule 117) '->' shift, and enter state 182 @@ -1177,6 +1188,7 @@ State 33 'TOP' reduce using rule 124 'TOPE' reduce using rule 124 'U' reduce using rule 124 + 'Unit' reduce using rule 124 '[' reduce using rule 124 '\\/' reduce using rule 124 ']' reduce using rule 124 @@ -1198,75 +1210,75 @@ State 33 State 34 - Term5 -> Term5 . '*' Term6 (rule 101) - Term4 -> Term5 . '===' Term5 (rule 103) - Term4 -> Term5 . '<=' Term5 (rule 104) - Term4 -> Term5 . (rule 105) + Term5 -> Term5 . '*' Term6 (rule 102) + Term4 -> Term5 . '===' Term5 (rule 104) + Term4 -> Term5 . '<=' Term5 (rule 105) + Term4 -> Term5 . (rule 106) - ')' reduce using rule 105 + ')' reduce using rule 106 '*' shift, and enter state 158 - ',' reduce using rule 105 - '/\\' reduce using rule 105 - ':' reduce using rule 105 - ':=' reduce using rule 105 - ';' reduce using rule 105 + ',' reduce using rule 106 + '/\\' reduce using rule 106 + ':' reduce using rule 106 + ':=' reduce using rule 106 + ';' reduce using rule 106 '<=' shift, and enter state 180 - '=' reduce using rule 105 + '=' reduce using rule 106 '===' shift, and enter state 181 - '=_{' reduce using rule 105 - '>' reduce using rule 105 - '\\/' reduce using rule 105 - ']' reduce using rule 105 - 'as' reduce using rule 105 - '|' reduce using rule 105 - '|->' reduce using rule 105 - '}' reduce using rule 105 - %eof reduce using rule 105 + '=_{' reduce using rule 106 + '>' reduce using rule 106 + '\\/' reduce using rule 106 + ']' reduce using rule 106 + 'as' reduce using rule 106 + '|' reduce using rule 106 + '|->' reduce using rule 106 + '}' reduce using rule 106 + %eof reduce using rule 106 State 35 - Term3 -> Term4 . '/\\' Term3 (rule 106) - Term3 -> Term4 . (rule 107) + Term3 -> Term4 . '/\\' Term3 (rule 107) + Term3 -> Term4 . (rule 108) - ')' reduce using rule 107 - ',' reduce using rule 107 + ')' reduce using rule 108 + ',' reduce using rule 108 '/\\' shift, and enter state 179 - ':' reduce using rule 107 - ':=' reduce using rule 107 - ';' reduce using rule 107 - '=' reduce using rule 107 - '=_{' reduce using rule 107 - '>' reduce using rule 107 - '\\/' reduce using rule 107 - ']' reduce using rule 107 - 'as' reduce using rule 107 - '|' reduce using rule 107 - '|->' reduce using rule 107 - '}' reduce using rule 107 - %eof reduce using rule 107 + ':' reduce using rule 108 + ':=' reduce using rule 108 + ';' reduce using rule 108 + '=' reduce using rule 108 + '=_{' reduce using rule 108 + '>' reduce using rule 108 + '\\/' reduce using rule 108 + ']' reduce using rule 108 + 'as' reduce using rule 108 + '|' reduce using rule 108 + '|->' reduce using rule 108 + '}' reduce using rule 108 + %eof reduce using rule 108 State 36 - Term2 -> Term3 . '\\/' Term2 (rule 108) - Term2 -> Term3 . (rule 109) + Term2 -> Term3 . '\\/' Term2 (rule 109) + Term2 -> Term3 . (rule 110) - ')' reduce using rule 109 - ',' reduce using rule 109 - ':' reduce using rule 109 - ':=' reduce using rule 109 - ';' reduce using rule 109 - '=' reduce using rule 109 - '=_{' reduce using rule 109 - '>' reduce using rule 109 + ')' reduce using rule 110 + ',' reduce using rule 110 + ':' reduce using rule 110 + ':=' reduce using rule 110 + ';' reduce using rule 110 + '=' reduce using rule 110 + '=_{' reduce using rule 110 + '>' reduce using rule 110 '\\/' shift, and enter state 178 - ']' reduce using rule 109 - 'as' reduce using rule 109 - '|' reduce using rule 109 - '|->' reduce using rule 109 - '}' reduce using rule 109 - %eof reduce using rule 109 + ']' reduce using rule 110 + 'as' reduce using rule 110 + '|' reduce using rule 110 + '|->' reduce using rule 110 + '}' reduce using rule 110 + %eof reduce using rule 110 State 37 @@ -1312,52 +1324,53 @@ State 38 State 39 ParamDecl -> Term6 . (rule 69) - Term5 -> Term6 . (rule 102) + Term5 -> Term6 . (rule 103) Term6 -> Term6 . '[' ListRestriction ']' (rule 120) Term6 -> Term6 . Term7 (rule 121) '(' shift, and enter state 72 - ')' reduce using rule 102 - '*' reduce using rule 102 + ')' reduce using rule 103 + '*' reduce using rule 103 '*_1' shift, and enter state 43 - ',' reduce using rule 102 + ',' reduce using rule 103 '->' reduce using rule 69 - '/\\' reduce using rule 102 + '/\\' reduce using rule 103 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 '2' shift, and enter state 47 - ':' reduce using rule 102 - ':=' reduce using rule 102 - ';' reduce using rule 102 + ':' reduce using rule 103 + ':=' reduce using rule 103 + ';' reduce using rule 103 '<' shift, and enter state 48 - '<=' reduce using rule 102 - '=' reduce using rule 102 - '===' reduce using rule 102 - '=_{' reduce using rule 102 - '>' reduce using rule 102 + '<=' reduce using rule 103 + '=' reduce using rule 103 + '===' reduce using rule 103 + '=_{' reduce using rule 103 + '>' reduce using rule 103 'BOT' shift, and enter state 49 'CUBE' shift, and enter state 50 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 '[' shift, and enter state 155 - '\\/' reduce using rule 102 - ']' reduce using rule 102 - 'as' reduce using rule 102 + '\\/' reduce using rule 103 + ']' reduce using rule 103 + 'as' reduce using rule 103 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 'recOR' shift, and enter state 60 'refl' shift, and enter state 61 'refl_{' shift, and enter state 62 'unit' shift, and enter state 64 - '|' reduce using rule 102 - '|->' reduce using rule 102 - '}' reduce using rule 102 + '|' reduce using rule 103 + '|->' reduce using rule 103 + '}' reduce using rule 103 '→' reduce using rule 69 L_VarIdentTokenshift, and enter state 68 L_HoleIdentTokenshift, and enter state 69 - %eof reduce using rule 102 + %eof reduce using rule 103 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -1385,8 +1398,8 @@ State 42 ParamDecl -> '(' . '_' ':' Term ')' (rule 70) ParamDecl -> '(' . VarIdent ':' Term ')' (rule 72) - Term7 -> '(' . Term ',' Term ')' (rule 92) - Term7 -> '(' . Term ')' (rule 100) + Term7 -> '(' . Term ',' Term ')' (rule 93) + Term7 -> '(' . Term ')' (rule 101) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -1461,6 +1474,7 @@ State 43 'TOP' reduce using rule 82 'TOPE' reduce using rule 82 'U' reduce using rule 82 + 'Unit' reduce using rule 82 '[' reduce using rule 82 '\\/' reduce using rule 82 ']' reduce using rule 82 @@ -1509,6 +1523,7 @@ State 44 'TOP' reduce using rule 84 'TOPE' reduce using rule 84 'U' reduce using rule 84 + 'Unit' reduce using rule 84 '[' reduce using rule 84 '\\/' reduce using rule 84 ']' reduce using rule 84 @@ -1557,6 +1572,7 @@ State 45 'TOP' reduce using rule 81 'TOPE' reduce using rule 81 'U' reduce using rule 81 + 'Unit' reduce using rule 81 '[' reduce using rule 81 '\\/' reduce using rule 81 ']' reduce using rule 81 @@ -1605,6 +1621,7 @@ State 46 'TOP' reduce using rule 85 'TOPE' reduce using rule 85 'U' reduce using rule 85 + 'Unit' reduce using rule 85 '[' reduce using rule 85 '\\/' reduce using rule 85 ']' reduce using rule 85 @@ -1653,6 +1670,7 @@ State 47 'TOP' reduce using rule 83 'TOPE' reduce using rule 83 'U' reduce using rule 83 + 'Unit' reduce using rule 83 '[' reduce using rule 83 '\\/' reduce using rule 83 ']' reduce using rule 83 @@ -1674,7 +1692,7 @@ State 47 State 48 - Term7 -> '<' . ParamDecl '->' Term '>' (rule 91) + Term7 -> '<' . ParamDecl '->' Term '>' (rule 92) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -1688,6 +1706,7 @@ State 48 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -1737,6 +1756,7 @@ State 49 'TOP' reduce using rule 87 'TOPE' reduce using rule 87 'U' reduce using rule 87 + 'Unit' reduce using rule 87 '[' reduce using rule 87 '\\/' reduce using rule 87 ']' reduce using rule 87 @@ -1785,6 +1805,7 @@ State 50 'TOP' reduce using rule 79 'TOPE' reduce using rule 79 'U' reduce using rule 79 + 'Unit' reduce using rule 79 '[' reduce using rule 79 '\\/' reduce using rule 79 ']' reduce using rule 79 @@ -1806,7 +1827,7 @@ State 50 State 51 - Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 111) + Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 112) '(' shift, and enter state 172 @@ -1840,6 +1861,7 @@ State 52 'TOP' reduce using rule 86 'TOPE' reduce using rule 86 'U' reduce using rule 86 + 'Unit' reduce using rule 86 '[' reduce using rule 86 '\\/' reduce using rule 86 ']' reduce using rule 86 @@ -1888,6 +1910,7 @@ State 53 'TOP' reduce using rule 80 'TOPE' reduce using rule 80 'U' reduce using rule 80 + 'Unit' reduce using rule 80 '[' reduce using rule 80 '\\/' reduce using rule 80 ']' reduce using rule 80 @@ -1936,6 +1959,7 @@ State 54 'TOP' reduce using rule 78 'TOPE' reduce using rule 78 'U' reduce using rule 78 + 'Unit' reduce using rule 78 '[' reduce using rule 78 '\\/' reduce using rule 78 ']' reduce using rule 78 @@ -1957,40 +1981,72 @@ State 54 State 55 - Term1 -> 'Unit' . (rule 112) - - ')' reduce using rule 112 - ',' reduce using rule 112 - ':' reduce using rule 112 - ':=' reduce using rule 112 - ';' reduce using rule 112 - '>' reduce using rule 112 - ']' reduce using rule 112 - '|' reduce using rule 112 - '|->' reduce using rule 112 - '}' reduce using rule 112 - %eof reduce using rule 112 - - -State 56 - - Term1 -> '\\' . ListParam '->' Term1 (rule 115) - - '(' shift, and enter state 91 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 - - VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 171 - -State 57 - - Term6 -> 'first' . Term7 (rule 122) + Term7 -> 'Unit' . (rule 91) + + '(' reduce using rule 91 + ')' reduce using rule 91 + '*' reduce using rule 91 + '*_1' reduce using rule 91 + ',' reduce using rule 91 + '->' reduce using rule 91 + '/\\' reduce using rule 91 + '0_2' reduce using rule 91 + '1' reduce using rule 91 + '1_2' reduce using rule 91 + '2' reduce using rule 91 + ':' reduce using rule 91 + ':=' reduce using rule 91 + ';' reduce using rule 91 + '<' reduce using rule 91 + '<=' reduce using rule 91 + '=' reduce using rule 91 + '===' reduce using rule 91 + '=_{' reduce using rule 91 + '>' reduce using rule 91 + 'BOT' reduce using rule 91 + 'CUBE' reduce using rule 91 + 'TOP' reduce using rule 91 + 'TOPE' reduce using rule 91 + 'U' reduce using rule 91 + 'Unit' reduce using rule 91 + '[' reduce using rule 91 + '\\/' reduce using rule 91 + ']' reduce using rule 91 + 'as' reduce using rule 91 + 'idJ' reduce using rule 91 + 'recBOT' reduce using rule 91 + 'recOR' reduce using rule 91 + 'refl' reduce using rule 91 + 'refl_{' reduce using rule 91 + 'unit' reduce using rule 91 + '|' reduce using rule 91 + '|->' reduce using rule 91 + '}' reduce using rule 91 + '→' reduce using rule 91 + L_VarIdentTokenreduce using rule 91 + L_HoleIdentTokenreduce using rule 91 + %eof reduce using rule 91 + + +State 56 + + Term1 -> '\\' . ListParam '->' Term1 (rule 115) + + '(' shift, and enter state 91 + '_' shift, and enter state 92 + 'unit' shift, and enter state 93 + '{' shift, and enter state 94 + L_VarIdentTokenshift, and enter state 68 + + VarIdentToken goto state 28 + VarIdent goto state 87 + Pattern goto state 88 + Param goto state 89 + ListParam goto state 171 + +State 57 + + Term6 -> 'first' . Term7 (rule 122) '(' shift, and enter state 72 '*_1' shift, and enter state 43 @@ -2004,6 +2060,7 @@ State 57 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 'recOR' shift, and enter state 60 @@ -2021,7 +2078,7 @@ State 57 State 58 - Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) '(' shift, and enter state 169 @@ -2055,6 +2112,7 @@ State 59 'TOP' reduce using rule 88 'TOPE' reduce using rule 88 'U' reduce using rule 88 + 'Unit' reduce using rule 88 '[' reduce using rule 88 '\\/' reduce using rule 88 ']' reduce using rule 88 @@ -2084,56 +2142,57 @@ State 60 State 61 - Term7 -> 'refl' . (rule 94) + Term7 -> 'refl' . (rule 95) - '(' reduce using rule 94 - ')' reduce using rule 94 - '*' reduce using rule 94 - '*_1' reduce using rule 94 - ',' reduce using rule 94 - '->' reduce using rule 94 - '/\\' reduce using rule 94 - '0_2' reduce using rule 94 - '1' reduce using rule 94 - '1_2' reduce using rule 94 - '2' reduce using rule 94 - ':' reduce using rule 94 - ':=' reduce using rule 94 - ';' reduce using rule 94 - '<' reduce using rule 94 - '<=' reduce using rule 94 - '=' reduce using rule 94 - '===' reduce using rule 94 - '=_{' reduce using rule 94 - '>' reduce using rule 94 - 'BOT' reduce using rule 94 - 'CUBE' reduce using rule 94 - 'TOP' reduce using rule 94 - 'TOPE' reduce using rule 94 - 'U' reduce using rule 94 - '[' reduce using rule 94 - '\\/' reduce using rule 94 - ']' reduce using rule 94 - 'as' reduce using rule 94 - 'idJ' reduce using rule 94 - 'recBOT' reduce using rule 94 - 'recOR' reduce using rule 94 - 'refl' reduce using rule 94 - 'refl_{' reduce using rule 94 - 'unit' reduce using rule 94 - '|' reduce using rule 94 - '|->' reduce using rule 94 - '}' reduce using rule 94 - '→' reduce using rule 94 - L_VarIdentTokenreduce using rule 94 - L_HoleIdentTokenreduce using rule 94 - %eof reduce using rule 94 + '(' reduce using rule 95 + ')' reduce using rule 95 + '*' reduce using rule 95 + '*_1' reduce using rule 95 + ',' reduce using rule 95 + '->' reduce using rule 95 + '/\\' reduce using rule 95 + '0_2' reduce using rule 95 + '1' reduce using rule 95 + '1_2' reduce using rule 95 + '2' reduce using rule 95 + ':' reduce using rule 95 + ':=' reduce using rule 95 + ';' reduce using rule 95 + '<' reduce using rule 95 + '<=' reduce using rule 95 + '=' reduce using rule 95 + '===' reduce using rule 95 + '=_{' reduce using rule 95 + '>' reduce using rule 95 + 'BOT' reduce using rule 95 + 'CUBE' reduce using rule 95 + 'TOP' reduce using rule 95 + 'TOPE' reduce using rule 95 + 'U' reduce using rule 95 + 'Unit' reduce using rule 95 + '[' reduce using rule 95 + '\\/' reduce using rule 95 + ']' reduce using rule 95 + 'as' reduce using rule 95 + 'idJ' reduce using rule 95 + 'recBOT' reduce using rule 95 + 'recOR' reduce using rule 95 + 'refl' reduce using rule 95 + 'refl_{' reduce using rule 95 + 'unit' reduce using rule 95 + '|' reduce using rule 95 + '|->' reduce using rule 95 + '}' reduce using rule 95 + '→' reduce using rule 95 + L_VarIdentTokenreduce using rule 95 + L_HoleIdentTokenreduce using rule 95 + %eof reduce using rule 95 State 62 - Term7 -> 'refl_{' . Term '}' (rule 95) - Term7 -> 'refl_{' . Term ':' Term '}' (rule 96) + Term7 -> 'refl_{' . Term '}' (rule 96) + Term7 -> 'refl_{' . Term ':' Term '}' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -2194,6 +2253,7 @@ State 63 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 'recOR' shift, and enter state 60 @@ -2211,50 +2271,51 @@ State 63 State 64 - Term7 -> 'unit' . (rule 93) + Term7 -> 'unit' . (rule 94) - '(' reduce using rule 93 - ')' reduce using rule 93 - '*' reduce using rule 93 - '*_1' reduce using rule 93 - ',' reduce using rule 93 - '->' reduce using rule 93 - '/\\' reduce using rule 93 - '0_2' reduce using rule 93 - '1' reduce using rule 93 - '1_2' reduce using rule 93 - '2' reduce using rule 93 - ':' reduce using rule 93 - ':=' reduce using rule 93 - ';' reduce using rule 93 - '<' reduce using rule 93 - '<=' reduce using rule 93 - '=' reduce using rule 93 - '===' reduce using rule 93 - '=_{' reduce using rule 93 - '>' reduce using rule 93 - 'BOT' reduce using rule 93 - 'CUBE' reduce using rule 93 - 'TOP' reduce using rule 93 - 'TOPE' reduce using rule 93 - 'U' reduce using rule 93 - '[' reduce using rule 93 - '\\/' reduce using rule 93 - ']' reduce using rule 93 - 'as' reduce using rule 93 - 'idJ' reduce using rule 93 - 'recBOT' reduce using rule 93 - 'recOR' reduce using rule 93 - 'refl' reduce using rule 93 - 'refl_{' reduce using rule 93 - 'unit' reduce using rule 93 - '|' reduce using rule 93 - '|->' reduce using rule 93 - '}' reduce using rule 93 - '→' reduce using rule 93 - L_VarIdentTokenreduce using rule 93 - L_HoleIdentTokenreduce using rule 93 - %eof reduce using rule 93 + '(' reduce using rule 94 + ')' reduce using rule 94 + '*' reduce using rule 94 + '*_1' reduce using rule 94 + ',' reduce using rule 94 + '->' reduce using rule 94 + '/\\' reduce using rule 94 + '0_2' reduce using rule 94 + '1' reduce using rule 94 + '1_2' reduce using rule 94 + '2' reduce using rule 94 + ':' reduce using rule 94 + ':=' reduce using rule 94 + ';' reduce using rule 94 + '<' reduce using rule 94 + '<=' reduce using rule 94 + '=' reduce using rule 94 + '===' reduce using rule 94 + '=_{' reduce using rule 94 + '>' reduce using rule 94 + 'BOT' reduce using rule 94 + 'CUBE' reduce using rule 94 + 'TOP' reduce using rule 94 + 'TOPE' reduce using rule 94 + 'U' reduce using rule 94 + 'Unit' reduce using rule 94 + '[' reduce using rule 94 + '\\/' reduce using rule 94 + ']' reduce using rule 94 + 'as' reduce using rule 94 + 'idJ' reduce using rule 94 + 'recBOT' reduce using rule 94 + 'recOR' reduce using rule 94 + 'refl' reduce using rule 94 + 'refl_{' reduce using rule 94 + 'unit' reduce using rule 94 + '|' reduce using rule 94 + '|->' reduce using rule 94 + '}' reduce using rule 94 + '→' reduce using rule 94 + L_VarIdentTokenreduce using rule 94 + L_HoleIdentTokenreduce using rule 94 + %eof reduce using rule 94 State 65 @@ -2315,6 +2376,7 @@ State 68 'TOP' reduce using rule 27 'TOPE' reduce using rule 27 'U' reduce using rule 27 + 'Unit' reduce using rule 27 '[' reduce using rule 27 '\\/' reduce using rule 27 ']' reduce using rule 27 @@ -2366,6 +2428,7 @@ State 69 'TOP' reduce using rule 28 'TOPE' reduce using rule 28 'U' reduce using rule 28 + 'Unit' reduce using rule 28 '[' reduce using rule 28 '\\/' reduce using rule 28 ']' reduce using rule 28 @@ -2410,6 +2473,7 @@ State 71 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 '[' shift, and enter state 155 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -2429,8 +2493,8 @@ State 71 State 72 - Term7 -> '(' . Term ',' Term ')' (rule 92) - Term7 -> '(' . Term ')' (rule 100) + Term7 -> '(' . Term ',' Term ')' (rule 93) + Term7 -> '(' . Term ')' (rule 101) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -2512,50 +2576,51 @@ State 75 State 76 - Term5 -> Term6 . (rule 102) + Term5 -> Term6 . (rule 103) Term6 -> Term6 . '[' ListRestriction ']' (rule 120) Term6 -> Term6 . Term7 (rule 121) '(' shift, and enter state 72 - ')' reduce using rule 102 - '*' reduce using rule 102 + ')' reduce using rule 103 + '*' reduce using rule 103 '*_1' shift, and enter state 43 - ',' reduce using rule 102 - '/\\' reduce using rule 102 + ',' reduce using rule 103 + '/\\' reduce using rule 103 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 '2' shift, and enter state 47 - ':' reduce using rule 102 - ':=' reduce using rule 102 - ';' reduce using rule 102 + ':' reduce using rule 103 + ':=' reduce using rule 103 + ';' reduce using rule 103 '<' shift, and enter state 48 - '<=' reduce using rule 102 - '=' reduce using rule 102 - '===' reduce using rule 102 - '=_{' reduce using rule 102 - '>' reduce using rule 102 + '<=' reduce using rule 103 + '=' reduce using rule 103 + '===' reduce using rule 103 + '=_{' reduce using rule 103 + '>' reduce using rule 103 'BOT' shift, and enter state 49 'CUBE' shift, and enter state 50 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 '[' shift, and enter state 155 - '\\/' reduce using rule 102 - ']' reduce using rule 102 - 'as' reduce using rule 102 + '\\/' reduce using rule 103 + ']' reduce using rule 103 + 'as' reduce using rule 103 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 'recOR' shift, and enter state 60 'refl' shift, and enter state 61 'refl_{' shift, and enter state 62 'unit' shift, and enter state 64 - '|' reduce using rule 102 - '|->' reduce using rule 102 - '}' reduce using rule 102 + '|' reduce using rule 103 + '|->' reduce using rule 103 + '}' reduce using rule 103 L_VarIdentTokenshift, and enter state 68 L_HoleIdentTokenshift, and enter state 69 - %eof reduce using rule 102 + %eof reduce using rule 103 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2580,7 +2645,7 @@ State 78 State 79 %start_pTerm5_internal -> Term5 . (rule 18) - Term5 -> Term5 . '*' Term6 (rule 101) + Term5 -> Term5 . '*' Term6 (rule 102) '*' shift, and enter state 158 %eof accept @@ -2651,6 +2716,7 @@ State 86 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 '[' shift, and enter state 155 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -3514,6 +3580,7 @@ State 154 'TOP' reduce using rule 121 'TOPE' reduce using rule 121 'U' reduce using rule 121 + 'Unit' reduce using rule 121 '[' reduce using rule 121 '\\/' reduce using rule 121 ']' reduce using rule 121 @@ -3680,7 +3747,7 @@ State 157 State 158 - Term5 -> Term5 '*' . Term6 (rule 101) + Term5 -> Term5 '*' . Term6 (rule 102) '(' shift, and enter state 72 '*_1' shift, and enter state 43 @@ -3694,6 +3761,7 @@ State 158 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -3728,6 +3796,7 @@ State 159 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -3799,8 +3868,8 @@ State 160 State 161 - Term7 -> '(' Term . ',' Term ')' (rule 92) - Term7 -> '(' Term . ')' (rule 100) + Term7 -> '(' Term . ',' Term ')' (rule 93) + Term7 -> '(' Term . ')' (rule 101) ')' shift, and enter state 206 ',' shift, and enter state 207 @@ -3883,6 +3952,7 @@ State 166 'TOP' reduce using rule 123 'TOPE' reduce using rule 123 'U' reduce using rule 123 + 'Unit' reduce using rule 123 '[' reduce using rule 123 '\\/' reduce using rule 123 ']' reduce using rule 123 @@ -3904,8 +3974,8 @@ State 166 State 167 - Term7 -> 'refl_{' Term . '}' (rule 95) - Term7 -> 'refl_{' Term . ':' Term '}' (rule 96) + Term7 -> 'refl_{' Term . '}' (rule 96) + Term7 -> 'refl_{' Term . ':' Term '}' (rule 97) ':' shift, and enter state 200 '}' shift, and enter state 201 @@ -3963,7 +4033,7 @@ State 168 State 169 - Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4037,6 +4107,7 @@ State 170 'TOP' reduce using rule 122 'TOPE' reduce using rule 122 'U' reduce using rule 122 + 'Unit' reduce using rule 122 '[' reduce using rule 122 '\\/' reduce using rule 122 ']' reduce using rule 122 @@ -4065,7 +4136,7 @@ State 171 State 172 - Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 111) + Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 112) '(' shift, and enter state 98 '_' shift, and enter state 92 @@ -4078,7 +4149,7 @@ State 172 State 173 - Term7 -> '<' ParamDecl . '->' Term '>' (rule 91) + Term7 -> '<' ParamDecl . '->' Term '>' (rule 92) '->' shift, and enter state 194 @@ -4086,42 +4157,43 @@ State 173 State 174 ParamDecl -> '(' VarIdent . ':' Term ')' (rule 72) - Term7 -> VarIdent . (rule 99) + Term7 -> VarIdent . (rule 100) - '(' reduce using rule 99 - ')' reduce using rule 99 - '*' reduce using rule 99 - '*_1' reduce using rule 99 - ',' reduce using rule 99 - '->' reduce using rule 99 - '/\\' reduce using rule 99 - '0_2' reduce using rule 99 - '1' reduce using rule 99 - '1_2' reduce using rule 99 - '2' reduce using rule 99 + '(' reduce using rule 100 + ')' reduce using rule 100 + '*' reduce using rule 100 + '*_1' reduce using rule 100 + ',' reduce using rule 100 + '->' reduce using rule 100 + '/\\' reduce using rule 100 + '0_2' reduce using rule 100 + '1' reduce using rule 100 + '1_2' reduce using rule 100 + '2' reduce using rule 100 ':' shift, and enter state 193 - '<' reduce using rule 99 - '<=' reduce using rule 99 - '=' reduce using rule 99 - '===' reduce using rule 99 - '=_{' reduce using rule 99 - 'BOT' reduce using rule 99 - 'CUBE' reduce using rule 99 - 'TOP' reduce using rule 99 - 'TOPE' reduce using rule 99 - 'U' reduce using rule 99 - '[' reduce using rule 99 - '\\/' reduce using rule 99 - 'as' reduce using rule 99 - 'idJ' reduce using rule 99 - 'recBOT' reduce using rule 99 - 'recOR' reduce using rule 99 - 'refl' reduce using rule 99 - 'refl_{' reduce using rule 99 - 'unit' reduce using rule 99 - '→' reduce using rule 99 - L_VarIdentTokenreduce using rule 99 - L_HoleIdentTokenreduce using rule 99 + '<' reduce using rule 100 + '<=' reduce using rule 100 + '=' reduce using rule 100 + '===' reduce using rule 100 + '=_{' reduce using rule 100 + 'BOT' reduce using rule 100 + 'CUBE' reduce using rule 100 + 'TOP' reduce using rule 100 + 'TOPE' reduce using rule 100 + 'U' reduce using rule 100 + 'Unit' reduce using rule 100 + '[' reduce using rule 100 + '\\/' reduce using rule 100 + 'as' reduce using rule 100 + 'idJ' reduce using rule 100 + 'recBOT' reduce using rule 100 + 'recOR' reduce using rule 100 + 'refl' reduce using rule 100 + 'refl_{' reduce using rule 100 + 'unit' reduce using rule 100 + '→' reduce using rule 100 + L_VarIdentTokenreduce using rule 100 + L_HoleIdentTokenreduce using rule 100 State 175 @@ -4227,7 +4299,7 @@ State 177 State 178 - Term2 -> Term3 '\\/' . Term2 (rule 108) + Term2 -> Term3 '\\/' . Term2 (rule 109) '(' shift, and enter state 72 '*_1' shift, and enter state 43 @@ -4241,6 +4313,7 @@ State 178 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -4265,7 +4338,7 @@ State 178 State 179 - Term3 -> Term4 '/\\' . Term3 (rule 106) + Term3 -> Term4 '/\\' . Term3 (rule 107) '(' shift, and enter state 72 '*_1' shift, and enter state 43 @@ -4279,6 +4352,7 @@ State 179 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -4302,7 +4376,7 @@ State 179 State 180 - Term4 -> Term5 '<=' . Term5 (rule 104) + Term4 -> Term5 '<=' . Term5 (rule 105) '(' shift, and enter state 72 '*_1' shift, and enter state 43 @@ -4316,6 +4390,7 @@ State 180 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -4337,7 +4412,7 @@ State 180 State 181 - Term4 -> Term5 '===' . Term5 (rule 103) + Term4 -> Term5 '===' . Term5 (rule 104) '(' shift, and enter state 72 '*_1' shift, and enter state 43 @@ -4351,6 +4426,7 @@ State 181 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -4372,7 +4448,7 @@ State 181 State 182 - Term1 -> ParamDecl '->' . Term1 (rule 110) + Term1 -> ParamDecl '->' . Term1 (rule 111) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4481,49 +4557,25 @@ State 184 State 185 - Term1 -> ParamDecl '->' Term1 . (rule 110) + Term1 -> ParamDecl '->' Term1 . (rule 111) - ')' reduce using rule 110 - ',' reduce using rule 110 - ':' reduce using rule 110 - ':=' reduce using rule 110 - ';' reduce using rule 110 - '>' reduce using rule 110 - ']' reduce using rule 110 - '|' reduce using rule 110 - '|->' reduce using rule 110 - '}' reduce using rule 110 - %eof reduce using rule 110 + ')' reduce using rule 111 + ',' reduce using rule 111 + ':' reduce using rule 111 + ':=' reduce using rule 111 + ';' reduce using rule 111 + '>' reduce using rule 111 + ']' reduce using rule 111 + '|' reduce using rule 111 + '|->' reduce using rule 111 + '}' reduce using rule 111 + %eof reduce using rule 111 State 186 - Term5 -> Term5 . '*' Term6 (rule 101) - Term4 -> Term5 '===' Term5 . (rule 103) - - ')' reduce using rule 103 - '*' shift, and enter state 158 - ',' reduce using rule 103 - '/\\' reduce using rule 103 - ':' reduce using rule 103 - ':=' reduce using rule 103 - ';' reduce using rule 103 - '=' reduce using rule 103 - '=_{' reduce using rule 103 - '>' reduce using rule 103 - '\\/' reduce using rule 103 - ']' reduce using rule 103 - 'as' reduce using rule 103 - '|' reduce using rule 103 - '|->' reduce using rule 103 - '}' reduce using rule 103 - %eof reduce using rule 103 - - -State 187 - - Term5 -> Term5 . '*' Term6 (rule 101) - Term4 -> Term5 '<=' Term5 . (rule 104) + Term5 -> Term5 . '*' Term6 (rule 102) + Term4 -> Term5 '===' Term5 . (rule 104) ')' reduce using rule 104 '*' shift, and enter state 158 @@ -4544,45 +4596,69 @@ State 187 %eof reduce using rule 104 +State 187 + + Term5 -> Term5 . '*' Term6 (rule 102) + Term4 -> Term5 '<=' Term5 . (rule 105) + + ')' reduce using rule 105 + '*' shift, and enter state 158 + ',' reduce using rule 105 + '/\\' reduce using rule 105 + ':' reduce using rule 105 + ':=' reduce using rule 105 + ';' reduce using rule 105 + '=' reduce using rule 105 + '=_{' reduce using rule 105 + '>' reduce using rule 105 + '\\/' reduce using rule 105 + ']' reduce using rule 105 + 'as' reduce using rule 105 + '|' reduce using rule 105 + '|->' reduce using rule 105 + '}' reduce using rule 105 + %eof reduce using rule 105 + + State 188 - Term3 -> Term4 '/\\' Term3 . (rule 106) + Term3 -> Term4 '/\\' Term3 . (rule 107) - ')' reduce using rule 106 - ',' reduce using rule 106 - ':' reduce using rule 106 - ':=' reduce using rule 106 - ';' reduce using rule 106 - '=' reduce using rule 106 - '=_{' reduce using rule 106 - '>' reduce using rule 106 - '\\/' reduce using rule 106 - ']' reduce using rule 106 - 'as' reduce using rule 106 - '|' reduce using rule 106 - '|->' reduce using rule 106 - '}' reduce using rule 106 - %eof reduce using rule 106 + ')' reduce using rule 107 + ',' reduce using rule 107 + ':' reduce using rule 107 + ':=' reduce using rule 107 + ';' reduce using rule 107 + '=' reduce using rule 107 + '=_{' reduce using rule 107 + '>' reduce using rule 107 + '\\/' reduce using rule 107 + ']' reduce using rule 107 + 'as' reduce using rule 107 + '|' reduce using rule 107 + '|->' reduce using rule 107 + '}' reduce using rule 107 + %eof reduce using rule 107 State 189 - Term2 -> Term3 '\\/' Term2 . (rule 108) + Term2 -> Term3 '\\/' Term2 . (rule 109) - ')' reduce using rule 108 - ',' reduce using rule 108 - ':' reduce using rule 108 - ':=' reduce using rule 108 - ';' reduce using rule 108 - '=' reduce using rule 108 - '=_{' reduce using rule 108 - '>' reduce using rule 108 - ']' reduce using rule 108 - 'as' reduce using rule 108 - '|' reduce using rule 108 - '|->' reduce using rule 108 - '}' reduce using rule 108 - %eof reduce using rule 108 + ')' reduce using rule 109 + ',' reduce using rule 109 + ':' reduce using rule 109 + ':=' reduce using rule 109 + ';' reduce using rule 109 + '=' reduce using rule 109 + '=_{' reduce using rule 109 + '>' reduce using rule 109 + ']' reduce using rule 109 + 'as' reduce using rule 109 + '|' reduce using rule 109 + '|->' reduce using rule 109 + '}' reduce using rule 109 + %eof reduce using rule 109 State 190 @@ -4705,7 +4781,7 @@ State 193 State 194 - Term7 -> '<' ParamDecl '->' . Term '>' (rule 91) + Term7 -> '<' ParamDecl '->' . Term '>' (rule 92) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4752,7 +4828,7 @@ State 194 State 195 - Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 111) + Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 112) ':' shift, and enter state 257 @@ -4805,7 +4881,7 @@ State 196 State 197 - Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) ',' shift, and enter state 255 @@ -4828,7 +4904,7 @@ State 199 State 200 - Term7 -> 'refl_{' Term ':' . Term '}' (rule 96) + Term7 -> 'refl_{' Term ':' . Term '}' (rule 97) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -4875,50 +4951,51 @@ State 200 State 201 - Term7 -> 'refl_{' Term '}' . (rule 95) + Term7 -> 'refl_{' Term '}' . (rule 96) - '(' reduce using rule 95 - ')' reduce using rule 95 - '*' reduce using rule 95 - '*_1' reduce using rule 95 - ',' reduce using rule 95 - '->' reduce using rule 95 - '/\\' reduce using rule 95 - '0_2' reduce using rule 95 - '1' reduce using rule 95 - '1_2' reduce using rule 95 - '2' reduce using rule 95 - ':' reduce using rule 95 - ':=' reduce using rule 95 - ';' reduce using rule 95 - '<' reduce using rule 95 - '<=' reduce using rule 95 - '=' reduce using rule 95 - '===' reduce using rule 95 - '=_{' reduce using rule 95 - '>' reduce using rule 95 - 'BOT' reduce using rule 95 - 'CUBE' reduce using rule 95 - 'TOP' reduce using rule 95 - 'TOPE' reduce using rule 95 - 'U' reduce using rule 95 - '[' reduce using rule 95 - '\\/' reduce using rule 95 - ']' reduce using rule 95 - 'as' reduce using rule 95 - 'idJ' reduce using rule 95 - 'recBOT' reduce using rule 95 - 'recOR' reduce using rule 95 - 'refl' reduce using rule 95 - 'refl_{' reduce using rule 95 - 'unit' reduce using rule 95 - '|' reduce using rule 95 - '|->' reduce using rule 95 - '}' reduce using rule 95 - '→' reduce using rule 95 - L_VarIdentTokenreduce using rule 95 - L_HoleIdentTokenreduce using rule 95 - %eof reduce using rule 95 + '(' reduce using rule 96 + ')' reduce using rule 96 + '*' reduce using rule 96 + '*_1' reduce using rule 96 + ',' reduce using rule 96 + '->' reduce using rule 96 + '/\\' reduce using rule 96 + '0_2' reduce using rule 96 + '1' reduce using rule 96 + '1_2' reduce using rule 96 + '2' reduce using rule 96 + ':' reduce using rule 96 + ':=' reduce using rule 96 + ';' reduce using rule 96 + '<' reduce using rule 96 + '<=' reduce using rule 96 + '=' reduce using rule 96 + '===' reduce using rule 96 + '=_{' reduce using rule 96 + '>' reduce using rule 96 + 'BOT' reduce using rule 96 + 'CUBE' reduce using rule 96 + 'TOP' reduce using rule 96 + 'TOPE' reduce using rule 96 + 'U' reduce using rule 96 + 'Unit' reduce using rule 96 + '[' reduce using rule 96 + '\\/' reduce using rule 96 + ']' reduce using rule 96 + 'as' reduce using rule 96 + 'idJ' reduce using rule 96 + 'recBOT' reduce using rule 96 + 'recOR' reduce using rule 96 + 'refl' reduce using rule 96 + 'refl_{' reduce using rule 96 + 'unit' reduce using rule 96 + '|' reduce using rule 96 + '|->' reduce using rule 96 + '}' reduce using rule 96 + '→' reduce using rule 96 + L_VarIdentTokenreduce using rule 96 + L_HoleIdentTokenreduce using rule 96 + %eof reduce using rule 96 State 202 @@ -4994,55 +5071,56 @@ State 205 State 206 - Term7 -> '(' Term ')' . (rule 100) + Term7 -> '(' Term ')' . (rule 101) - '(' reduce using rule 100 - ')' reduce using rule 100 - '*' reduce using rule 100 - '*_1' reduce using rule 100 - ',' reduce using rule 100 - '->' reduce using rule 100 - '/\\' reduce using rule 100 - '0_2' reduce using rule 100 - '1' reduce using rule 100 - '1_2' reduce using rule 100 - '2' reduce using rule 100 - ':' reduce using rule 100 - ':=' reduce using rule 100 - ';' reduce using rule 100 - '<' reduce using rule 100 - '<=' reduce using rule 100 - '=' reduce using rule 100 - '===' reduce using rule 100 - '=_{' reduce using rule 100 - '>' reduce using rule 100 - 'BOT' reduce using rule 100 - 'CUBE' reduce using rule 100 - 'TOP' reduce using rule 100 - 'TOPE' reduce using rule 100 - 'U' reduce using rule 100 - '[' reduce using rule 100 - '\\/' reduce using rule 100 - ']' reduce using rule 100 - 'as' reduce using rule 100 - 'idJ' reduce using rule 100 - 'recBOT' reduce using rule 100 - 'recOR' reduce using rule 100 - 'refl' reduce using rule 100 - 'refl_{' reduce using rule 100 - 'unit' reduce using rule 100 - '|' reduce using rule 100 - '|->' reduce using rule 100 - '}' reduce using rule 100 - '→' reduce using rule 100 - L_VarIdentTokenreduce using rule 100 - L_HoleIdentTokenreduce using rule 100 - %eof reduce using rule 100 + '(' reduce using rule 101 + ')' reduce using rule 101 + '*' reduce using rule 101 + '*_1' reduce using rule 101 + ',' reduce using rule 101 + '->' reduce using rule 101 + '/\\' reduce using rule 101 + '0_2' reduce using rule 101 + '1' reduce using rule 101 + '1_2' reduce using rule 101 + '2' reduce using rule 101 + ':' reduce using rule 101 + ':=' reduce using rule 101 + ';' reduce using rule 101 + '<' reduce using rule 101 + '<=' reduce using rule 101 + '=' reduce using rule 101 + '===' reduce using rule 101 + '=_{' reduce using rule 101 + '>' reduce using rule 101 + 'BOT' reduce using rule 101 + 'CUBE' reduce using rule 101 + 'TOP' reduce using rule 101 + 'TOPE' reduce using rule 101 + 'U' reduce using rule 101 + 'Unit' reduce using rule 101 + '[' reduce using rule 101 + '\\/' reduce using rule 101 + ']' reduce using rule 101 + 'as' reduce using rule 101 + 'idJ' reduce using rule 101 + 'recBOT' reduce using rule 101 + 'recOR' reduce using rule 101 + 'refl' reduce using rule 101 + 'refl_{' reduce using rule 101 + 'unit' reduce using rule 101 + '|' reduce using rule 101 + '|->' reduce using rule 101 + '}' reduce using rule 101 + '→' reduce using rule 101 + L_VarIdentTokenreduce using rule 101 + L_HoleIdentTokenreduce using rule 101 + %eof reduce using rule 101 State 207 - Term7 -> '(' Term ',' . Term ')' (rule 92) + Term7 -> '(' Term ',' . Term ')' (rule 93) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -5113,50 +5191,51 @@ State 209 State 210 - Term5 -> Term5 '*' Term6 . (rule 101) + Term5 -> Term5 '*' Term6 . (rule 102) Term6 -> Term6 . '[' ListRestriction ']' (rule 120) Term6 -> Term6 . Term7 (rule 121) '(' shift, and enter state 72 - ')' reduce using rule 101 - '*' reduce using rule 101 + ')' reduce using rule 102 + '*' reduce using rule 102 '*_1' shift, and enter state 43 - ',' reduce using rule 101 - '/\\' reduce using rule 101 + ',' reduce using rule 102 + '/\\' reduce using rule 102 '0_2' shift, and enter state 44 '1' shift, and enter state 45 '1_2' shift, and enter state 46 '2' shift, and enter state 47 - ':' reduce using rule 101 - ':=' reduce using rule 101 - ';' reduce using rule 101 + ':' reduce using rule 102 + ':=' reduce using rule 102 + ';' reduce using rule 102 '<' shift, and enter state 48 - '<=' reduce using rule 101 - '=' reduce using rule 101 - '===' reduce using rule 101 - '=_{' reduce using rule 101 - '>' reduce using rule 101 + '<=' reduce using rule 102 + '=' reduce using rule 102 + '===' reduce using rule 102 + '=_{' reduce using rule 102 + '>' reduce using rule 102 'BOT' shift, and enter state 49 'CUBE' shift, and enter state 50 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 '[' shift, and enter state 155 - '\\/' reduce using rule 101 - ']' reduce using rule 101 - 'as' reduce using rule 101 + '\\/' reduce using rule 102 + ']' reduce using rule 102 + 'as' reduce using rule 102 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 'recOR' shift, and enter state 60 'refl' shift, and enter state 61 'refl_{' shift, and enter state 62 'unit' shift, and enter state 64 - '|' reduce using rule 101 - '|->' reduce using rule 101 - '}' reduce using rule 101 + '|' reduce using rule 102 + '|->' reduce using rule 102 + '}' reduce using rule 102 L_VarIdentTokenshift, and enter state 68 L_HoleIdentTokenshift, and enter state 69 - %eof reduce using rule 101 + %eof reduce using rule 102 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5876,6 +5955,7 @@ State 245 'TOP' reduce using rule 120 'TOPE' reduce using rule 120 'U' reduce using rule 120 + 'Unit' reduce using rule 120 '[' reduce using rule 120 '\\/' reduce using rule 120 ']' reduce using rule 120 @@ -5911,6 +5991,7 @@ State 246 'TOP' shift, and enter state 52 'TOPE' shift, and enter state 53 'U' shift, and enter state 54 + 'Unit' shift, and enter state 55 'first' shift, and enter state 57 'idJ' shift, and enter state 58 'recBOT' shift, and enter state 59 @@ -5935,7 +6016,7 @@ State 246 State 247 - Term7 -> '(' Term ',' Term . ')' (rule 92) + Term7 -> '(' Term ',' Term . ')' (rule 93) ')' shift, and enter state 273 @@ -6092,7 +6173,7 @@ State 251 State 252 - Term7 -> 'refl_{' Term ':' Term . '}' (rule 96) + Term7 -> 'refl_{' Term ':' Term . '}' (rule 97) '}' shift, and enter state 267 @@ -6173,6 +6254,7 @@ State 254 'TOP' reduce using rule 89 'TOPE' reduce using rule 89 'U' reduce using rule 89 + 'Unit' reduce using rule 89 '[' reduce using rule 89 '\\/' reduce using rule 89 ']' reduce using rule 89 @@ -6194,7 +6276,7 @@ State 254 State 255 - Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6258,7 +6340,7 @@ State 256 State 257 - Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 111) + Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 112) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -6305,7 +6387,7 @@ State 257 State 258 - Term7 -> '<' ParamDecl '->' Term . '>' (rule 91) + Term7 -> '<' ParamDecl '->' Term . '>' (rule 92) '>' shift, and enter state 263 @@ -6344,119 +6426,121 @@ State 262 State 263 - Term7 -> '<' ParamDecl '->' Term '>' . (rule 91) - - '(' reduce using rule 91 - ')' reduce using rule 91 - '*' reduce using rule 91 - '*_1' reduce using rule 91 - ',' reduce using rule 91 - '->' reduce using rule 91 - '/\\' reduce using rule 91 - '0_2' reduce using rule 91 - '1' reduce using rule 91 - '1_2' reduce using rule 91 - '2' reduce using rule 91 - ':' reduce using rule 91 - ':=' reduce using rule 91 - ';' reduce using rule 91 - '<' reduce using rule 91 - '<=' reduce using rule 91 - '=' reduce using rule 91 - '===' reduce using rule 91 - '=_{' reduce using rule 91 - '>' reduce using rule 91 - 'BOT' reduce using rule 91 - 'CUBE' reduce using rule 91 - 'TOP' reduce using rule 91 - 'TOPE' reduce using rule 91 - 'U' reduce using rule 91 - '[' reduce using rule 91 - '\\/' reduce using rule 91 - ']' reduce using rule 91 - 'as' reduce using rule 91 - 'idJ' reduce using rule 91 - 'recBOT' reduce using rule 91 - 'recOR' reduce using rule 91 - 'refl' reduce using rule 91 - 'refl_{' reduce using rule 91 - 'unit' reduce using rule 91 - '|' reduce using rule 91 - '|->' reduce using rule 91 - '}' reduce using rule 91 - '→' reduce using rule 91 - L_VarIdentTokenreduce using rule 91 - L_HoleIdentTokenreduce using rule 91 - %eof reduce using rule 91 - - -State 264 - - Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 111) - - ')' shift, and enter state 298 - - -State 265 - - Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 97) - - ',' shift, and enter state 297 - - -State 266 - - Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 90) - - ',' shift, and enter state 296 + Term7 -> '<' ParamDecl '->' Term '>' . (rule 92) - -State 267 - - Term7 -> 'refl_{' Term ':' Term '}' . (rule 96) - - '(' reduce using rule 96 - ')' reduce using rule 96 - '*' reduce using rule 96 - '*_1' reduce using rule 96 - ',' reduce using rule 96 - '->' reduce using rule 96 - '/\\' reduce using rule 96 - '0_2' reduce using rule 96 - '1' reduce using rule 96 - '1_2' reduce using rule 96 - '2' reduce using rule 96 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '<' reduce using rule 96 - '<=' reduce using rule 96 - '=' reduce using rule 96 - '===' reduce using rule 96 - '=_{' reduce using rule 96 - '>' reduce using rule 96 - 'BOT' reduce using rule 96 - 'CUBE' reduce using rule 96 - 'TOP' reduce using rule 96 - 'TOPE' reduce using rule 96 - 'U' reduce using rule 96 - '[' reduce using rule 96 - '\\/' reduce using rule 96 - ']' reduce using rule 96 - 'as' reduce using rule 96 - 'idJ' reduce using rule 96 - 'recBOT' reduce using rule 96 - 'recOR' reduce using rule 96 - 'refl' reduce using rule 96 - 'refl_{' reduce using rule 96 - 'unit' reduce using rule 96 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - '→' reduce using rule 96 - L_VarIdentTokenreduce using rule 96 - L_HoleIdentTokenreduce using rule 96 - %eof reduce using rule 96 + '(' reduce using rule 92 + ')' reduce using rule 92 + '*' reduce using rule 92 + '*_1' reduce using rule 92 + ',' reduce using rule 92 + '->' reduce using rule 92 + '/\\' reduce using rule 92 + '0_2' reduce using rule 92 + '1' reduce using rule 92 + '1_2' reduce using rule 92 + '2' reduce using rule 92 + ':' reduce using rule 92 + ':=' reduce using rule 92 + ';' reduce using rule 92 + '<' reduce using rule 92 + '<=' reduce using rule 92 + '=' reduce using rule 92 + '===' reduce using rule 92 + '=_{' reduce using rule 92 + '>' reduce using rule 92 + 'BOT' reduce using rule 92 + 'CUBE' reduce using rule 92 + 'TOP' reduce using rule 92 + 'TOPE' reduce using rule 92 + 'U' reduce using rule 92 + 'Unit' reduce using rule 92 + '[' reduce using rule 92 + '\\/' reduce using rule 92 + ']' reduce using rule 92 + 'as' reduce using rule 92 + 'idJ' reduce using rule 92 + 'recBOT' reduce using rule 92 + 'recOR' reduce using rule 92 + 'refl' reduce using rule 92 + 'refl_{' reduce using rule 92 + 'unit' reduce using rule 92 + '|' reduce using rule 92 + '|->' reduce using rule 92 + '}' reduce using rule 92 + '→' reduce using rule 92 + L_VarIdentTokenreduce using rule 92 + L_HoleIdentTokenreduce using rule 92 + %eof reduce using rule 92 + + +State 264 + + Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 112) + + ')' shift, and enter state 298 + + +State 265 + + Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 98) + + ',' shift, and enter state 297 + + +State 266 + + Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 90) + + ',' shift, and enter state 296 + + +State 267 + + Term7 -> 'refl_{' Term ':' Term '}' . (rule 97) + + '(' reduce using rule 97 + ')' reduce using rule 97 + '*' reduce using rule 97 + '*_1' reduce using rule 97 + ',' reduce using rule 97 + '->' reduce using rule 97 + '/\\' reduce using rule 97 + '0_2' reduce using rule 97 + '1' reduce using rule 97 + '1_2' reduce using rule 97 + '2' reduce using rule 97 + ':' reduce using rule 97 + ':=' reduce using rule 97 + ';' reduce using rule 97 + '<' reduce using rule 97 + '<=' reduce using rule 97 + '=' reduce using rule 97 + '===' reduce using rule 97 + '=_{' reduce using rule 97 + '>' reduce using rule 97 + 'BOT' reduce using rule 97 + 'CUBE' reduce using rule 97 + 'TOP' reduce using rule 97 + 'TOPE' reduce using rule 97 + 'U' reduce using rule 97 + 'Unit' reduce using rule 97 + '[' reduce using rule 97 + '\\/' reduce using rule 97 + ']' reduce using rule 97 + 'as' reduce using rule 97 + 'idJ' reduce using rule 97 + 'recBOT' reduce using rule 97 + 'recOR' reduce using rule 97 + 'refl' reduce using rule 97 + 'refl_{' reduce using rule 97 + 'unit' reduce using rule 97 + '|' reduce using rule 97 + '|->' reduce using rule 97 + '}' reduce using rule 97 + '→' reduce using rule 97 + L_VarIdentTokenreduce using rule 97 + L_HoleIdentTokenreduce using rule 97 + %eof reduce using rule 97 State 268 @@ -6538,50 +6622,51 @@ State 272 State 273 - Term7 -> '(' Term ',' Term ')' . (rule 92) + Term7 -> '(' Term ',' Term ')' . (rule 93) - '(' reduce using rule 92 - ')' reduce using rule 92 - '*' reduce using rule 92 - '*_1' reduce using rule 92 - ',' reduce using rule 92 - '->' reduce using rule 92 - '/\\' reduce using rule 92 - '0_2' reduce using rule 92 - '1' reduce using rule 92 - '1_2' reduce using rule 92 - '2' reduce using rule 92 - ':' reduce using rule 92 - ':=' reduce using rule 92 - ';' reduce using rule 92 - '<' reduce using rule 92 - '<=' reduce using rule 92 - '=' reduce using rule 92 - '===' reduce using rule 92 - '=_{' reduce using rule 92 - '>' reduce using rule 92 - 'BOT' reduce using rule 92 - 'CUBE' reduce using rule 92 - 'TOP' reduce using rule 92 - 'TOPE' reduce using rule 92 - 'U' reduce using rule 92 - '[' reduce using rule 92 - '\\/' reduce using rule 92 - ']' reduce using rule 92 - 'as' reduce using rule 92 - 'idJ' reduce using rule 92 - 'recBOT' reduce using rule 92 - 'recOR' reduce using rule 92 - 'refl' reduce using rule 92 - 'refl_{' reduce using rule 92 - 'unit' reduce using rule 92 - '|' reduce using rule 92 - '|->' reduce using rule 92 - '}' reduce using rule 92 - '→' reduce using rule 92 - L_VarIdentTokenreduce using rule 92 - L_HoleIdentTokenreduce using rule 92 - %eof reduce using rule 92 + '(' reduce using rule 93 + ')' reduce using rule 93 + '*' reduce using rule 93 + '*_1' reduce using rule 93 + ',' reduce using rule 93 + '->' reduce using rule 93 + '/\\' reduce using rule 93 + '0_2' reduce using rule 93 + '1' reduce using rule 93 + '1_2' reduce using rule 93 + '2' reduce using rule 93 + ':' reduce using rule 93 + ':=' reduce using rule 93 + ';' reduce using rule 93 + '<' reduce using rule 93 + '<=' reduce using rule 93 + '=' reduce using rule 93 + '===' reduce using rule 93 + '=_{' reduce using rule 93 + '>' reduce using rule 93 + 'BOT' reduce using rule 93 + 'CUBE' reduce using rule 93 + 'TOP' reduce using rule 93 + 'TOPE' reduce using rule 93 + 'U' reduce using rule 93 + 'Unit' reduce using rule 93 + '[' reduce using rule 93 + '\\/' reduce using rule 93 + ']' reduce using rule 93 + 'as' reduce using rule 93 + 'idJ' reduce using rule 93 + 'recBOT' reduce using rule 93 + 'recOR' reduce using rule 93 + 'refl' reduce using rule 93 + 'refl_{' reduce using rule 93 + 'unit' reduce using rule 93 + '|' reduce using rule 93 + '|->' reduce using rule 93 + '}' reduce using rule 93 + '→' reduce using rule 93 + L_VarIdentTokenreduce using rule 93 + L_HoleIdentTokenreduce using rule 93 + %eof reduce using rule 93 State 274 @@ -7061,7 +7146,7 @@ State 296 State 297 - Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7108,14 +7193,14 @@ State 297 State 298 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 111) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 112) ',' shift, and enter state 299 State 299 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 111) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 112) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7161,7 +7246,7 @@ State 299 State 300 - Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 98) ',' shift, and enter state 317 @@ -7551,7 +7636,7 @@ State 316 State 317 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7598,24 +7683,24 @@ State 317 State 318 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 111) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 112) - ')' reduce using rule 111 - ',' reduce using rule 111 - ':' reduce using rule 111 - ':=' reduce using rule 111 - ';' reduce using rule 111 - '>' reduce using rule 111 - ']' reduce using rule 111 - '|' reduce using rule 111 - '|->' reduce using rule 111 - '}' reduce using rule 111 - %eof reduce using rule 111 + ')' reduce using rule 112 + ',' reduce using rule 112 + ':' reduce using rule 112 + ':=' reduce using rule 112 + ';' reduce using rule 112 + '>' reduce using rule 112 + ']' reduce using rule 112 + '|' reduce using rule 112 + '|->' reduce using rule 112 + '}' reduce using rule 112 + %eof reduce using rule 112 State 319 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 98) ',' shift, and enter state 323 @@ -7665,6 +7750,7 @@ State 322 'TOP' reduce using rule 90 'TOPE' reduce using rule 90 'U' reduce using rule 90 + 'Unit' reduce using rule 90 '[' reduce using rule 90 '\\/' reduce using rule 90 ']' reduce using rule 90 @@ -7686,7 +7772,7 @@ State 322 State 323 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7733,14 +7819,14 @@ State 323 State 324 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 98) ',' shift, and enter state 325 State 325 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 @@ -7787,57 +7873,58 @@ State 325 State 326 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 98) ')' shift, and enter state 327 State 327 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 97) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 98) - '(' reduce using rule 97 - ')' reduce using rule 97 - '*' reduce using rule 97 - '*_1' reduce using rule 97 - ',' reduce using rule 97 - '->' reduce using rule 97 - '/\\' reduce using rule 97 - '0_2' reduce using rule 97 - '1' reduce using rule 97 - '1_2' reduce using rule 97 - '2' reduce using rule 97 - ':' reduce using rule 97 - ':=' reduce using rule 97 - ';' reduce using rule 97 - '<' reduce using rule 97 - '<=' reduce using rule 97 - '=' reduce using rule 97 - '===' reduce using rule 97 - '=_{' reduce using rule 97 - '>' reduce using rule 97 - 'BOT' reduce using rule 97 - 'CUBE' reduce using rule 97 - 'TOP' reduce using rule 97 - 'TOPE' reduce using rule 97 - 'U' reduce using rule 97 - '[' reduce using rule 97 - '\\/' reduce using rule 97 - ']' reduce using rule 97 - 'as' reduce using rule 97 - 'idJ' reduce using rule 97 - 'recBOT' reduce using rule 97 - 'recOR' reduce using rule 97 - 'refl' reduce using rule 97 - 'refl_{' reduce using rule 97 - 'unit' reduce using rule 97 - '|' reduce using rule 97 - '|->' reduce using rule 97 - '}' reduce using rule 97 - '→' reduce using rule 97 - L_VarIdentTokenreduce using rule 97 - L_HoleIdentTokenreduce using rule 97 - %eof reduce using rule 97 + '(' reduce using rule 98 + ')' reduce using rule 98 + '*' reduce using rule 98 + '*_1' reduce using rule 98 + ',' reduce using rule 98 + '->' reduce using rule 98 + '/\\' reduce using rule 98 + '0_2' reduce using rule 98 + '1' reduce using rule 98 + '1_2' reduce using rule 98 + '2' reduce using rule 98 + ':' reduce using rule 98 + ':=' reduce using rule 98 + ';' reduce using rule 98 + '<' reduce using rule 98 + '<=' reduce using rule 98 + '=' reduce using rule 98 + '===' reduce using rule 98 + '=_{' reduce using rule 98 + '>' reduce using rule 98 + 'BOT' reduce using rule 98 + 'CUBE' reduce using rule 98 + 'TOP' reduce using rule 98 + 'TOPE' reduce using rule 98 + 'U' reduce using rule 98 + 'Unit' reduce using rule 98 + '[' reduce using rule 98 + '\\/' reduce using rule 98 + ']' reduce using rule 98 + 'as' reduce using rule 98 + 'idJ' reduce using rule 98 + 'recBOT' reduce using rule 98 + 'recOR' reduce using rule 98 + 'refl' reduce using rule 98 + 'refl_{' reduce using rule 98 + 'unit' reduce using rule 98 + '|' reduce using rule 98 + '|->' reduce using rule 98 + '}' reduce using rule 98 + '→' reduce using rule 98 + L_VarIdentTokenreduce using rule 98 + L_HoleIdentTokenreduce using rule 98 + %eof reduce using rule 98 ----------------------------------------------------------------------------- diff --git a/rzk/src/Language/Rzk/Syntax/Par.y b/rzk/src/Language/Rzk/Syntax/Par.y index 6c4381ace..6fa73cbac 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.y +++ b/rzk/src/Language/Rzk/Syntax/Par.y @@ -268,6 +268,7 @@ Term7 | '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))) } @@ -304,7 +305,6 @@ Term1 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) Term1 : ParamDecl '->' Term1 { (fst $1, Language.Rzk.Syntax.Abs.TypeFun (fst $1) (snd $1) (snd $3)) } | 'Sigma' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } - | 'Unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | Term2 '=_{' Term '}' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TypeId (fst $1) (snd $1) (snd $3) (snd $5)) } | Term2 '=' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst $1) (snd $1) (snd $3)) } | '\\' ListParam '->' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } diff --git a/rzk/src/Language/Rzk/Syntax/Print.hs b/rzk/src/Language/Rzk/Syntax/Print.hs index 1d6f25443..050f2165c 100644 --- a/rzk/src/Language/Rzk/Syntax/Print.hs +++ b/rzk/src/Language/Rzk/Syntax/Print.hs @@ -1,8 +1,8 @@ -- File generated by the BNF Converter (bnfc 2.9.4.1). -{-# LANGUAGE CPP #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE CPP #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE LambdaCase #-} #if __GLASGOW_HASKELL__ <= 708 {-# LANGUAGE OverlappingInstances #-} #endif @@ -11,16 +11,13 @@ module Language.Rzk.Syntax.Print where -import Prelude - ( ($), (.) - , Bool(..), (==), (<) - , Int, Integer, Double, (+), (-), (*) - , String, (++) - , ShowS, showChar, showString - , all, elem, foldr, id, map, null, replicate, shows, span - ) -import Data.Char ( Char, isSpace ) +import Data.Char (Char, isSpace) import qualified Language.Rzk.Syntax.Abs +import Prelude (Bool (..), Double, Int, Integer, + ShowS, String, all, elem, foldr, id, + map, null, replicate, showChar, + showString, shows, span, ($), (*), + (+), (++), (-), (.), (<), (==)) -- | The top-level printing method. @@ -43,9 +40,9 @@ render d = rend 0 False (map ($ "") $ d []) "" rend i p = \case "[" :ts -> char '[' . rend i False ts "(" :ts -> char '(' . rend i False ts - "{" :ts -> onNewLine i p . showChar '{' . new (i+1) ts - "}" : ";":ts -> onNewLine (i-1) p . showString "};" . new (i-1) ts - "}" :ts -> onNewLine (i-1) p . showChar '}' . new (i-1) ts +-- "{" :ts -> onNewLine i p . showChar '{' . new (i+1) ts +-- "}" : ";":ts -> onNewLine (i-1) p . showString "};" . new (i-1) ts +-- "}" :ts -> onNewLine (i-1) p . showChar '}' . new (i-1) ts [";"] -> char ';' ";" :ts -> char ';' . new i ts t : ts@(s:_) | closingOrPunctuation s @@ -124,10 +121,10 @@ printString s = doc (showChar '"' . concatS (map (mkEsc '"') s) . showChar '"') mkEsc :: Char -> Char -> ShowS mkEsc q = \case s | s == q -> showChar '\\' . showChar s - '\\' -> showString "\\\\" - '\n' -> showString "\\n" - '\t' -> showString "\\t" - s -> showChar s + '\\' -> showString "\\\\" + '\n' -> showString "\\n" + '\t' -> showString "\\t" + s -> showChar s prPrec :: Int -> Int -> Doc -> Doc prPrec i j = if j < i then parenth else id @@ -155,8 +152,8 @@ instance Print (Language.Rzk.Syntax.Abs.VarIdent' a) where 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 _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.LanguageDecl' a) where @@ -181,7 +178,7 @@ instance Print (Language.Rzk.Syntax.Abs.Command' a) where Language.Rzk.Syntax.Abs.CommandDefine _ varident declusedvars params term1 term2 -> prPrec i 0 (concatD [doc (showString "#define"), prt 0 varident, prt 0 declusedvars, prt 0 params, doc (showString ":"), prt 0 term1, doc (showString ":="), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Command' a] where - prt _ [] = concatD [] + prt _ [] = concatD [] prt _ (x:xs) = concatD [prt 0 x, doc (showString ";"), prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.DeclUsedVars' a) where @@ -201,8 +198,8 @@ instance Print (Language.Rzk.Syntax.Abs.Pattern' a) where 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 ")")]) instance Print [Language.Rzk.Syntax.Abs.Pattern' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.Param' a) where @@ -212,8 +209,8 @@ instance Print (Language.Rzk.Syntax.Abs.Param' a) where Language.Rzk.Syntax.Abs.ParamPatternShape _ pattern_ term1 term2 -> prPrec i 0 (concatD [doc (showString "{"), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString "|"), prt 0 term2, doc (showString "}")]) instance Print [Language.Rzk.Syntax.Abs.Param' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.ParamDecl' a) where @@ -228,8 +225,8 @@ instance Print (Language.Rzk.Syntax.Abs.Restriction' a) where Language.Rzk.Syntax.Abs.Restriction _ term1 term2 -> prPrec i 0 (concatD [prt 0 term1, doc (showString "|->"), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Restriction' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, doc (showString ","), prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.Term' a) where @@ -253,7 +250,7 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where 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 1 (concatD [doc (showString "Unit")]) + 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 "]")]) @@ -272,6 +269,6 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where Language.Rzk.Syntax.Abs.TypeAsc _ term1 term2 -> prPrec i 0 (concatD [prt 2 term1, doc (showString "as"), prt 1 term2]) instance Print [Language.Rzk.Syntax.Abs.Term' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, doc (showString ","), prt 0 xs] diff --git a/rzk/src/Rzk/Main.hs b/rzk/src/Rzk/Main.hs index febd035b9..ee6513686 100644 --- a/rzk/src/Rzk/Main.hs +++ b/rzk/src/Rzk/Main.hs @@ -70,7 +70,7 @@ parseRzkFilesOrStdin = \case 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/rzk/src/Rzk/TypeCheck.hs b/rzk/src/Rzk/TypeCheck.hs index 874771196..186aad73c 100644 --- a/rzk/src/Rzk/TypeCheck.hs +++ b/rzk/src/Rzk/TypeCheck.hs @@ -51,7 +51,7 @@ typecheckModules :: [Rzk.Module] -> TypeCheck VarIdent () typecheckModules = \case [] -> return () m : ms -> do - decls <- typecheckModule m + decls <- typecheckModule Nothing m localDeclsPrepared decls $ typecheckModules ms @@ -59,7 +59,7 @@ typecheckModuleWithLocation :: (FilePath, Rzk.Module) -> TypeCheck VarIdent [Dec 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,8 +67,8 @@ countCommands (Rzk.CommandSection _loc _name sectionCommands _name2 : commands) countCommands sectionCommands + countCommands commands countCommands (_ : commands) = 1 + countCommands commands -typecheckModule :: Rzk.Module -> TypeCheck 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 @@ -95,17 +95,17 @@ typecheckModule (Rzk.Module _moduleLoc _lang commands) = traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]" <> " Checking #define " <> Rzk.printTree name ) $ do withCommand command $ do - mapM_ checkDefinedVar (VarIdent <$> 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 (VarIdent name) ty' (Just term') False (VarIdent <$> 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 (VarIdent 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 @@ -115,10 +115,10 @@ typecheckModule (Rzk.Module _moduleLoc _lang commands) = traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]" <> " Checking #postulate " <> Rzk.printTree name) $ do withCommand command $ do - mapM_ checkDefinedVar (VarIdent <$> vars) + mapM_ checkDefinedVar (varIdentAt path <$> vars) paramDecls <- concat <$> mapM paramToParamDecl params ty' <- typecheck (toTerm' (addParamDecls paramDecls ty)) universeT >>= whnfT -- >>= pure . termIsWHNF - let decl = Decl (VarIdent name) ty' Nothing False (VarIdent <$> vars) + let decl = Decl (varIdentAt path name) ty' Nothing False (varIdentAt path <$> vars) fmap (decl :) $ localDeclPrepared decl $ go (i + 1) moreCommands @@ -155,7 +155,7 @@ typecheckModule (Rzk.Module _moduleLoc _lang commands) = <> " Checking #assume " <> intercalate " " [ Rzk.printTree name | name <- names ] ) $ do withCommand command $ do ty' <- typecheck (toTerm' ty) universeT - let decls = [ Decl (VarIdent 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 @@ data TypeError var | TypeErrorTopeNotSatisfied [TermT var] (TermT var) | TypeErrorTopesNotEquivalent (TermT var) (TermT var) | TypeErrorInvalidArgumentType (Term var) (TermT var) - | TypeErrorDuplicateTopLevel VarIdent + | TypeErrorDuplicateTopLevel [VarIdent] VarIdent | TypeErrorUnusedVariable var (TermT var) | TypeErrorUnusedUsedVariables [var] var | TypeErrorImplicitAssumption (var, TermT var) var @@ -323,9 +323,13 @@ ppTypeError' = \case , " " <> show (untyped argKind) ] - TypeErrorDuplicateTopLevel name -> unlines + TypeErrorDuplicateTopLevel previous lastName -> unlines [ "duplicate top-level definition" - , " " <> Rzk.printTree (getVarIdent name) + , " " <> ppVarIdentWithLocation lastName + , "previous top-level definitions found at" + , intercalate "\n" + [ " " <> ppVarIdentWithLocation name + | name <- previous ] ] TypeErrorUnusedVariable name type_ -> unlines @@ -419,7 +423,7 @@ ppTermInContext :: Eq var => TermT var -> TypeCheck var String ppTermInContext term = do vars <- freeVarsT_ term let mapping = zip vars defaultVarIdents - toRzkVarIdent origs var = fromMaybe (VarIdent (Rzk.VarIdent Nothing "_")) $ + toRzkVarIdent origs var = fromMaybe "_" $ join (lookup var origs) <|> lookup var mapping origs <- asks varOrigs return (show (untyped (toRzkVarIdent origs <$> term))) @@ -429,7 +433,7 @@ ppSomeAction origs n action = ppAction n (toRzkVarIdent <$> action) where vars = nub (foldMap pure action) mapping = zip vars defaultVarIdents - toRzkVarIdent var = fromMaybe (VarIdent (Rzk.VarIdent Nothing "_")) $ + toRzkVarIdent var = fromMaybe "_" $ join (lookup var origs) <|> lookup var mapping ppAction :: Int -> Action' -> String @@ -773,22 +777,28 @@ ppContext' ctx@Context{..} = unlines -- , intercalate "\n" (map ((" " <>) . show . untyped) (intercalate [TopeAndT topeT topeBottomT topeBottomT] (saturateTopes [] <$> simplifyLHS localTopes))) ] -doesShadowName :: 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 :: VarIdent -> TypeCheck var () checkTopLevelDuplicate name = do doesShadowName name >>= \case - True -> issueTypeError (TypeErrorDuplicateTopLevel name) - False -> return () + [] -> return () + collisions -> issueTypeError $ + TypeErrorDuplicateTopLevel collisions name checkNameShadowing :: VarIdent -> TypeCheck var () checkNameShadowing name = do doesShadowName name >>= \case - True -> issueWarning $ - Rzk.printTree (getVarIdent 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, .. } @@ -2260,8 +2270,8 @@ infer tt = performing (ActionInfer tt) $ case tt of return (secondT r t') ty -> issueTypeError $ TypeErrorNotPair t' ty - TypeUnit -> pure universeT - Unit -> pure typeUnitT + TypeUnit -> pure typeUnitT + Unit -> pure unitT TopeTop -> pure topeTopT TopeBottom -> pure topeBottomT From 40974f327f8ce76d76f1d5ca02d5e0a2eba9e9d7 Mon Sep 17 00:00:00 2001 From: Nikolai Kudasov Date: Tue, 20 Jun 2023 13:33:07 +0300 Subject: [PATCH 13/13] Bump version and update changelog --- CITATION.cff | 2 +- rzk/ChangeLog.md | 8 ++++++++ rzk/package.yaml | 2 +- rzk/rzk.cabal | 2 +- rzk/rzk.nix | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 954c3d534..e55a5711a 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,5 +4,5 @@ authors: given-names: Nikolai orcid: "https://orcid.org/0000-0001-6572-7292" title: "rzk: a prototype proof assistant for synthetic $\\infty$-categories" -version: 0.1.0.0 +version: 0.5 url: "https://github.com/fizruk/rzk" diff --git a/rzk/ChangeLog.md b/rzk/ChangeLog.md index d581f2b04..124b457c4 100644 --- a/rzk/ChangeLog.md +++ b/rzk/ChangeLog.md @@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 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/package.yaml b/rzk/package.yaml index be573d515..6147e5294 100644 --- a/rzk/package.yaml +++ b/rzk/package.yaml @@ -1,5 +1,5 @@ name: rzk -version: 0.4.1.1 +version: 0.5 github: "fizruk/rzk" license: BSD3 author: "Nikolai Kudasov" diff --git a/rzk/rzk.cabal b/rzk/rzk.cabal index 536745d52..764ab3f42 100644 --- a/rzk/rzk.cabal +++ b/rzk/rzk.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- 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 category: Dependent Types diff --git a/rzk/rzk.nix b/rzk/rzk.nix index 652c4ac85..3686aef3e 100644 --- a/rzk/rzk.nix +++ b/rzk/rzk.nix @@ -3,7 +3,7 @@ }: mkDerivation { pname = "rzk"; - version = "0.4.1.1"; + version = "0.5"; src = ./.; isLibrary = true; isExecutable = true;