MiniAgda 0.2020.4.14 → 0.2022.3.11
raw patch · 382 files changed
+12900/−12089 lines, 382 filesdep +processdep +transformersdep ~basedep ~containersdep ~mtlsetup-changed
Dependencies added: process, transformers
Dependency ranges changed: base, containers, mtl
Files
- CHANGELOG +3/−1
- Makefile +7/−1
- MiniAgda.cabal +105/−69
- README.md +7/−7
- Setup.hs +0/−2
- dist/build/miniagda/miniagda-tmp/Lexer.hs +0/−1199
- dist/build/miniagda/miniagda-tmp/Parser.hs +0/−2742
- lib/bintree.ma +1/−3
- lib/colist.ma +10/−10
- lib/nat.ma +8/−8
- lib/stl.ma +23/−23
- src/Abstract.hs +139/−98
- src/Collection.hs +5/−2
- src/Eval.hs +6/−5
- src/Lexer.hs +58/−58
- src/Lexer.x +3/−0
- src/Makefile +111/−0
- src/Parser.hs +6826/−6823
- src/Polarity.hs +29/−20
- src/ScopeChecker.hs +8/−5
- src/Semiring.hs +4/−3
- src/SparseMatrix.hs +33/−21
- src/TCM.hs +4/−5
- src/TCM.hs-boot +3/−4
- src/Termination.hs +4/−3
- src/TraceError.hs +13/−6
- src/TreeShapedOrder.hs +13/−11
- src/TypeChecker.hs +5/−4
- src/Util.hs +24/−19
- src/Warshall.hs +27/−25
- test/GoldplateTests.hs +5/−0
- test/bugs/AgdaIssue1052.ma +47/−0
- test/bugs/AgdaIssue1458.ma +32/−0
- test/fail.goldplate +9/−0
- test/fail/AccCoqTermination.ma +15/−15
- test/fail/AccImplicit.ma +16/−16
- test/fail/BoundedFake.ma +0/−0
- test/fail/CheatSubtypingPos.ma +0/−0
- test/fail/D.ma +1/−1
- test/fail/D1.ma +2/−2
- test/fail/DescendAscend.ma +0/−0
- test/fail/DescendAscend2.ma +1/−1
- test/fail/DoNotEraseDataTeleForConTypes.ma +0/−0
- test/fail/EndsCoInEmpty.ma +3/−3
- test/fail/Fib2.ma +11/−11
- test/fail/FinBranchMutualWrong.ma +0/−0
- test/fail/HOMatching.ma +1/−1
- test/fail/HetIdFoolingEta.ma +3/−3
- test/fail/IdFoolingEta.ma +6/−6
- test/fail/InjDataLoop.ma +8/−8
- test/fail/InjDataLoop2.ma +8/−8
- test/fail/InvalidField.ma +0/−0
- test/fail/InvalidSizeP.ma +0/−0
- test/fail/IrrHeterogeneousEta.ma +10/−10
- test/fail/IrrHeterogeneousFun.ma +10/−11
- test/fail/MeasureInTelescope.ma +0/−0
- test/fail/MeasureInValue.ma +2/−3
- test/fail/MeasuresTypo.ma +2/−2
- test/fail/MixedMeasureLength.ma +1/−1
- test/fail/MixedMeasuredUnmeasured.ma +2/−2
- test/fail/MustBeCofun.ma +1/−1
- test/fail/MutualDataNotMon.ma +1/−1
- test/fail/MutualNeg.ma +0/−0
- test/fail/MutualNeg2.ma +0/−0
- test/fail/NatToSize.ma +1/−1
- test/fail/NonLinearPatterns.ma +0/−0
- test/fail/NonPosBoundedData.ma +0/−0
- test/fail/NotForcedConstructors.ma +1/−1
- test/fail/NumbersAsIds.ma +1/−1
- test/fail/OverlappingPatternIndFam-sound.ma +4/−4
- test/fail/OverlappingPatternIndFam.ma +7/−7
- test/fail/ResurrectFromErasedPattern.ma +1/−1
- test/fail/SizedDataWrongPol.ma +0/−0
- test/fail/StoreSize.ma +1/−1
- test/fail/StreamDupl.ma +3/−3
- test/fail/StreamNotSemiCont.ma +3/−3
- test/fail/Tm.ma +5/−5
- test/fail/UlfsCounterexample.ma +2/−2
- test/fail/UlfsCounterexample2.ma +4/−4
- test/fail/VectorPatternNotForced.ma +3/−3
- test/fail/absurdPatUnit.ma +0/−0
- test/fail/adm/adm1.ma +1/−2
- test/fail/adm/adm2.ma +0/−0
- test/fail/adm/adm3.ma +2/−2
- test/fail/bfSizePatternIncomplete.ma +16/−16
- test/fail/bfTypeNotAdmissible.ma +22/−22
- test/fail/bigData.ma +1/−1
- test/fail/coSetOmega.ma +1/−1
- test/fail/coSizeInFun.ma +0/−0
- test/fail/codataNotMonotone.ma +3/−3
- test/fail/codyPatternConditionExplicit.ma +10/−10
- test/fail/codyPatternConditionExplicit2.ma +10/−10
- test/fail/cofunIntoBoolTimesStream.ma +2/−2
- test/fail/cofunIntoStreamPlusStream.ma +4/−4
- test/fail/countingBT.ma +2/−2
- test/fail/countingMerge.ma +4/−4
- test/fail/dataNotMonotone.ma +1/−1
- test/fail/erased1.ma +1/−1
- test/fail/f_x_is_f_0.ma +1/−1
- test/fail/fibStream.ma +5/−5
- test/fail/hang2.ma +2/−2
- test/fail/huetHullotReverse.ma +22/−22
- test/fail/incompleteSizePattern2.ma +0/−0
- test/fail/inconsistentAssumption.ma +7/−7
- test/fail/inconsistentAssumption2.ma +6/−6
- test/fail/inductiveNotDotPattern.ma +1/−1
- test/fail/lengthCoList.ma +7/−7
- test/fail/lengthCoList2.ma +3/−3
- test/fail/loopAdmStream-Nat.ma +7/−7
- test/fail/loopAdmStream-simplified.ma +3/−3
- test/fail/loopAdmStream.ma +5/−5
- test/fail/loopBadTypesHidden.ma +10/−10
- test/fail/loopBounded.ma +2/−2
- test/fail/loopOldNoSizePattern.ma +10/−10
- test/fail/loopTypesHiddenInData.ma +9/−9
- test/fail/mapStream2.ma +7/−7
- test/fail/mapStream2sizeMatchDepth2.ma +7/−7
- test/fail/matchOnNatSuccI.ma +1/−1
- test/fail/negativeFam.ma +1/−1
- test/fail/notAdmMonotoneArg.ma +2/−2
- test/fail/omegaInst.ma +2/−2
- test/fail/onesStreamUnguarded.ma +2/−2
- test/fail/partialFunction.ma +1/−1
- test/fail/relevantArgErasedMagicVec.ma +1/−1
- test/fail/scolist_not_lsc1.ma +7/−7
- test/fail/scolist_not_lsc2.ma +7/−7
- test/fail/shouldBeDotPattern_snat.ma +6/−6
- test/fail/singleton.ma +1/−2
- test/fail/stream.ma +4/−4
- test/fail/streamMisc.ma +21/−22
- test/fail/stream_x_is_cons_x_tail_x.ma +2/−2
- test/fail/subtyping_erased.ma +1/−1
- test/fail/subtyping_erased_wrongdir.ma +1/−1
- test/fail/vec_eta.ma +1/−2
- test/fail/vec_length.ma +1/−1
- test/should-fail.goldplate +9/−0
- test/should-fail/AgdaIssue1015.golden +25/−0
- test/should-fail/AgdaIssue1015.ma +26/−0
- test/should-fail/AgdaIssue1015NonMutual.golden +20/−0
- test/should-fail/AgdaIssue1015NonMutual.ma +25/−0
- test/should-fail/StrictInfty.golden +23/−0
- test/should-fail/StrictInfty.ma +67/−0
- test/should-succeed.goldplate +9/−0
- test/should-succeed/Umlaut.err +3/−0
- test/should-succeed/Umlaut.ma +1/−0
- test/succeed.goldplate +9/−0
- test/succeed/AbsurdMatchNonLin.golden +27/−0
- test/succeed/AccDestructorErasedIndex.golden +69/−0
- test/succeed/AccDestructorErasedIndex.ma +19/−19
- test/succeed/AgdaIssue1052.golden +22/−0
- test/succeed/AgdaIssue1052.ma +0/−0
- test/succeed/AgdaIssue1055.golden +14/−0
- test/succeed/AgdaIssue1055.ma +0/−0
- test/succeed/AppendAddSize.golden +15/−0
- test/succeed/BelowLeInfty.golden +52/−0
- test/succeed/BelowLeInfty.ma +6/−6
- test/succeed/BigWrap.golden +33/−0
- test/succeed/BoundedQ.golden +21/−0
- test/succeed/BuiltinSigma.golden +36/−0
- test/succeed/BuiltinSigma.ma +6/−6
- test/succeed/CoFunReturnsProduct.golden +67/−0
- test/succeed/CoFunReturnsProduct.ma +12/−15
- test/succeed/ConorMcBrideCalco09inflationary.golden +49/−0
- test/succeed/ConstructorTelescopes.golden +14/−0
- test/succeed/ConstructorVeiledTarget.golden +11/−0
- test/succeed/DataTypesNotFamilies.golden +27/−0
- test/succeed/DataTypesNotFamilies.ma +1/−1
- test/succeed/DeepMatch.golden +18/−0
- test/succeed/DeepMatch.ma +1/−1
- test/succeed/DescendAscendTerm.golden +17/−0
- test/succeed/DescendAscendTerm.ma +0/−0
- test/succeed/DotPatternNotLeftToRightBinding.golden +25/−0
- test/succeed/DotPatternNotLeftToRightBinding.ma +3/−3
- test/succeed/DottedConstructors.golden +68/−0
- test/succeed/DottedPatSyn.golden +22/−0
- test/succeed/Empty.golden +35/−0
- test/succeed/EvalBoveCaprettaNotSized.golden +61/−0
- test/succeed/EvalBoveCaprettaNotSized.ma +13/−13
- test/succeed/EvenOdd.golden +21/−0
- test/succeed/EvenOdd.ma +2/−2
- test/succeed/Evens.golden +20/−0
- test/succeed/Evens.ma +3/−3
- test/succeed/ExtractLets.golden +14/−0
- test/succeed/ExtractLets.ma +0/−0
- test/succeed/FakeMutual.golden +28/−0
- test/succeed/FakeMutual.ma +5/−5
- test/succeed/Fields.golden +13/−0
- test/succeed/Fields.ma +1/−1
- test/succeed/FinBranchMutual.golden +24/−0
- test/succeed/FinBranchMutual.ma +0/−0
- test/succeed/Fix.golden +9/−0
- test/succeed/Fix.ma +2/−2
- test/succeed/ForceInConType.golden +20/−0
- test/succeed/ForcedMatch.golden +17/−0
- test/succeed/ForcedMatch.ma +0/−0
- test/succeed/ForcedMatchIdType.golden +17/−0
- test/succeed/ForestRose.golden +19/−0
- test/succeed/ForestRose.ma +1/−1
- test/succeed/GADT.golden +18/−0
- test/succeed/GADT.ma +1/−1
- test/succeed/GoodConstraint.golden +10/−0
- test/succeed/HEq.golden +10/−0
- test/succeed/HEq.ma +1/−1
- test/succeed/HVec.golden +29/−0
- test/succeed/HungryEtaRecord.golden +11/−0
- test/succeed/IdTypePos.golden +16/−0
- test/succeed/IdTypePos.ma +1/−1
- test/succeed/IrrHeterogeneousFun.golden +21/−0
- test/succeed/IrrHeterogeneousFun.ma +4/−5
- test/succeed/IrrHeterogeneousSingleton.golden +19/−0
- test/succeed/IrrHeterogeneousSingleton.ma +2/−2
- test/succeed/IrrHeterogeneousSize.golden +14/−0
- test/succeed/IrrHeterogeneousSize.ma +3/−3
- test/succeed/LargeElim.golden +33/−0
- test/succeed/LargeElim.ma +1/−1
- test/succeed/LetTele.golden +20/−0
- test/succeed/LetTele.ma +3/−3
- test/succeed/LowerSemiCont.golden +59/−0
- test/succeed/MeasureInFunTele.golden +12/−0
- test/succeed/MeasureInFunTele.ma +0/−0
- test/succeed/MeasuredHerSubst1.golden +77/−0
- test/succeed/MeasuredHerSubst1.ma +9/−9
- test/succeed/MeasuredRose.golden +22/−0
- test/succeed/MeasuredRose.ma +5/−5
- test/succeed/MergeWith.golden +26/−0
- test/succeed/MergeWith.ma +2/−2
- test/succeed/MockSig.golden +14/−0
- test/succeed/MockSig.ma +0/−0
- test/succeed/Mu.golden +44/−0
- test/succeed/Mu.ma +5/−5
- test/succeed/MultiSigma.golden +8/−0
- test/succeed/MultiSigma.ma +0/−0
- test/succeed/MutualBigDataKindInf.golden +20/−0
- test/succeed/MutualBigDataKindInf.ma +2/−2
- test/succeed/MutualRecordsNoEta.golden +23/−0
- test/succeed/Nested.golden +15/−0
- test/succeed/Nested.ma +0/−0
- test/succeed/NewSyntaxTour.golden +36/−0
- test/succeed/Nisse2012-02-17.golden +20/−0
- test/succeed/Nisse2012-03-06.golden +36/−0
- test/succeed/OverloadedConstructors.golden +52/−0
- test/succeed/PTSRule.golden +10/−0
- test/succeed/ParseMultBind.golden +16/−0
- test/succeed/ParseMultBind.ma +0/−0
- test/succeed/ParsePipeOperators.golden +54/−0
- test/succeed/ParsePipeOperators.ma +4/−5
- test/succeed/Pattern.golden +44/−0
- test/succeed/Pattern.ma +1/−1
- test/succeed/PatternParameters.golden +95/−0
- test/succeed/Polarities.golden +43/−0
- test/succeed/Polarities.ma +5/−5
- test/succeed/PredDepType.golden +19/−0
- test/succeed/PredDepType.ma +1/−1
- test/succeed/Prelude.golden +40/−0
- test/succeed/Prelude.ma +2/−2
- test/succeed/Prod.golden +14/−0
- test/succeed/Projections.golden +19/−0
- test/succeed/Projections.ma +1/−1
- test/succeed/Rose.golden +19/−0
- test/succeed/Rose.ma +3/−3
- test/succeed/SP.golden +26/−0
- test/succeed/SP.ma +2/−3
- test/succeed/ScopeCheckFunDef.golden +24/−0
- test/succeed/SgPredWrongMon.golden +17/−0
- test/succeed/SgPredWrongMon.ma +0/−0
- test/succeed/SolverBugStreamFixed.golden +120/−0
- test/succeed/SolverBugStreamFixed.ma +39/−40
- test/succeed/Squash.golden +102/−0
- test/succeed/Squash.ma +5/−6
- test/succeed/Stack.golden +29/−0
- test/succeed/Stack.ma +6/−6
- test/succeed/StreamDupl.golden +17/−0
- test/succeed/StreamDupl.ma +3/−3
- test/succeed/StrictBoundedQCoinductive.golden +14/−0
- test/succeed/StrictBoundedQCoinductive.ma +0/−0
- test/succeed/UPolyList.golden +9/−0
- test/succeed/UPolyList.ma +1/−1
- test/succeed/Universe.golden +15/−0
- test/succeed/Universe.ma +1/−1
- test/succeed/VecNotErased.golden +22/−0
- test/succeed/VecNotErased.ma +5/−5
- test/succeed/WrapAbsurd.golden +22/−0
- test/succeed/WrapAbsurd.ma +2/−2
- test/succeed/absurdPattern.golden +10/−0
- test/succeed/absurdPattern.ma +1/−1
- test/succeed/addWith.golden +28/−0
- test/succeed/addWith.ma +4/−4
- test/succeed/casePair.golden +16/−0
- test/succeed/caseSList.golden +56/−0
- test/succeed/caseSList.ma +10/−10
- test/succeed/conat.golden +21/−0
- test/succeed/conat.ma +7/−7
- test/succeed/countConstructors.golden +29/−0
- test/succeed/countConstructors.ma +1/−1
- test/succeed/crazys.golden +20/−0
- test/succeed/crazys.ma +2/−2
- test/succeed/drop.golden +17/−0
- test/succeed/eta.golden +11/−0
- test/succeed/eta.ma +2/−2
- test/succeed/eta_unit.golden +30/−0
- test/succeed/eta_unit.ma +5/−5
- test/succeed/exists.golden +26/−0
- test/succeed/exists.ma +2/−2
- test/succeed/fib.golden +73/−0
- test/succeed/fib.ma +19/−21
- test/succeed/fibDeep.golden +41/−0
- test/succeed/fibDeep.ma +23/−23
- test/succeed/gcd-either.golden +28/−0
- test/succeed/gcd-either.ma +4/−4
- test/succeed/hamming.golden +33/−0
- test/succeed/hamming.ma +11/−11
- test/succeed/ho.golden +20/−0
- test/succeed/ho.ma +5/−5
- test/succeed/implicitSizeVarUsedExplicitely.golden +31/−0
- test/succeed/implicitSizeVarUsedExplicitely.ma +3/−3
- test/succeed/lengthCoList.golden +43/−0
- test/succeed/lengthCoList.ma +7/−7
- test/succeed/list.golden +9/−0
- test/succeed/logic.golden +54/−0
- test/succeed/logic.ma +13/−13
- test/succeed/lossyIdentityOnStreams.golden +11/−0
- test/succeed/magicVecLookupProofIrr.golden +38/−0
- test/succeed/magicVecLookupProofIrr.ma +1/−1
- test/succeed/mapStream.golden +11/−0
- test/succeed/mapStream.ma +2/−2
- test/succeed/max.golden +35/−0
- test/succeed/max.ma +3/−3
- test/succeed/measures.golden +25/−0
- test/succeed/measures.ma +20/−20
- test/succeed/msort-implicit.golden +64/−0
- test/succeed/msort-implicit.ma +14/−14
- test/succeed/msort.golden +64/−0
- test/succeed/msort.ma +14/−14
- test/succeed/nat.golden +41/−0
- test/succeed/nat.ma +5/−5
- test/succeed/non-record.golden +8/−0
- test/succeed/old_stream.golden +114/−0
- test/succeed/old_stream.ma +37/−38
- test/succeed/oldnat.golden +41/−0
- test/succeed/oldnat.ma +4/−4
- test/succeed/omegaInst1.golden +36/−0
- test/succeed/omegaInstTailInfty.golden +48/−0
- test/succeed/pred.golden +22/−0
- test/succeed/pred.ma +0/−0
- test/succeed/qsapp.golden +60/−0
- test/succeed/qsapp.ma +11/−11
- test/succeed/quicksort-filter-fragment.golden +33/−0
- test/succeed/quicksort-filter-fragment.ma +3/−3
- test/succeed/quicksort-filter.golden +64/−0
- test/succeed/quicksort-filter.ma +11/−11
- test/succeed/quicksort.golden +64/−0
- test/succeed/quicksort.ma +9/−9
- test/succeed/rank2SizeQuantStream.golden +13/−0
- test/succeed/rank2SizeQuantStream.ma +2/−2
- test/succeed/record.golden +25/−0
- test/succeed/record.ma +0/−0
- test/succeed/shadowDataParam.golden +13/−0
- test/succeed/shadowDataParam.ma +2/−2
- test/succeed/sigma.golden +37/−0
- test/succeed/sigma.ma +2/−2
- test/succeed/simple_nat.golden +13/−0
- test/succeed/simple_nat.ma +3/−3
- test/succeed/singleton.golden +43/−0
- test/succeed/singleton.ma +9/−9
- test/succeed/sizeFunctions.golden +33/−0
- test/succeed/sizeFunctions.ma +1/−1
- test/succeed/sizedFinitelyBranchingTrees.golden +21/−0
- test/succeed/sizedFinitelyBranchingTrees.ma +2/−2
- test/succeed/sizedMax.golden +23/−0
- test/succeed/sizedMax.ma +6/−6
- test/succeed/sizedMergeWith.golden +28/−0
- test/succeed/sizedMergeWith.ma +2/−2
- test/succeed/sizedOrd.golden +27/−0
- test/succeed/sizedOrd.ma +2/−2
- test/succeed/streamIdentityNatRecursive.golden +17/−0
- test/succeed/subset.golden +29/−0
- test/succeed/subset.ma +5/−5
- test/succeed/tailStream.golden +11/−0
- test/succeed/tailStream.ma +1/−1
- test/succeed/vec.golden +43/−0
- test/succeed/wkStream.golden +106/−0
- test/succeed/wkStream.ma +13/−14
CHANGELOG view
@@ -1,6 +1,8 @@ CHANGELOG for MiniAgda -0.2020.04.14 Tested compilation with ghc 8.10.1+0.2022.3.11 Fixed compilation with mtl-2.3-rc3, tested with ghc 9.2.2, added cabal test.++0.2020.4.14 Tested compilation with ghc 8.10.1. 0.2019.12.13 Tested compilation with ghc 8.8.1.
Makefile view
@@ -1,4 +1,10 @@ install :- cabal v1-install+ cabal install++build :+ cabal build++test :+ cabal test # EOF
MiniAgda.cabal view
@@ -1,8 +1,8 @@+cabal-version: 2.4 name: MiniAgda-version: 0.2020.4.14+version: 0.2022.3.11 build-type: Simple-cabal-version: 1.24-license: OtherLicense+license: MIT license-file: LICENSE author: Andreas Abel and Karl Mehltretter maintainer: Andreas Abel <andreas.abel@cse.gu.se>@@ -22,76 +22,112 @@ Recent features include bounded size quantification and destructor patterns for a more general handling of coinduction. -tested-with: GHC == 7.6.3- GHC == 7.8.4- GHC == 7.10.3- GHC == 8.0.2- GHC == 8.2.2- GHC == 8.4.4- GHC == 8.6.5- GHC == 8.8.3- GHC == 8.10.1+tested-with:+ GHC == 9.2.2+ GHC == 9.0.2+ GHC == 8.10.7+ GHC == 8.8.4+ GHC == 8.6.5+ GHC == 8.4.4+ GHC == 8.2.2+ GHC == 8.0.2+ GHC == 7.10.3+ GHC == 7.8.4+ GHC == 7.6.3 -extra-source-files: Makefile- CHANGELOG- README.md+extra-source-files:+ CHANGELOG+ README.md+ Makefile+ src/Makefile -data-files: test/succeed/Makefile- test/succeed/*.ma- test/fail/Makefile- test/fail/*.ma- test/fail/*.err- test/fail/adm/*.ma- test/fail/adm/*.err- lib/*.ma+data-files:+ test/fail/Makefile+ test/succeed/Makefile+ test/**/*.ma+ test/*.goldplate+ test/**/*.golden+ test/**/*.err+ lib/*.ma+ source-repository head type: git location: https://github.com/andreasabel/miniagda executable miniagda- hs-source-dirs: src- build-depends: array >= 0.3 && < 0.6,- base >= 4.6 && < 5,- containers >= 0.3 && < 0.7,- haskell-src-exts >= 1.21 && < 1.22,- mtl >= 2.2.2 && < 2.3,- pretty >= 1.0 && < 1.2- -- haskell-src-exts is a nervous package with incompatibilities- -- in every new version, thus, we need tight bounds.- build-tools: happy >= 1.15 && < 2,- alex >= 3.0 && < 4- default-language: Haskell98- default-extensions: CPP- MultiParamTypeClasses- TypeSynonymInstances- FlexibleInstances- FlexibleContexts- GeneralizedNewtypeDeriving- NoMonomorphismRestriction- PatternGuards- TupleSections- NamedFieldPuns- main-is: Main.hs- other-modules: Abstract- Collection- Concrete- Eval- Extract- HsSyntax- Lexer- Parser- Polarity- PrettyTCM- ScopeChecker- Semiring- SparseMatrix- TCM- Termination- ToHaskell- Tokens- TraceError- TreeShapedOrder- TypeChecker- Util- Value- Warshall+ hs-source-dirs: src+ build-depends: array >= 0.3 && < 0.6+ , base >= 4.6 && < 5+ , containers >= 0.3 && < 0.7+ , haskell-src-exts >= 1.21 && < 1.22+ -- haskell-src-exts is a nervous package with incompatibilities+ -- in every new version, thus, we need tight bounds.+ , mtl >= 2.2.2 && < 2.4+ , pretty >= 1.0 && < 1.2+ , transformers+ build-tool-depends: happy:happy >= 1.15 && < 2+ , alex:alex >= 3.0 && < 4+ default-language: Haskell98+ default-extensions: CPP+ MultiParamTypeClasses+ TypeSynonymInstances+ FlexibleInstances+ FlexibleContexts+ GeneralizedNewtypeDeriving+ NoMonomorphismRestriction+ PatternGuards+ TupleSections+ NamedFieldPuns+ LambdaCase+ main-is: Main.hs+ other-modules: Abstract+ Collection+ Concrete+ Eval+ Extract+ HsSyntax+ Lexer+ Parser+ Polarity+ PrettyTCM+ ScopeChecker+ Semiring+ SparseMatrix+ TCM+ Termination+ ToHaskell+ Tokens+ TraceError+ TreeShapedOrder+ TypeChecker+ Util+ Value+ Warshall++ -- TODO: Warning-free+ -- ghc-options: -Wall+ -- -fno-warn-type-defaults+ -- -fno-warn-dodgy-imports+ -- -fno-warn-unused-binds+ -- -fno-warn-unused-matches+ -- -fno-warn-name-shadowing+ -- -fno-warn-incomplete-patterns++ if impl(ghc >= 8.0)+ ghc-options: -Wcompat+ if impl(ghc >= 9.2)+ ghc-options: -Wno-incomplete-uni-patterns++test-suite test+ type: exitcode-stdio-1.0+ hs-source-dirs: test+ main-is: GoldplateTests.hs+ default-language: Haskell2010+ ghc-options: -threaded+ build-depends: base >= 4.11+ -- goldplate requires ghc >= 8.4+ , process+ build-tool-depends: goldplate:goldplate >= 0.2+ -- goldplate-0.2.0 adds "working_directory"+ , MiniAgda:miniagda+ -- We also need to depend on ourselves since goldplate calls us.
README.md view
@@ -1,22 +1,22 @@ # MiniAgda -[](https://travis-ci.org/andreasabel/miniagda)+[![Cabal build][ci-badge]][ci-action] [![Hackage][hackage-badge]][hackage] + [ci-action]: <https://github.com/andreasabel/MiniAgda/actions>+ [ci-badge]: <https://github.com/andreasabel/MiniAgda/workflows/Haskell-CI/badge.svg> [hackage]: <https://hackage.haskell.org/package/MiniAgda>- [hackage-badge]: <https://img.shields.io/hackage/v/MiniAgda.svg>+ [hackage-badge]: <https://img.shields.io/hackage/v/MiniAgda.svg?color=informational> A prototypical dependently typed languages with sized types and variances. ## Installation -Requires GHC and cabal, for instance via the Haskell Platform.+Requires `ghc` and `cabal`, for instance via the Haskell Platform or via `ghcup`. In a shell, type ```- cabal v1-update- cabal v1-install alex- cabal v1-install happy- cabal v1-install MiniAgda+ cabal update+ cabal install MiniAgda ``` To build MiniAgda from source, replace the last command with
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
− dist/build/miniagda/miniagda-tmp/Lexer.hs
@@ -1,1199 +0,0 @@-{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-missing-signatures #-}-{-# LANGUAGE CPP,MagicHash #-}-{-# LINE 2 "src/Lexer.x" #-}-module Lexer where-#if __GLASGOW_HASKELL__ >= 603-#include "ghcconfig.h"-#elif defined(__GLASGOW_HASKELL__)-#include "config.h"-#endif-#if __GLASGOW_HASKELL__ >= 503-import Data.Array-#else-import Array-#endif-#if __GLASGOW_HASKELL__ >= 503-import Data.Array.Base (unsafeAt)-import GHC.Exts-#else-import GlaExts-#endif-{-# LINE 1 "templates/wrappers.hs" #-}--- -------------------------------------------------------------------------------- Alex wrapper code.------ This code is in the PUBLIC DOMAIN; you may copy it freely and use--- it for any purpose whatsoever.------import Data.Word (Word8)-----------------import Data.Char (ord)-import qualified Data.Bits---- | Encode a Haskell String to a list of Word8 values, in UTF8 format.-utf8Encode :: Char -> [Word8]-utf8Encode = uncurry (:) . utf8Encode'--utf8Encode' :: Char -> (Word8, [Word8])-utf8Encode' c = case go (ord c) of- (x, xs) -> (fromIntegral x, map fromIntegral xs)- where- go oc- | oc <= 0x7f = ( oc- , [- ])-- | oc <= 0x7ff = ( 0xc0 + (oc `Data.Bits.shiftR` 6)- , [0x80 + oc Data.Bits..&. 0x3f- ])-- | oc <= 0xffff = ( 0xe0 + (oc `Data.Bits.shiftR` 12)- , [0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)- , 0x80 + oc Data.Bits..&. 0x3f- ])- | otherwise = ( 0xf0 + (oc `Data.Bits.shiftR` 18)- , [0x80 + ((oc `Data.Bits.shiftR` 12) Data.Bits..&. 0x3f)- , 0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)- , 0x80 + oc Data.Bits..&. 0x3f- ])----type Byte = Word8---- -------------------------------------------------------------------------------- The input type---type AlexInput = (AlexPosn, -- current position,- Char, -- previous char- [Byte], -- pending bytes on current char- String) -- current input string--ignorePendingBytes :: AlexInput -> AlexInput-ignorePendingBytes (p,c,_ps,s) = (p,c,[],s)--alexInputPrevChar :: AlexInput -> Char-alexInputPrevChar (_p,c,_bs,_s) = c--alexGetByte :: AlexInput -> Maybe (Byte,AlexInput)-alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s))-alexGetByte (_,_,[],[]) = Nothing-alexGetByte (p,_,[],(c:s)) = let p' = alexMove p c- in case utf8Encode' c of- (b, bs) -> p' `seq` Just (b, (p', c, bs, s))---------------------------------------------------------------- -------------------------------------------------------------------------------- Token positions---- `Posn' records the location of a token in the input text. It has three--- fields: the address (number of chacaters preceding the token), line number--- and column of a token within the file. `start_pos' gives the position of the--- start of the file and `eof_pos' a standard encoding for the end of file.--- `move_pos' calculates the new position after traversing a given character,--- assuming the usual eight character tab stops.---data AlexPosn = AlexPn !Int !Int !Int- deriving (Eq,Show)--alexStartPos :: AlexPosn-alexStartPos = AlexPn 0 1 1--alexMove :: AlexPosn -> Char -> AlexPosn-alexMove (AlexPn a l c) '\t' = AlexPn (a+1) l (c+alex_tab_size-((c-1) `mod` alex_tab_size))-alexMove (AlexPn a l _) '\n' = AlexPn (a+1) (l+1) 1-alexMove (AlexPn a l c) _ = AlexPn (a+1) l (c+1)----- -------------------------------------------------------------------------------- Monad (default and with ByteString input)------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------- Basic wrapper--------------------------- -------------------------------------------------------------------------------- Basic wrapper, ByteString version----------------------------------- -------------------------------------------------------------------------------- Posn wrapper---- Adds text positions to the basic model.-----alexScanTokens :: String -> [token]-alexScanTokens str0 = go (alexStartPos,'\n',[],str0)- where go inp__@(pos,_,_,str) =- case alexScan inp__ 0 of- AlexEOF -> []- AlexError ((AlexPn _ line column),_,_,_) -> error $ "lexical error at line " ++ (show line) ++ ", column " ++ (show column)- AlexSkip inp__' _ln -> go inp__'- AlexToken inp__' len act -> act pos (take len str) : go inp__'------ -------------------------------------------------------------------------------- Posn wrapper, ByteString version----------------- -------------------------------------------------------------------------------- GScan wrapper---- For compatibility with previous versions of Alex, and because we can.---------------alex_tab_size :: Int-alex_tab_size = 8-alex_base :: AlexAddr-alex_base = AlexA#- "\xf8\xff\xff\xff\x0a\x00\x00\x00\xdd\x00\x00\x00\xca\x00\x00\x00\x5d\x01\x00\x00\x30\x02\x00\x00\xb0\x02\x00\x00\x9f\x01\x00\x00\x00\x00\x00\x00\x21\x03\x00\x00\x00\x00\x00\x00\xa1\x03\x00\x00\x21\x04\x00\x00\x21\x05\x00\x00\xe1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x05\x00\x00\x00\x00\x00\x00\x93\x05\x00\x00\x93\x06\x00\x00\x53\x06\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x49\x07\x00\x00\x1c\x08\x00\x00\x00\x00\x00\x00\x2d\x07\x00\x00\xf5\x08\x00\x00\x49\x09\x00\x00\x9d\x09\x00\x00\xf1\x09\x00\x00\x45\x0a\x00\x00\x99\x0a\x00\x00\xed\x0a\x00\x00\x41\x0b\x00\x00\x95\x0b\x00\x00\xe9\x0b\x00\x00\x3d\x0c\x00\x00\x91\x0c\x00\x00\xe5\x0c\x00\x00\x39\x0d\x00\x00\x8d\x0d\x00\x00\xe1\x0d\x00\x00\x35\x0e\x00\x00\x89\x0e\x00\x00\xdd\x0e\x00\x00\x31\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x0f\x00\x00\xde\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xff\xff\xe1\xff\xff\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\x00\x00\xdc\xff\xff\xff\x00\x00\x00\x00\x46\x00\x00\x00\x2d\x10\x00\x00\x81\x10\x00\x00\xd5\x10\x00\x00\x29\x11\x00\x00\x7d\x11\x00\x00\xd1\x11\x00\x00\x25\x12\x00\x00\x79\x12\x00\x00\xcd\x12\x00\x00\x21\x13\x00\x00\x75\x13\x00\x00\xc9\x13\x00\x00\x1d\x14\x00\x00\x71\x14\x00\x00\xc5\x14\x00\x00\x19\x15\x00\x00\x6d\x15\x00\x00\xc1\x15\x00\x00\x15\x16\x00\x00\x69\x16\x00\x00\xbd\x16\x00\x00\x11\x17\x00\x00\x65\x17\x00\x00\xb9\x17\x00\x00\x0d\x18\x00\x00\x61\x18\x00\x00\xb5\x18\x00\x00\x09\x19\x00\x00\x5d\x19\x00\x00\xb1\x19\x00\x00\x05\x1a\x00\x00\x59\x1a\x00\x00\xad\x1a\x00\x00\x01\x1b\x00\x00\x55\x1b\x00\x00\xa9\x1b\x00\x00\xfd\x1b\x00\x00\x51\x1c\x00\x00\xa5\x1c\x00\x00\xf9\x1c\x00\x00\x4d\x1d\x00\x00\xa1\x1d\x00\x00\xf5\x1d\x00\x00\x49\x1e\x00\x00\x9d\x1e\x00\x00\xf1\x1e\x00\x00\x45\x1f\x00\x00\x99\x1f\x00\x00\xed\x1f\x00\x00\x41\x20\x00\x00\x95\x20\x00\x00\xe9\x20\x00\x00\x3d\x21\x00\x00\x91\x21\x00\x00\xe5\x21\x00\x00\x39\x22\x00\x00\x8d\x22\x00\x00\xe1\x22\x00\x00\x35\x23\x00\x00\x89\x23\x00\x00\xdd\x23\x00\x00\x31\x24\x00\x00\x85\x24\x00\x00\xd9\x24\x00\x00\x2d\x25\x00\x00\x81\x25\x00\x00\xd5\x25\x00\x00\x29\x26\x00\x00\x7d\x26\x00\x00\xd1\x26\x00\x00\x25\x27\x00\x00\x79\x27\x00\x00\xcd\x27\x00\x00\x21\x28\x00\x00\x75\x28\x00\x00\xc9\x28\x00\x00\x1d\x29\x00\x00\x71\x29\x00\x00\xc5\x29\x00\x00\x19\x2a\x00\x00\x6d\x2a\x00\x00"#--alex_table :: AlexAddr-alex_table = AlexA#- "\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x05\x00\x31\x00\x41\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x49\x00\x00\x00\x33\x00\x34\x00\x17\x00\x47\x00\x48\x00\x3a\x00\x3b\x00\x45\x00\x42\x00\x3f\x00\x43\x00\x40\x00\x44\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x3e\x00\x3d\x00\x4d\x00\x4a\x00\x4e\x00\x02\x00\x00\x00\x7c\x00\x7c\x00\x74\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x64\x00\x6e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x38\x00\x4b\x00\x39\x00\x46\x00\x4c\x00\x30\x00\x7c\x00\x7c\x00\x6a\x00\x5d\x00\x86\x00\x5a\x00\x7c\x00\x7c\x00\x98\x00\x7c\x00\x7c\x00\x5e\x00\x66\x00\x7c\x00\x7c\x00\x78\x00\x7c\x00\x75\x00\x70\x00\x80\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x36\x00\x3c\x00\x37\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x01\x00\x0e\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x07\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x16\x00\x15\x00\x04\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x13\x00\x06\x00\x10\x00\x10\x00\x10\x00\x11\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0f\x00\x0e\x00\x0c\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x08\x00\x07\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x1f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x23\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x29\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x32\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x60\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x72\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x53\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x91\x00\x7c\x00\x7c\x00\x7c\x00\x9a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x99\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x97\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x96\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x54\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x55\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x95\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x94\x00\x7c\x00\x7c\x00\x7c\x00\x8a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x93\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x92\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x82\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x90\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x5c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x87\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x61\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x63\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8b\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x65\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x89\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x68\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x88\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x85\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x71\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x73\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x83\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x81\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x77\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x79\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7a\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x76\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x84\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6d\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x6c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x69\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x62\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x5f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x67\x00\x7c\x00\x5b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x8e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x59\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x58\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x57\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x56\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x52\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x9e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x51\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x50\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x35\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2f\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x2c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x28\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x27\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7d\x00\x26\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x25\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x24\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x22\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x21\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x20\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x1e\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\x7c\x00\x1b\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--alex_check :: AlexAddr-alex_check = AlexA#- "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2d\x00\x3e\x00\x2b\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x3d\x00\xff\xff\x23\x00\x24\x00\x20\x00\x26\x00\x3e\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x2d\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x7c\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\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\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--alex_deflt :: AlexAddr-alex_deflt = AlexA#- "\xff\xff\x05\x00\x05\x00\xff\xff\xff\xff\x05\x00\xff\xff\x0f\x00\x0f\x00\x08\x00\x08\x00\xff\xff\xff\xff\x05\x00\x05\x00\x05\x00\x12\x00\x12\x00\x16\x00\x16\x00\x18\x00\x18\x00\x18\x00\xff\xff\x18\x00\x05\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--alex_accept = listArray (0 :: Int, 160)- [ AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccSkip- , AlexAccSkip- , AlexAccSkip- , AlexAccSkip- , AlexAcc 133- , AlexAcc 132- , AlexAcc 131- , AlexAcc 130- , AlexAcc 129- , AlexAcc 128- , AlexAcc 127- , AlexAcc 126- , AlexAcc 125- , AlexAcc 124- , AlexAcc 123- , AlexAcc 122- , AlexAcc 121- , AlexAcc 120- , AlexAcc 119- , AlexAcc 118- , AlexAcc 117- , AlexAcc 116- , AlexAcc 115- , AlexAcc 114- , AlexAcc 113- , AlexAcc 112- , AlexAcc 111- , AlexAcc 110- , AlexAcc 109- , AlexAcc 108- , AlexAcc 107- , AlexAcc 106- , AlexAcc 105- , AlexAcc 104- , AlexAcc 103- , AlexAcc 102- , AlexAcc 101- , AlexAcc 100- , AlexAcc 99- , AlexAcc 98- , AlexAcc 97- , AlexAcc 96- , AlexAcc 95- , AlexAcc 94- , AlexAcc 93- , AlexAcc 92- , AlexAcc 91- , AlexAcc 90- , AlexAcc 89- , AlexAcc 88- , AlexAcc 87- , AlexAcc 86- , AlexAcc 85- , AlexAcc 84- , AlexAcc 83- , AlexAcc 82- , AlexAcc 81- , AlexAcc 80- , AlexAcc 79- , AlexAcc 78- , AlexAcc 77- , AlexAcc 76- , AlexAcc 75- , AlexAcc 74- , AlexAcc 73- , AlexAcc 72- , AlexAcc 71- , AlexAcc 70- , AlexAcc 69- , AlexAcc 68- , AlexAcc 67- , AlexAcc 66- , AlexAcc 65- , AlexAcc 64- , AlexAcc 63- , AlexAcc 62- , AlexAcc 61- , AlexAcc 60- , AlexAcc 59- , AlexAcc 58- , AlexAcc 57- , AlexAcc 56- , AlexAcc 55- , AlexAcc 54- , AlexAcc 53- , AlexAcc 52- , AlexAcc 51- , AlexAcc 50- , AlexAcc 49- , AlexAcc 48- , AlexAcc 47- , AlexAcc 46- , AlexAcc 45- , AlexAcc 44- , AlexAcc 43- , AlexAcc 42- , AlexAcc 41- , AlexAcc 40- , AlexAcc 39- , AlexAcc 38- , AlexAcc 37- , AlexAcc 36- , AlexAcc 35- , AlexAcc 34- , AlexAcc 33- , AlexAcc 32- , AlexAcc 31- , AlexAcc 30- , AlexAcc 29- , AlexAcc 28- , AlexAcc 27- , AlexAcc 26- , AlexAcc 25- , AlexAcc 24- , AlexAcc 23- , AlexAcc 22- , AlexAcc 21- , AlexAcc 20- , AlexAcc 19- , AlexAcc 18- , AlexAcc 17- , AlexAcc 16- , AlexAcc 15- , AlexAcc 14- , AlexAcc 13- , AlexAcc 12- , AlexAcc 11- , AlexAcc 10- , AlexAcc 9- , AlexAcc 8- , AlexAcc 7- , AlexAcc 6- , AlexAcc 5- , AlexAcc 4- , AlexAcc 3- , AlexAcc 2- , AlexAcc 1- , AlexAcc 0- ]--alex_actions = array (0 :: Int, 134)- [ (133,alex_action_3)- , (132,alex_action_4)- , (131,alex_action_5)- , (130,alex_action_6)- , (129,alex_action_7)- , (128,alex_action_8)- , (127,alex_action_9)- , (126,alex_action_10)- , (125,alex_action_11)- , (124,alex_action_12)- , (123,alex_action_13)- , (122,alex_action_14)- , (121,alex_action_15)- , (120,alex_action_16)- , (119,alex_action_17)- , (118,alex_action_18)- , (117,alex_action_19)- , (116,alex_action_20)- , (115,alex_action_21)- , (114,alex_action_22)- , (113,alex_action_23)- , (112,alex_action_24)- , (111,alex_action_25)- , (110,alex_action_26)- , (109,alex_action_27)- , (108,alex_action_28)- , (107,alex_action_29)- , (106,alex_action_30)- , (105,alex_action_31)- , (104,alex_action_32)- , (103,alex_action_33)- , (102,alex_action_34)- , (101,alex_action_35)- , (100,alex_action_36)- , (99,alex_action_37)- , (98,alex_action_38)- , (97,alex_action_39)- , (96,alex_action_40)- , (95,alex_action_41)- , (94,alex_action_42)- , (93,alex_action_43)- , (92,alex_action_44)- , (91,alex_action_45)- , (90,alex_action_46)- , (89,alex_action_47)- , (88,alex_action_48)- , (87,alex_action_49)- , (86,alex_action_50)- , (85,alex_action_51)- , (84,alex_action_52)- , (83,alex_action_53)- , (82,alex_action_54)- , (81,alex_action_55)- , (80,alex_action_56)- , (79,alex_action_56)- , (78,alex_action_56)- , (77,alex_action_56)- , (76,alex_action_56)- , (75,alex_action_56)- , (74,alex_action_56)- , (73,alex_action_56)- , (72,alex_action_56)- , (71,alex_action_56)- , (70,alex_action_56)- , (69,alex_action_56)- , (68,alex_action_56)- , (67,alex_action_56)- , (66,alex_action_56)- , (65,alex_action_56)- , (64,alex_action_56)- , (63,alex_action_56)- , (62,alex_action_56)- , (61,alex_action_56)- , (60,alex_action_56)- , (59,alex_action_56)- , (58,alex_action_56)- , (57,alex_action_56)- , (56,alex_action_56)- , (55,alex_action_56)- , (54,alex_action_56)- , (53,alex_action_56)- , (52,alex_action_56)- , (51,alex_action_56)- , (50,alex_action_56)- , (49,alex_action_56)- , (48,alex_action_56)- , (47,alex_action_56)- , (46,alex_action_56)- , (45,alex_action_56)- , (44,alex_action_56)- , (43,alex_action_56)- , (42,alex_action_56)- , (41,alex_action_56)- , (40,alex_action_56)- , (39,alex_action_56)- , (38,alex_action_56)- , (37,alex_action_56)- , (36,alex_action_56)- , (35,alex_action_56)- , (34,alex_action_56)- , (33,alex_action_56)- , (32,alex_action_56)- , (31,alex_action_56)- , (30,alex_action_56)- , (29,alex_action_56)- , (28,alex_action_56)- , (27,alex_action_56)- , (26,alex_action_56)- , (25,alex_action_56)- , (24,alex_action_56)- , (23,alex_action_56)- , (22,alex_action_56)- , (21,alex_action_56)- , (20,alex_action_56)- , (19,alex_action_56)- , (18,alex_action_56)- , (17,alex_action_56)- , (16,alex_action_56)- , (15,alex_action_56)- , (14,alex_action_56)- , (13,alex_action_56)- , (12,alex_action_56)- , (11,alex_action_56)- , (10,alex_action_56)- , (9,alex_action_56)- , (8,alex_action_56)- , (7,alex_action_56)- , (6,alex_action_56)- , (5,alex_action_56)- , (4,alex_action_56)- , (3,alex_action_56)- , (2,alex_action_56)- , (1,alex_action_56)- , (0,alex_action_57)- ]--{-# LINE 80 "src/Lexer.x" #-}-data Token- = Id String AlexPosn- | QualId (String, String) AlexPosn- | Number String AlexPosn- | Sized AlexPosn- | Data AlexPosn- | CoData AlexPosn- | Record AlexPosn- | Fields AlexPosn- | Mutual AlexPosn- | Fun AlexPosn- | CoFun AlexPosn- | Pattern AlexPosn- | Case AlexPosn- | Def AlexPosn- | Let AlexPosn- | In AlexPosn- | Type AlexPosn- | Set AlexPosn- | CoSet AlexPosn- | Eval AlexPosn- | Fail AlexPosn- | Check AlexPosn- | TrustMe AlexPosn- | Impredicative AlexPosn- -- size type- | Size AlexPosn- | Infty AlexPosn- | Succ AlexPosn- | Max AlexPosn- --- | LTri AlexPosn- | RTri AlexPosn- | AngleOpen AlexPosn- | AngleClose AlexPosn- | BrOpen AlexPosn- | BrClose AlexPosn- | BracketOpen AlexPosn- | BracketClose AlexPosn- | PrOpen AlexPosn- | PrClose AlexPosn- | Bar AlexPosn- | Sem AlexPosn- | Col AlexPosn- | Comma AlexPosn- | Dot AlexPosn- | Arrow AlexPosn- | Leq AlexPosn- | Eq AlexPosn- | PlusPlus AlexPosn- | Plus AlexPosn- | Minus AlexPosn- | Slash AlexPosn- | Times AlexPosn- | Hat AlexPosn- | Amp AlexPosn- | Lam AlexPosn- | Underscore AlexPosn- | NotUsed AlexPosn -- so happy doesn't generate overlap case pattern warning- deriving (Eq)--qualId s p = let (m, '.':n) = break (== '.') s in QualId (m,n) p--prettyTok :: Token -> String-prettyTok c = "\"" ++ tk ++ "\" at " ++ (prettyAlexPosn pos) where- (tk,pos) = case c of- (Id s p) -> (show s,p)- (QualId (m, n) p) -> (show m ++ "." ++ show n, p)- (Number i p) -> (i,p)- Sized p -> ("sized",p)- Data p -> ("data",p)- CoData p -> ("codata",p)- Record p -> ("record",p)- Fields p -> ("fields",p)- Mutual p -> ("mutual",p)- Fun p -> ("fun",p)- CoFun p -> ("cofun",p)- Pattern p -> ("pattern",p)- Case p -> ("case",p)- Def p -> ("def",p)- Let p -> ("let",p)- In p -> ("in",p)- Eval p -> ("eval",p)- Fail p -> ("fail",p)- Check p -> ("check",p)- TrustMe p -> ("trustme",p)- Impredicative p -> ("impredicative",p)- Type p -> ("Type",p)- Set p -> ("Set",p)- CoSet p -> ("CoSet",p)- Size p -> ("Size",p)- Infty p -> ("#",p)- Succ p -> ("$",p)- Max p -> ("max",p)- LTri p -> ("<|",p)- RTri p -> ("|>",p)- AngleOpen p -> ("<",p)- AngleClose p -> (">",p)- BrOpen p -> ("{",p)- BrClose p -> ("}",p)- BracketOpen p -> ("[",p)- BracketClose p -> ("]",p)- PrOpen p -> ("(",p)- PrClose p -> (")",p)- Bar p -> ("|",p)- Sem p -> (";",p)- Col p -> (":",p)- Comma p -> (",",p)- Dot p -> (".",p)- Arrow p -> ("->",p)- Leq p -> ("<=",p)- Eq p -> ("=",p)- PlusPlus p -> ("++",p)- Plus p -> ("+",p)- Minus p -> ("-",p)- Slash p -> ("/",p)- Times p -> ("*",p)- Hat p -> ("^",p)- Amp p -> ("&",p)- Lam p -> ("\\",p)- Underscore p -> ("_",p)- _ -> error "not used"---prettyAlexPosn (AlexPn _ line row) = "line " ++ show line ++ ", row " ++ show row--tok f p s = f p s-alex_action_3 = tok (\p s -> Sized p)-alex_action_4 = tok (\p s -> Data p)-alex_action_5 = tok (\p s -> CoData p)-alex_action_6 = tok (\p s -> Record p)-alex_action_7 = tok (\p s -> Fields p)-alex_action_8 = tok (\p s -> Fun p)-alex_action_9 = tok (\p s -> CoFun p)-alex_action_10 = tok (\p s -> Pattern p)-alex_action_11 = tok (\p s -> Case p)-alex_action_12 = tok (\p s -> Def p)-alex_action_13 = tok (\p s -> Let p)-alex_action_14 = tok (\p s -> In p)-alex_action_15 = tok (\p s -> Eval p)-alex_action_16 = tok (\p s -> Fail p)-alex_action_17 = tok (\p s -> Check p)-alex_action_18 = tok (\p s -> TrustMe p)-alex_action_19 = tok (\p s -> Impredicative p)-alex_action_20 = tok (\p s -> Mutual p)-alex_action_21 = tok (\p s -> Type p)-alex_action_22 = tok (\p s -> Set p)-alex_action_23 = tok (\p s -> CoSet p)-alex_action_24 = tok (\p s -> LTri p)-alex_action_25 = tok (\p s -> RTri p)-alex_action_26 = tok (\p s -> Size p)-alex_action_27 = tok (\p s -> Infty p)-alex_action_28 = tok (\p s -> Succ p)-alex_action_29 = tok (\p s -> Max p)-alex_action_30 = tok (\p s -> BrOpen p)-alex_action_31 = tok (\p s -> BrClose p)-alex_action_32 = tok (\p s -> BracketOpen p)-alex_action_33 = tok (\p s -> BracketClose p)-alex_action_34 = tok (\p s -> PrOpen p)-alex_action_35 = tok (\p s -> PrClose p)-alex_action_36 = tok (\p s -> Bar p)-alex_action_37 = tok (\p s -> Sem p)-alex_action_38 = tok (\p s -> Col p)-alex_action_39 = tok (\p s -> Comma p)-alex_action_40 = tok (\p s -> Dot p)-alex_action_41 = tok (\p s -> PlusPlus p)-alex_action_42 = tok (\p s -> Plus p)-alex_action_43 = tok (\p s -> Minus p)-alex_action_44 = tok (\p s -> Slash p)-alex_action_45 = tok (\p s -> Times p)-alex_action_46 = tok (\p s -> Hat p)-alex_action_47 = tok (\p s -> Amp p)-alex_action_48 = tok (\p s -> Arrow p)-alex_action_49 = tok (\p s -> Leq p)-alex_action_50 = tok (\p s -> Eq p)-alex_action_51 = tok (\p s -> Lam p)-alex_action_52 = tok (\p s -> Underscore p)-alex_action_53 = tok (\p s -> AngleOpen p)-alex_action_54 = tok (\p s -> AngleClose p)-alex_action_55 = tok (\p s -> (Number s p ))-alex_action_56 = tok (\p s -> (Id s p ))-alex_action_57 = tok (\p s -> (qualId s p))--{-# LINE 1 "templates/GenericTemplate.hs" #-}--- -------------------------------------------------------------------------------- ALEX TEMPLATE------ This code is in the PUBLIC DOMAIN; you may copy it freely and use--- it for any purpose whatsoever.---- -------------------------------------------------------------------------------- INTERNALS and main scanner engine-------------------- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ > 706-#define GTE(n,m) (tagToEnum# (n >=# m))-#define EQ(n,m) (tagToEnum# (n ==# m))-#else-#define GTE(n,m) (n >=# m)-#define EQ(n,m) (n ==# m)-#endif--------------------data AlexAddr = AlexA# Addr#--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ < 503-uncheckedShiftL# = shiftL#-#endif--{-# INLINE alexIndexInt16OffAddr #-}-alexIndexInt16OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN- narrow16Int# i- where- i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)- high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))- low = int2Word# (ord# (indexCharOffAddr# arr off'))- off' = off *# 2#-#else- indexInt16OffAddr# arr off-#endif------{-# INLINE alexIndexInt32OffAddr #-}-alexIndexInt32OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN- narrow32Int# i- where- i = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`- (b2 `uncheckedShiftL#` 16#) `or#`- (b1 `uncheckedShiftL#` 8#) `or#` b0)- b3 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))- b2 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))- b1 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))- b0 = int2Word# (ord# (indexCharOffAddr# arr off'))- off' = off *# 4#-#else- indexInt32OffAddr# arr off-#endif-------#if __GLASGOW_HASKELL__ < 503-quickIndex arr i = arr ! i-#else--- GHC >= 503, unsafeAt is available from Data.Array.Base.-quickIndex = unsafeAt-#endif------- -------------------------------------------------------------------------------- Main lexing routines--data AlexReturn a- = AlexEOF- | AlexError !AlexInput- | AlexSkip !AlexInput !Int- | AlexToken !AlexInput !Int a---- alexScan :: AlexInput -> StartCode -> AlexReturn a-alexScan input__ (I# (sc))- = alexScanUser undefined input__ (I# (sc))--alexScanUser user__ input__ (I# (sc))- = case alex_scan_tkn user__ input__ 0# input__ sc AlexNone of- (AlexNone, input__') ->- case alexGetByte input__ of- Nothing ->---- AlexEOF- Just _ ->---- AlexError input__'-- (AlexLastSkip input__'' len, _) ->---- AlexSkip input__'' len-- (AlexLastAcc k input__''' len, _) ->---- AlexToken input__''' len (alex_actions ! k)----- Push the input through the DFA, remembering the most recent accepting--- state it encountered.--alex_scan_tkn user__ orig_input len input__ s last_acc =- input__ `seq` -- strict in the input- let- new_acc = (check_accs (alex_accept `quickIndex` (I# (s))))- in- new_acc `seq`- case alexGetByte input__ of- Nothing -> (new_acc, input__)- Just (c, new_input) ->---- case fromIntegral c of { (I# (ord_c)) ->- let- base = alexIndexInt32OffAddr alex_base s- offset = (base +# ord_c)- check = alexIndexInt16OffAddr alex_check offset-- new_s = if GTE(offset,0#) && EQ(check,ord_c)- then alexIndexInt16OffAddr alex_table offset- else alexIndexInt16OffAddr alex_deflt s- in- case new_s of- -1# -> (new_acc, input__)- -- on an error, we want to keep the input *before* the- -- character that failed, not after.- _ -> alex_scan_tkn user__ orig_input----- (if c < 0x80 || c >= 0xC0 then (len +# 1#) else len)- -- note that the length is increased ONLY if this is the 1st byte in a char encoding)-- new_input new_s new_acc- }- where- check_accs (AlexAccNone) = last_acc- check_accs (AlexAcc a ) = AlexLastAcc a input__ (I# (len))- check_accs (AlexAccSkip) = AlexLastSkip input__ (I# (len))--------------data AlexLastAcc- = AlexNone- | AlexLastAcc !Int !AlexInput !Int- | AlexLastSkip !AlexInput !Int--data AlexAcc user- = AlexAccNone- | AlexAcc Int- | AlexAccSkip-----------------------------
− dist/build/miniagda/miniagda-tmp/Parser.hs
@@ -1,2742 +0,0 @@-{-# OPTIONS_GHC -w #-}-{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}-#if __GLASGOW_HASKELL__ >= 710-{-# OPTIONS_GHC -XPartialTypeSignatures #-}-#endif-{-# LANGUAGE BangPatterns #-}-module Parser where--import qualified Lexer as T-import qualified Concrete as C--import Abstract (Decoration(..),Dec,defaultDec,Override(..))-import Polarity (Pol(..))-import qualified Abstract as A-import qualified Polarity as A-import Concrete (Name,patApp)-import qualified Data.Array as Happy_Data_Array-import qualified Data.Bits as Bits-import qualified GHC.Exts as Happy_GHC_Exts-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.19.12--newtype HappyAbsSyn = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-newtype HappyWrap4 = HappyWrap4 ([C.Declaration])-happyIn4 :: ([C.Declaration]) -> (HappyAbsSyn )-happyIn4 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap4 x)-{-# INLINE happyIn4 #-}-happyOut4 :: (HappyAbsSyn ) -> HappyWrap4-happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut4 #-}-newtype HappyWrap5 = HappyWrap5 ([C.Declaration])-happyIn5 :: ([C.Declaration]) -> (HappyAbsSyn )-happyIn5 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap5 x)-{-# INLINE happyIn5 #-}-happyOut5 :: (HappyAbsSyn ) -> HappyWrap5-happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut5 #-}-newtype HappyWrap6 = HappyWrap6 (C.Declaration)-happyIn6 :: (C.Declaration) -> (HappyAbsSyn )-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap6 x)-{-# INLINE happyIn6 #-}-happyOut6 :: (HappyAbsSyn ) -> HappyWrap6-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut6 #-}-newtype HappyWrap7 = HappyWrap7 (C.Declaration)-happyIn7 :: (C.Declaration) -> (HappyAbsSyn )-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap7 x)-{-# INLINE happyIn7 #-}-happyOut7 :: (HappyAbsSyn ) -> HappyWrap7-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut7 #-}-newtype HappyWrap8 = HappyWrap8 (C.Declaration)-happyIn8 :: (C.Declaration) -> (HappyAbsSyn )-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap8 x)-{-# INLINE happyIn8 #-}-happyOut8 :: (HappyAbsSyn ) -> HappyWrap8-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut8 #-}-newtype HappyWrap9 = HappyWrap9 (C.Declaration)-happyIn9 :: (C.Declaration) -> (HappyAbsSyn )-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap9 x)-{-# INLINE happyIn9 #-}-happyOut9 :: (HappyAbsSyn ) -> HappyWrap9-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut9 #-}-newtype HappyWrap10 = HappyWrap10 (C.Declaration)-happyIn10 :: (C.Declaration) -> (HappyAbsSyn )-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap10 x)-{-# INLINE happyIn10 #-}-happyOut10 :: (HappyAbsSyn ) -> HappyWrap10-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut10 #-}-newtype HappyWrap11 = HappyWrap11 (C.Declaration)-happyIn11 :: (C.Declaration) -> (HappyAbsSyn )-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap11 x)-{-# INLINE happyIn11 #-}-happyOut11 :: (HappyAbsSyn ) -> HappyWrap11-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut11 #-}-newtype HappyWrap12 = HappyWrap12 ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name]))-happyIn12 :: ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name])) -> (HappyAbsSyn )-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap12 x)-{-# INLINE happyIn12 #-}-happyOut12 :: (HappyAbsSyn ) -> HappyWrap12-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut12 #-}-newtype HappyWrap13 = HappyWrap13 ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name]))-happyIn13 :: ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name])) -> (HappyAbsSyn )-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap13 x)-{-# INLINE happyIn13 #-}-happyOut13 :: (HappyAbsSyn ) -> HappyWrap13-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut13 #-}-newtype HappyWrap14 = HappyWrap14 (C.Declaration)-happyIn14 :: (C.Declaration) -> (HappyAbsSyn )-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap14 x)-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn ) -> HappyWrap14-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut14 #-}-newtype HappyWrap15 = HappyWrap15 (C.Declaration)-happyIn15 :: (C.Declaration) -> (HappyAbsSyn )-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap15 x)-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn ) -> HappyWrap15-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut15 #-}-newtype HappyWrap16 = HappyWrap16 (C.Declaration)-happyIn16 :: (C.Declaration) -> (HappyAbsSyn )-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap16 x)-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn ) -> HappyWrap16-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut16 #-}-newtype HappyWrap17 = HappyWrap17 (C.Declaration)-happyIn17 :: (C.Declaration) -> (HappyAbsSyn )-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap17 x)-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn ) -> HappyWrap17-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut17 #-}-newtype HappyWrap18 = HappyWrap18 (C.LetDef)-happyIn18 :: (C.LetDef) -> (HappyAbsSyn )-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap18 x)-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn ) -> HappyWrap18-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut18 #-}-newtype HappyWrap19 = HappyWrap19 (Bool)-happyIn19 :: (Bool) -> (HappyAbsSyn )-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap19 x)-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn ) -> HappyWrap19-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut19 #-}-newtype HappyWrap20 = HappyWrap20 (Maybe C.Type)-happyIn20 :: (Maybe C.Type) -> (HappyAbsSyn )-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap20 x)-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn ) -> HappyWrap20-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut20 #-}-newtype HappyWrap21 = HappyWrap21 (C.Declaration)-happyIn21 :: (C.Declaration) -> (HappyAbsSyn )-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap21 x)-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn ) -> HappyWrap21-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut21 #-}-newtype HappyWrap22 = HappyWrap22 ([Name])-happyIn22 :: ([Name]) -> (HappyAbsSyn )-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap22 x)-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> HappyWrap22-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut22 #-}-newtype HappyWrap23 = HappyWrap23 (Name)-happyIn23 :: (Name) -> (HappyAbsSyn )-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap23 x)-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> HappyWrap23-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut23 #-}-newtype HappyWrap24 = HappyWrap24 ([Name])-happyIn24 :: ([Name]) -> (HappyAbsSyn )-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap24 x)-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> HappyWrap24-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut24 #-}-newtype HappyWrap25 = HappyWrap25 ([Name])-happyIn25 :: ([Name]) -> (HappyAbsSyn )-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap25 x)-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> HappyWrap25-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut25 #-}-newtype HappyWrap26 = HappyWrap26 (Pol)-happyIn26 :: (Pol) -> (HappyAbsSyn )-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap26 x)-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> HappyWrap26-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut26 #-}-newtype HappyWrap27 = HappyWrap27 (A.Measure C.Expr)-happyIn27 :: (A.Measure C.Expr) -> (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 ([C.Expr])-happyIn28 :: ([C.Expr]) -> (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 (A.Bound C.Expr)-happyIn29 :: (A.Bound C.Expr) -> (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 ([Name])-happyIn30 :: ([Name]) -> (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 (C.Telescope)-happyIn31 :: (C.Telescope) -> (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 (C.TBind)-happyIn32 :: (C.TBind) -> (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 (C.TBind)-happyIn33 :: (C.TBind) -> (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 (C.TBind)-happyIn34 :: (C.TBind) -> (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 ((Dec, C.Name))-happyIn35 :: ((Dec, C.Name)) -> (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 (C.LetDef)-happyIn36 :: (C.LetDef) -> (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 (C.Telescope)-happyIn37 :: (C.Telescope) -> (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 (C.Expr)-happyIn38 :: (C.Expr) -> (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 ([C.Expr])-happyIn39 :: ([C.Expr]) -> (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 (C.Expr)-happyIn40 :: (C.Expr) -> (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 (C.Expr)-happyIn41 :: (C.Expr) -> (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 (C.TBind)-happyIn42 :: (C.TBind) -> (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 (C.Expr)-happyIn43 :: (C.Expr) -> (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 ([C.Expr])-happyIn44 :: ([C.Expr]) -> (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 (C.Expr)-happyIn45 :: (C.Expr) -> (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 (C.QName)-happyIn46 :: (C.QName) -> (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 ([([Name],C.Expr)])-happyIn47 :: ([([Name],C.Expr)]) -> (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 (([Name],C.Expr))-happyIn48 :: (([Name],C.Expr)) -> (HappyAbsSyn )-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap48 x)-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> HappyWrap48-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut48 #-}-newtype HappyWrap49 = HappyWrap49 (C.TypeSig)-happyIn49 :: (C.TypeSig) -> (HappyAbsSyn )-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap49 x)-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> HappyWrap49-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut49 #-}-newtype HappyWrap50 = HappyWrap50 (C.Constructor)-happyIn50 :: (C.Constructor) -> (HappyAbsSyn )-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap50 x)-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> HappyWrap50-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut50 #-}-newtype HappyWrap51 = HappyWrap51 ([C.Constructor ])-happyIn51 :: ([C.Constructor ]) -> (HappyAbsSyn )-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap51 x)-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn ) -> HappyWrap51-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut51 #-}-newtype HappyWrap52 = HappyWrap52 ([C.Clause])-happyIn52 :: ([C.Clause]) -> (HappyAbsSyn )-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x)-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> HappyWrap52-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut52 #-}-newtype HappyWrap53 = HappyWrap53 (C.Clause)-happyIn53 :: (C.Clause) -> (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 ([C.Pattern])-happyIn54 :: ([C.Pattern]) -> (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 ([C.Pattern])-happyIn55 :: ([C.Pattern]) -> (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 (C.Pattern)-happyIn56 :: (C.Pattern) -> (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 (C.Pattern)-happyIn57 :: (C.Pattern) -> (HappyAbsSyn )-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap57 x)-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn ) -> HappyWrap57-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut57 #-}-newtype HappyWrap58 = HappyWrap58 (C.Pattern)-happyIn58 :: (C.Pattern) -> (HappyAbsSyn )-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap58 x)-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn ) -> HappyWrap58-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut58 #-}-newtype HappyWrap59 = HappyWrap59 (C.Pattern)-happyIn59 :: (C.Pattern) -> (HappyAbsSyn )-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap59 x)-{-# INLINE happyIn59 #-}-happyOut59 :: (HappyAbsSyn ) -> HappyWrap59-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut59 #-}-newtype HappyWrap60 = HappyWrap60 (C.Pattern)-happyIn60 :: (C.Pattern) -> (HappyAbsSyn )-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap60 x)-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn ) -> HappyWrap60-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut60 #-}-newtype HappyWrap61 = HappyWrap61 ([C.Clause])-happyIn61 :: ([C.Clause]) -> (HappyAbsSyn )-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap61 x)-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn ) -> HappyWrap61-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut61 #-}-newtype HappyWrap62 = HappyWrap62 ([C.Clause ])-happyIn62 :: ([C.Clause ]) -> (HappyAbsSyn )-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap62 x)-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn ) -> HappyWrap62-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut62 #-}-newtype HappyWrap63 = HappyWrap63 (C.TBind)-happyIn63 :: (C.TBind) -> (HappyAbsSyn )-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap63 x)-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn ) -> HappyWrap63-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut63 #-}-newtype HappyWrap64 = HappyWrap64 (C.Telescope)-happyIn64 :: (C.Telescope) -> (HappyAbsSyn )-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap64 x)-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn ) -> HappyWrap64-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut64 #-}-happyInTok :: (T.Token) -> (HappyAbsSyn )-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (T.Token)-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyExpList :: HappyAddr-happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\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\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\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\x78\x0f\x1f\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x02\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\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\x00\x00\x00\x00\x00\x14\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xc4\x0d\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\x04\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x55\xc4\x0d\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\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\x14\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\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\x01\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\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\x78\x0f\x1f\x00\x02\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x1f\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\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\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\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\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x75\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x40\x4f\x10\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\x27\x00\xc0\x4f\x55\xc4\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\xd4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\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\x30\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x40\x4f\x10\x04\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\x02\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\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\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\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\x27\x50\xc0\x4f\x55\xc4\x6d\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\x08\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\x55\xc4\x0d\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\x55\xc4\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\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\x00\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\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc4\x0d\x00\x00\x00\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\x01\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x14\x10\x04\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\xc0\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\x80\x10\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\x40\x80\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\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\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\x01\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\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xc0\x4f\x10\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xc0\x4f\x55\xc4\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\x27\x00\xc0\x4f\x10\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x75\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x30\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\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\x20\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\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\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x4f\x10\x04\x40\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\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\x01\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\x27\x50\xc0\x4f\x55\xc4\x6d\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\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\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\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\x08\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\x02\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\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x10\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x27\x50\xc0\x4f\x55\xc4\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x50\xc0\x4f\x55\xc4\x6d\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\x04\x10\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"#--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =- token_strs_expected- where token_strs = ["error","%dummy","%start_parse","TopLevel","Declarations","Declaration","Data","SizedData","CoData","SizedCoData","RecordDecl","DataDef","DataDef1","Fun","CoFun","Mutual","Let","LetDef","Eval","TypeOpt","PatternDecl","OptFields","Id","SpcIds","Ids","Pol","Measure","Meas","Bound","EIds","Telescope","TBind","EBind","HBind","PolId","LLetDef","Domain","ExprT","ExprList","Expr","Expr0","SigDom","Expr1","Expr2","Expr3","QName","RecordDefs","RecordDef","TypeSig","Constructor","Constructors","Cases","Clause","LHS","Patterns","Pattern","PairP","ElemP","ConP","DotId","Clauses","RClauses","TBindSP","DataTelescope","id","qualid","number","data","codata","record","sized","fields","mutual","fun","cofun","pattern","case","def","let","in","eval","fail","check","trustme","impredicative","type","set","coset","size","infty","succ","max","'<|'","'|>'","'<'","'>'","'{'","'}'","'['","']'","'('","')'","'|'","','","';'","':'","'.'","'->'","'<='","'='","'++'","'+'","'-'","'/'","'*'","'^'","'&'","'\\\\'","'_'","%eof"]- bit_start = st Prelude.* 120- bit_end = (st Prelude.+ 1) Prelude.* 120- read_bit = readArrayBit happyExpList- bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]- bits_indexed = Prelude.zip bits [0..119]- token_strs_expected = Prelude.concatMap f bits_indexed- f (Prelude.False, _) = []- f (Prelude.True, nr) = [token_strs Prelude.!! nr]--happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x00\x00\x00\x00\xfe\x01\xd1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x3b\x00\x3b\x00\x3b\x00\x5b\x01\x74\x00\x47\x00\x47\x00\x47\x00\x00\x00\xf0\x02\x02\x03\x14\x03\x26\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x8e\x00\x00\x00\x9e\x00\xb6\x00\xd5\x00\x00\x00\x0b\x01\x0b\x01\x00\x00\x7a\x08\x00\x00\x7a\x08\x00\x00\x6b\x00\x00\x00\x00\x00\x0b\x01\x73\x08\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x00\x7a\x08\x48\x00\x24\x01\x16\x00\x5e\x00\x00\x00\x00\x00\x96\x02\x24\x01\x24\x01\xc1\x00\x8e\x01\x00\x00\xa8\x02\xba\x02\xcc\x02\xde\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xfd\x00\x00\x00\x00\x00\x00\x00\xf9\x00\x58\x00\x4f\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x8e\x01\x00\x00\xc1\x00\x8a\x00\xb4\x01\x00\x00\x00\x00\xe8\x00\x4b\x08\x21\x01\x00\x00\x5f\x08\x00\x00\x00\x00\x30\x01\x00\x00\x48\x01\x55\x01\xae\x00\x36\x01\x00\x00\x68\x01\xc1\x00\xbe\x01\xe1\x01\xe1\x01\xe1\x01\xc0\x01\xc1\x00\xc1\x00\xc1\x00\xc0\x01\x00\x00\x00\x00\x96\x01\x9d\x01\xb6\x01\x00\x00\xde\x01\xc1\x00\xbd\x01\xc6\x01\xf2\x01\xcc\x01\xfd\x01\xc1\x00\x00\x00\xfd\x01\xf0\x01\xf9\x01\x73\x08\xed\x01\x73\x08\x26\x02\xc1\x00\x00\x00\x70\x00\xff\x01\x00\x00\x02\x02\x1c\x01\x04\x02\x00\x00\x01\x02\xc1\x00\x00\x00\xc1\x00\x00\x00\x08\x02\x0b\x02\x73\x08\x00\x00\x2a\x01\xc1\x00\x09\x02\xc1\x00\x2f\x02\x1c\x02\x29\x02\x00\x00\x3d\x02\x00\x00\x1f\x02\x5b\x00\x20\x02\x00\x00\x25\x00\x32\x02\x34\x02\xa7\x00\x35\x02\x87\x01\x39\x02\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x03\x00\x54\x02\x6f\x02\x47\x02\x00\x00\x57\x01\x00\x00\x00\x00\x74\x02\xc1\x00\xc1\x00\xc1\x00\x0f\x01\xc1\x00\x4f\x02\x4f\x02\x66\x01\x73\x00\x00\x00\x00\x00\x00\x00\x42\x02\xc1\x00\xc1\x00\x2c\x00\x00\x00\x00\x00\x62\x02\x5d\x02\x8a\x00\x00\x00\xb4\x01\x5a\x02\x5c\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x4f\x00\x86\x01\x00\x00\xc1\x01\xc1\x01\x88\x02\xe1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x68\x02\x7c\x02\x7a\x02\xc1\x00\x00\x02\x00\x00\xc0\x00\x7b\x02\x80\x02\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x02\xea\x00\xc1\x00\xaf\x02\xc1\x00\xc1\x00\xc1\x00\x82\x02\xc1\x00\xc1\x00\x00\x00\x00\x00\xc1\x00\xc1\x00\x00\x00\xc1\x01\xc1\x00\x00\x00\xad\x02\xc1\x02\x00\x00\xa1\x02\xc1\x00\xa4\x02\xd1\x02\xc8\x02\xaa\x02\xd9\x02\xc1\x00\xc2\x00\xb1\x02\x00\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\xc0\x02\xc5\x02\xc6\x02\x00\x00\xc9\x02\x00\x00\xc1\x00\xc1\x00\xc1\x00\xd2\x02\x35\x01\xc1\x00\x00\x00\x00\x00\xfc\x02\x00\x00\xd8\x02\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x02\xeb\x02\xee\x02\xfa\x02\xff\x02\xe8\x02\x00\x00\xc1\x00\x4f\x00\x00\x00\xc1\x00\xc1\x00\xc1\x00\xc1\x00\x04\x03\x21\x03\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x09\x01\x0e\x03\x16\x03\x17\x03\x1c\x03\xf9\xff\x1d\x03\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x03\x00\x00\x00\x00\x00\x00\x3b\x03\x00\x00\x1e\x03\x28\x03\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x03\x2e\x03\x4f\x00\xc1\x00\x00\x00\x2a\x03\x31\x03\x32\x03\x4a\x03\x00\x00\xc1\x00\x46\x03\xc1\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x95\x01\x76\x03\xad\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\x07\x00\x9f\x00\x05\x00\x00\x00\x00\x00\xee\xff\xfe\xff\xf8\x01\x00\x00\xbd\x08\xcd\x08\xdd\x08\xed\x08\x00\x00\x7d\x03\x00\x00\x7e\x03\x00\x00\x8a\x03\x00\x00\x8b\x03\xfa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x03\xf2\x00\x1a\x01\x00\x00\x09\x00\x00\x00\x40\x00\x00\x00\x34\x08\x00\x00\x00\x00\x83\x03\x33\x02\x84\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x20\x01\x71\x01\x00\x00\x00\x00\x00\x00\xfd\x08\x11\x00\x99\x00\xf7\x04\xec\x01\x00\x00\xfd\x08\xfd\x08\xfd\x08\xfd\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x77\x03\x44\x02\xac\x00\x00\x00\x00\x00\x27\x08\x71\x02\x00\x00\x00\x00\x43\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x8f\x03\x20\x03\x3b\x01\x7a\x01\x9f\x01\x89\x01\x7f\x04\x2f\x03\x97\x04\x06\x02\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x0f\x05\x00\x00\x00\x00\x9b\x01\x00\x00\xf5\x00\x27\x05\x00\x00\xa9\x01\x00\x00\x00\x00\xf9\x08\x81\x03\x02\x09\xb7\x01\xa7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x05\x00\x00\xbf\x03\x00\x00\x00\x00\x00\x00\x0b\x09\x00\x00\x00\x00\x57\x05\x00\x00\x6f\x05\xd5\x01\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x03\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x91\x03\x97\x03\x00\x00\x70\x01\x00\x00\x00\x00\x96\x03\x87\x05\x9f\x05\xb7\x05\x3f\x08\xcf\x05\x98\x03\xa4\x03\xad\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x04\x47\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x00\x00\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x37\x01\x00\x00\x00\x00\x80\x00\x49\x02\x00\x00\x41\x01\x5c\x02\x9b\x03\xcb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x03\xa9\x03\xff\x05\x17\x06\x2f\x06\x00\x00\x47\x06\x5f\x06\x00\x00\x00\x00\xc7\x04\x07\x04\x00\x00\x61\x02\x1f\x04\x00\x00\xad\x03\x30\x00\x00\x00\x00\x00\x77\x06\x00\x00\xb4\x03\x85\x00\x00\x00\x19\x01\x8f\x06\x00\x00\x00\x00\x00\x00\x37\x04\xa7\x06\xdf\x04\xbf\x06\xd7\x06\xef\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x07\x1f\x07\x37\x07\x00\x00\x00\x00\x4f\x07\x00\x00\x00\x00\xe4\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\x67\x07\x95\x00\x00\x00\x7f\x07\x97\x07\xaf\x07\xc7\x07\x00\x00\x67\x01\x00\x00\x4f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x03\x00\x00\x00\x00\x00\x00\xb7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x67\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x07\x00\x00\x0f\x08\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00"#--happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#-happyAdjustOffset off = off--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\xfd\xff\x00\x00\xdb\xff\x00\x00\xfc\xff\xfb\xff\xf9\xff\xfa\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\x00\x00\xf2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\xff\xdb\xff\xdb\xff\xdb\xff\xdb\xff\xf1\xff\xfd\xff\xeb\xff\xfd\xff\xed\xff\xfd\xff\xef\xff\xfd\xff\xd3\xff\x00\x00\xd4\xff\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x00\x00\xe5\xff\x4d\xff\xe7\xff\x4d\xff\xe9\xff\x00\x00\xdd\xff\xb2\xff\x00\x00\xc3\xff\x00\x00\xcc\xff\xcf\xff\xce\xff\xcd\xff\xca\xff\xcb\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xe8\xff\xdb\xff\x52\xff\x52\xff\xc3\xff\x00\x00\xd2\xff\xdb\xff\xdb\xff\xdb\xff\xdb\xff\xf0\xff\xea\xff\xec\xff\xee\xff\x7e\xff\x00\x00\x86\xff\x5c\xff\xd7\xff\x60\xff\x5f\xff\x65\xff\x7f\xff\x81\xff\x00\x00\x89\xff\x87\xff\x00\x00\x88\xff\xc3\xff\xc3\xff\x00\x00\x83\xff\x7e\xff\x00\x00\x94\xff\xa7\xff\xa6\xff\x95\xff\xba\xff\xb9\xff\x00\x00\x79\xff\x9e\xff\x00\x00\x9a\xff\x92\xff\x8d\xff\x81\xff\xc3\xff\x00\x00\x90\xff\x00\x00\x00\x00\x00\x00\xc3\xff\xc3\xff\xc3\xff\x00\x00\x6a\xff\x53\xff\x00\x00\x56\xff\x00\x00\xde\xff\x00\x00\xc3\xff\xd1\xff\x00\x00\x00\x00\x00\x00\x73\xff\xc3\xff\x4c\xff\x00\x00\x00\x00\x00\x00\xc3\xff\xd9\xff\xc3\xff\x00\x00\xc3\xff\xb0\xff\x7e\xff\x00\x00\xc4\xff\xa4\xff\xd1\xff\x00\x00\xc2\xff\x00\x00\xc3\xff\xc1\xff\xc3\xff\xb1\xff\x00\x00\x00\x00\xc3\xff\x74\xff\x00\x00\xc3\xff\x00\x00\xc3\xff\x00\x00\x00\x00\x00\x00\xe0\xff\x54\xff\xdf\xff\x6c\xff\x6b\xff\x00\x00\xc9\xff\x00\x00\x00\x00\xa5\xff\x7e\xff\x00\x00\xd1\xff\x00\x00\x82\xff\xc3\xff\x91\xff\x8f\xff\xaf\xff\x00\x00\x00\x00\x00\x00\xd9\xff\xa5\xff\x00\x00\x8c\xff\x8a\xff\x00\x00\xc3\xff\xc3\xff\xc3\xff\x00\x00\xc3\xff\x00\x00\x00\x00\x00\x00\x94\xff\x93\xff\x95\xff\xaa\xff\x9a\xff\xc3\xff\xc3\xff\x57\xff\x62\xff\x63\xff\x8d\xff\x00\x00\xc3\xff\x67\xff\xcc\xff\x00\x00\x7e\xff\x64\xff\x65\xff\x7b\xff\x58\xff\x5a\xff\x00\x00\x00\x00\x59\xff\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xff\x5e\xff\x61\xff\x5b\xff\x00\x00\x00\x00\x7c\xff\xc3\xff\x7e\xff\x66\xff\x7e\xff\x00\x00\x00\x00\x96\xff\xc3\xff\xc5\xff\xc6\xff\xa2\xff\x99\xff\x9a\xff\x9d\xff\x9b\xff\x9c\xff\x8b\xff\x8e\xff\x00\x00\x00\x00\xc3\xff\x00\x00\xc3\xff\xc3\xff\xc3\xff\xab\xff\xc3\xff\xc3\xff\x84\xff\xc8\xff\xc3\xff\xc3\xff\x69\xff\x00\x00\xc3\xff\x55\xff\xd6\xff\x00\x00\xd0\xff\x00\x00\xc3\xff\x00\x00\xd6\xff\x75\xff\x77\xff\x73\xff\xc3\xff\x7e\xff\x00\x00\xd8\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\x00\x00\x00\x00\x00\x00\xa3\xff\x00\x00\xdc\xff\xc3\xff\xc3\xff\xc3\xff\x00\x00\x00\x00\xc3\xff\x76\xff\xe3\xff\x00\x00\x50\xff\x00\x00\x51\xff\x00\x00\xe1\xff\x6d\xff\x68\xff\xa1\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xff\xc3\xff\x6e\xff\x97\xff\xc3\xff\xc3\xff\xc3\xff\xc3\xff\x00\x00\x7b\xff\x80\xff\xc3\xff\x7a\xff\x7d\xff\x85\xff\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xff\x00\x00\xc3\xff\xb5\xff\xb4\xff\xb3\xff\xb7\xff\xb6\xff\xd6\xff\x4e\xff\xd5\xff\x78\xff\xd6\xff\x4f\xff\x00\x00\x00\x00\x00\x00\xb8\xff\xc0\xff\xbf\xff\xbe\xff\xbd\xff\xbc\xff\xbb\xff\xe4\xff\xe2\xff\x00\x00\x00\x00\x6e\xff\xc3\xff\x9f\xff\xbd\xff\xbc\xff\xbb\xff\x71\xff\x70\xff\xc3\xff\x00\x00\xc3\xff\xae\xff\x6e\xff\x72\xff\xad\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x13\x00\x01\x00\x13\x00\x01\x00\x04\x00\x05\x00\x06\x00\x07\x00\x38\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x09\x00\x08\x00\x0f\x00\x13\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x13\x00\x13\x00\x13\x00\x2d\x00\x1b\x00\x0f\x00\x1d\x00\x16\x00\x1f\x00\x31\x00\x29\x00\x22\x00\x13\x00\x2c\x00\x25\x00\x26\x00\x25\x00\x28\x00\x29\x00\x2d\x00\x2b\x00\x01\x00\x13\x00\x2e\x00\x04\x00\x05\x00\x06\x00\x07\x00\x2e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x38\x00\x13\x00\x0f\x00\x01\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x31\x00\x13\x00\x3b\x00\x3c\x00\x30\x00\x1b\x00\x01\x00\x1d\x00\x39\x00\x3a\x00\x27\x00\x28\x00\x22\x00\x34\x00\x01\x00\x25\x00\x26\x00\x38\x00\x28\x00\x29\x00\x16\x00\x2b\x00\x2c\x00\x01\x00\x2e\x00\x34\x00\x01\x00\x01\x00\x2e\x00\x38\x00\x04\x00\x05\x00\x06\x00\x07\x00\x38\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x21\x00\x1b\x00\x0f\x00\x01\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x2a\x00\x1b\x00\x25\x00\x1d\x00\x1b\x00\x1b\x00\x1d\x00\x1d\x00\x2b\x00\x3b\x00\x3c\x00\x25\x00\x22\x00\x21\x00\x25\x00\x25\x00\x26\x00\x2b\x00\x28\x00\x29\x00\x2b\x00\x2b\x00\x2a\x00\x13\x00\x2e\x00\x01\x00\x02\x00\x03\x00\x23\x00\x1f\x00\x06\x00\x16\x00\x1f\x00\x13\x00\x38\x00\x21\x00\x2b\x00\x0d\x00\x13\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x2d\x00\x33\x00\x34\x00\x2d\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x08\x00\x13\x00\x1f\x00\x34\x00\x21\x00\x13\x00\x23\x00\x38\x00\x25\x00\x26\x00\x27\x00\x13\x00\x2e\x00\x34\x00\x2b\x00\x3b\x00\x3c\x00\x38\x00\x2f\x00\x30\x00\x31\x00\x2e\x00\x33\x00\x34\x00\x13\x00\x36\x00\x37\x00\x01\x00\x02\x00\x03\x00\x30\x00\x1f\x00\x06\x00\x2a\x00\x34\x00\x31\x00\x1d\x00\x1e\x00\x38\x00\x0d\x00\x28\x00\x0f\x00\x2a\x00\x39\x00\x3a\x00\x2d\x00\x29\x00\x2a\x00\x21\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x30\x00\x1f\x00\x1f\x00\x1f\x00\x21\x00\x35\x00\x23\x00\x13\x00\x25\x00\x13\x00\x27\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x2d\x00\x06\x00\x2d\x00\x2f\x00\x30\x00\x31\x00\x25\x00\x33\x00\x34\x00\x21\x00\x36\x00\x37\x00\x13\x00\x08\x00\x29\x00\x2a\x00\x29\x00\x2a\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x34\x00\x1f\x00\x13\x00\x21\x00\x38\x00\x23\x00\x01\x00\x25\x00\x24\x00\x27\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x2a\x00\x06\x00\x30\x00\x2f\x00\x30\x00\x31\x00\x34\x00\x33\x00\x34\x00\x20\x00\x38\x00\x37\x00\x13\x00\x28\x00\x08\x00\x2e\x00\x2f\x00\x01\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x13\x00\x1f\x00\x26\x00\x21\x00\x28\x00\x23\x00\x13\x00\x25\x00\x15\x00\x27\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x1f\x00\x06\x00\x30\x00\x2f\x00\x30\x00\x31\x00\x34\x00\x33\x00\x34\x00\x28\x00\x38\x00\x37\x00\x2e\x00\x2f\x00\x2d\x00\x13\x00\x14\x00\x22\x00\x17\x00\x13\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x29\x00\x13\x00\x1f\x00\x35\x00\x22\x00\x01\x00\x02\x00\x03\x00\x25\x00\x2c\x00\x06\x00\x29\x00\x04\x00\x05\x00\x2b\x00\x2b\x00\x2c\x00\x29\x00\x2a\x00\x21\x00\x01\x00\x02\x00\x03\x00\x29\x00\x2a\x00\x06\x00\x37\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2c\x00\x34\x00\x1f\x00\x36\x00\x37\x00\x38\x00\x13\x00\x14\x00\x25\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x13\x00\x1f\x00\x15\x00\x01\x00\x02\x00\x03\x00\x35\x00\x25\x00\x06\x00\x13\x00\x37\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x2c\x00\x06\x00\x00\x00\x01\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x33\x00\x13\x00\x37\x00\x15\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x29\x00\x2a\x00\x1f\x00\x1f\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x25\x00\x26\x00\x1f\x00\x13\x00\x28\x00\x15\x00\x2b\x00\x13\x00\x25\x00\x2d\x00\x01\x00\x02\x00\x03\x00\x22\x00\x2b\x00\x06\x00\x13\x00\x13\x00\x37\x00\x15\x00\x01\x00\x13\x00\x01\x00\x01\x00\x02\x00\x03\x00\x37\x00\x29\x00\x06\x00\x29\x00\x2a\x00\x13\x00\x17\x00\x15\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x29\x00\x2a\x00\x1f\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x22\x00\x25\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x13\x00\x01\x00\x1f\x00\x23\x00\x01\x00\x02\x00\x03\x00\x28\x00\x25\x00\x06\x00\x13\x00\x2b\x00\x15\x00\x37\x00\x2b\x00\x2f\x00\x30\x00\x31\x00\x2a\x00\x33\x00\x34\x00\x01\x00\x29\x00\x2a\x00\x2a\x00\x13\x00\x37\x00\x15\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x13\x00\x1f\x00\x01\x00\x04\x00\x05\x00\x06\x00\x07\x00\x25\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x13\x00\x14\x00\x13\x00\x14\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x24\x00\x29\x00\x2a\x00\x2a\x00\x37\x00\x13\x00\x14\x00\x1b\x00\x32\x00\x33\x00\x25\x00\x1f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x01\x00\x28\x00\x2a\x00\x28\x00\x2b\x00\x21\x00\x2d\x00\x2a\x00\x2e\x00\x01\x00\x13\x00\x2a\x00\x2a\x00\x16\x00\x17\x00\x38\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x21\x00\x01\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x16\x00\x17\x00\x22\x00\x2c\x00\x2e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x13\x00\x26\x00\x24\x00\x16\x00\x17\x00\x13\x00\x19\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x2a\x00\x10\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x01\x00\x2a\x00\x29\x00\x2a\x00\x13\x00\x01\x00\x27\x00\x35\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x20\x00\x26\x00\x2a\x00\x29\x00\x2a\x00\x16\x00\x17\x00\x01\x00\x29\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x34\x00\x2e\x00\x36\x00\x37\x00\x38\x00\x04\x00\x05\x00\x06\x00\x07\x00\x22\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x29\x00\x24\x00\x2a\x00\x21\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x01\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00\x35\x00\x35\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x01\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x26\x00\x24\x00\x01\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x2a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00\x01\x00\x2a\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x26\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x26\x00\x26\x00\x24\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x26\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x01\x00\x26\x00\x22\x00\x22\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x24\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x24\x00\x22\x00\x21\x00\x2a\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x22\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x22\x00\x01\x00\x21\x00\x20\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x06\x00\x07\x00\x0e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x13\x00\x26\x00\x21\x00\x16\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x26\x00\x26\x00\x22\x00\x1f\x00\x20\x00\x24\x00\x13\x00\x08\x00\x26\x00\x16\x00\x17\x00\x21\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x26\x00\x26\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x26\x00\x2e\x00\x16\x00\x17\x00\x35\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x35\x00\x35\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x29\x00\x2e\x00\x16\x00\x17\x00\x01\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x01\x00\x01\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x01\x00\x01\x00\x16\x00\x17\x00\x01\x00\x19\x00\x10\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x13\x00\x13\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x13\x00\x13\x00\x16\x00\x17\x00\x10\x00\x19\x00\x13\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x13\x00\x17\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x17\x00\x13\x00\x16\x00\x17\x00\x12\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x12\x00\x12\x00\x21\x00\x12\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x0e\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\x13\x00\xff\xff\xff\xff\x16\x00\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x13\x00\x1f\x00\xff\xff\x16\x00\x17\x00\xff\xff\x19\x00\x16\x00\x17\x00\x1c\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\x2f\x00\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x23\x00\x2b\x00\x25\x00\xff\xff\xff\xff\x2f\x00\x30\x00\x31\x00\x2b\x00\x33\x00\x34\x00\xff\xff\x2f\x00\x30\x00\x31\x00\xff\xff\x33\x00\x34\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\xff\xff\x0f\x00\xff\xff\x11\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\xff\xff\x0f\x00\xff\xff\x11\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\xff\xff\x0f\x00\xff\xff\x11\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\xff\xff\x0f\x00\xff\xff\x11\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\xff\xff\x0f\x00\xff\xff\x11\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\xff\xff\x0f\x00\xff\xff\x11\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\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"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\x28\x00\x58\xff\x82\x00\x28\x00\x58\xff\x58\xff\x58\xff\x58\xff\xff\xff\x58\xff\x58\xff\x58\xff\x58\xff\x2e\x00\x32\x00\x58\xff\x28\x00\x58\xff\x58\xff\x58\xff\x58\xff\x58\xff\x28\x00\x2f\x00\xa8\x00\x31\x00\x2a\x00\x58\xff\x34\x00\x58\xff\x3f\x00\xf2\x00\x1c\x01\x80\x01\x58\xff\x82\x00\x81\x01\x58\xff\x58\xff\x0f\x01\x58\xff\x58\xff\x29\x00\x58\xff\x57\xff\xe9\x00\x58\xff\x57\xff\x57\xff\x57\xff\x57\xff\xb0\x00\x57\xff\x57\xff\x57\xff\x57\xff\x58\xff\xe9\x00\x57\xff\x28\x00\x57\xff\x57\xff\x57\xff\x57\xff\x57\xff\x83\x00\xa8\x00\x40\x00\x44\x00\x8d\x00\x57\xff\x28\x00\x57\xff\x86\x00\x85\x00\x17\x01\x18\x01\x57\xff\xed\x00\x28\x00\x57\xff\x57\xff\xe7\x00\x57\xff\x57\xff\x3f\x00\x57\xff\x57\xff\x28\x00\x57\xff\xea\x00\x28\x00\x58\xff\x43\x01\xe7\x00\x58\xff\x58\xff\x58\xff\x58\xff\x57\xff\x58\xff\x58\xff\x58\xff\x58\xff\x8f\x00\xec\x00\x58\xff\x28\x00\x58\xff\x58\xff\x58\xff\x58\xff\x58\xff\x90\x00\xec\x00\xed\x00\xef\x00\xec\x00\x58\xff\x1b\x01\x58\xff\x67\x00\x40\x00\x41\x00\xed\x00\x58\xff\x89\x00\xed\x00\x58\xff\x58\xff\x67\x00\x58\xff\x58\xff\x67\x00\x58\xff\x8a\x00\xe9\x00\x58\xff\x28\x00\x5e\x00\x78\x00\x39\x00\x30\x01\x60\x00\x3f\x00\xd3\x00\xe9\x00\x58\xff\x2c\x00\x3a\x00\x79\x00\xa8\x00\x7a\x00\x3b\x00\x3c\x00\x3d\x00\x31\x01\x3e\x00\x3f\x00\xd4\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x63\x00\x64\x00\x30\x00\xe9\x00\x65\x00\x19\x01\x7e\x00\x82\x00\x7f\x00\xe7\x00\xe2\x00\xe3\x00\x81\x00\x31\x00\x3d\x01\xe6\x00\xe4\x00\x40\x00\x90\x00\xe7\x00\x3b\x00\x3c\x00\x3d\x00\x4c\x00\x3e\x00\x3f\x00\xdc\x00\x82\x00\x68\x00\x28\x00\x5e\x00\x78\x00\x62\x01\x14\x01\x60\x00\x4b\x00\x63\x01\x83\x00\xce\x00\xcf\x00\xe7\x00\x79\x00\xaf\x00\x7a\x00\xd1\xff\x84\x00\x85\x00\x15\x01\xdd\x00\x57\x00\x4a\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xd0\x00\x55\x01\x65\x00\x39\x01\x7e\x00\x98\xff\x7f\x00\xe5\x00\x80\x00\x68\x00\x81\x00\x28\x00\x5e\x00\x78\x00\x3a\x00\x56\x01\x60\x00\x3a\x01\x3b\x00\x3c\x00\x3d\x00\x92\x00\x3e\x00\x3f\x00\x49\x00\x82\x00\x68\x00\xe9\x00\x46\x00\xbf\x00\x57\x00\xca\x00\x57\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\x31\x00\xe6\x00\x65\x00\xa8\x00\x7e\x00\xe7\x00\xdb\x00\x28\x00\xdc\x00\xa6\x00\x81\x00\x28\x00\x5e\x00\x78\x00\x3a\x00\x51\x01\x60\x00\x86\x01\x3b\x00\x3c\x00\x3d\x00\x63\x01\x3e\x00\x3f\x00\xf1\x00\xe7\x00\x68\x00\xe9\x00\xf0\x00\x45\x00\xa9\x00\xaa\x00\x28\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xa8\x00\x31\x00\x65\x00\x5d\xff\x7e\x00\x5d\xff\xdb\x00\x8a\x00\x80\x00\x8d\x00\x81\x00\x28\x00\x5e\x00\x5f\x00\x3a\x00\x14\x01\x60\x00\x8c\x01\x3b\x00\x3c\x00\x3d\x00\x63\x01\x3e\x00\x3f\x00\xaf\x00\xe7\x00\x68\x00\xa9\x00\x3b\x01\x15\x01\x25\x00\xf6\x00\x24\x01\xcc\x00\x68\x00\x61\x00\x62\x00\x7d\x00\x64\x00\x25\x01\x55\x00\x65\x00\x93\xff\x70\x01\x28\x00\x5e\x00\x78\x00\xc1\x00\xd2\x00\x60\x00\x25\x01\x2d\x00\x2e\x00\xcd\x00\xf7\x00\xf8\x00\xc2\x00\x57\x00\xe9\x00\x28\x00\x5e\x00\x78\x00\x56\x00\x57\x00\x60\x00\x68\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xac\xff\x58\x00\x65\x00\xf5\x00\x5b\x00\x5c\x00\x25\x00\xf6\x00\xc1\x00\x7b\x00\x7c\x00\x61\x00\x62\x00\x7d\x00\x64\x00\x68\x00\x8a\x00\x65\x00\x8b\x00\x28\x00\x5e\x00\x5f\x00\xd1\x00\x01\x01\x60\x00\x68\x00\x68\x00\x28\x00\x5e\x00\x5f\x00\x5c\x01\xf8\x00\x60\x00\x03\x00\x02\x00\x0a\x01\x75\x00\x76\x00\x57\x00\xca\x00\xbd\x00\x68\x00\xbe\x00\x61\x00\x62\x00\x63\x00\x64\x00\xc1\x00\x57\x00\x65\x00\x11\x01\x61\x00\x62\x00\x63\x00\x64\x00\x66\x00\xe3\x00\x65\x00\x8a\x00\xaf\x00\xac\x00\x67\x00\x68\x00\x66\x00\x12\x01\x28\x00\x5e\x00\x5f\x00\xb4\x00\x67\x00\x60\x00\xdc\x00\x8a\x00\x68\x00\xa6\x00\x28\x00\x68\x00\x28\x00\x28\x00\x5e\x00\x5f\x00\x68\x00\xb3\x00\x60\x00\xbf\x00\x57\x00\x9e\x00\xdf\x00\x9f\x00\x61\x00\x62\x00\x7d\x00\x64\x00\xdd\x00\x57\x00\x65\x00\xff\x00\x75\x00\x76\x00\x57\x00\xb2\x00\xc1\x00\x61\x00\x62\x00\x63\x00\x64\x00\x68\x00\x28\x00\x65\x00\xc7\x00\x28\x00\x5e\x00\x5f\x00\xaf\x00\x66\x00\x60\x00\x8a\x00\x3a\x00\x1f\x01\x68\x00\x67\x00\x3b\x00\x3c\x00\x3d\x00\xae\x00\x3e\x00\x3f\x00\x28\x00\xf2\x00\x57\x00\xac\x00\x8a\x00\x68\x00\x6d\x01\x61\x00\x62\x00\x7d\x00\x64\x00\x28\x00\x55\x00\x65\x00\x58\xff\x11\x00\x12\x00\x13\x00\x14\x00\xc1\x00\x15\x00\x16\x00\x17\x00\x18\x00\x25\x00\x26\x00\x25\x00\x4c\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xa6\x00\x56\x00\x57\x00\xa3\x00\x68\x00\x25\x00\xb6\x00\x58\xff\xb4\x00\xb5\x00\xa5\x00\x57\x01\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x58\xff\x58\xff\x28\x00\x58\xff\x2f\x01\x2e\x01\x58\xff\x27\x01\x31\x01\x2d\x01\x2c\x01\x28\x00\xfa\x00\x28\x01\x22\x01\x69\x00\x6a\x00\xfe\xff\x6b\x00\x9b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x1f\x01\x28\x00\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\xdf\x00\x57\x00\x93\x00\x94\x00\x1e\x01\x19\x01\x1c\x01\x95\x00\x96\x00\x6e\x00\x6f\x00\x58\x00\xe0\x00\x5a\x00\x5b\x00\x5c\x00\x55\x00\x16\x01\x13\x01\x69\x00\x6a\x00\x55\x00\x6b\x00\xc4\xff\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x10\x01\x0e\x01\x70\x00\xb9\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\xdf\x00\x57\x00\x55\x00\x28\x00\xa3\x00\x56\x00\x57\x00\x55\x00\x28\x00\x81\x00\x96\xff\x58\x00\xe0\x00\x5a\x00\x5b\x00\x5c\x00\x58\x00\xe0\x00\x5a\x00\x5b\x00\x5c\x00\xf1\x00\xfc\x00\xfa\x00\x56\x00\x57\x00\x93\x00\x94\x00\x28\x00\x56\x00\x57\x00\xa3\x00\x96\x00\x6e\x00\x6f\x00\x58\x00\xf4\x00\x5a\x00\x5b\x00\x5c\x00\x58\x00\x5b\x01\x46\x01\x5b\x00\x5c\x00\x11\x00\x12\x00\x13\x00\x14\x00\x5a\x01\x15\x00\x16\x00\x17\x00\x18\x00\x59\x01\x53\x01\x54\x01\x52\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x28\x00\x15\x00\x16\x00\x17\x00\x18\x00\x40\x01\x98\xff\x97\xff\x88\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x28\x00\x15\x00\x16\x00\x17\x00\x18\x00\x43\x01\x41\x01\x28\x00\x55\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x3d\x01\x15\x00\x16\x00\x17\x00\x18\x00\x40\x01\x28\x00\x38\x01\x54\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x78\x01\x15\x00\x16\x00\x17\x00\x18\x00\x77\x01\x76\x01\x75\x01\x53\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x71\x01\x15\x00\x16\x00\x17\x00\x18\x00\x28\x00\x6d\x01\x6c\x01\x52\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x6b\x01\x15\x00\x16\x00\x17\x00\x18\x00\x6a\x01\x69\x01\x25\x00\x66\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\x68\x01\x15\x00\x16\x00\x17\x00\x18\x00\x67\x01\x28\x00\x23\x00\x5e\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x12\x00\x13\x00\x14\x00\xc3\x00\x15\x00\x16\x00\x17\x00\x18\x00\x35\x00\x85\x01\x21\x00\xc4\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x84\x01\x83\x01\x82\x01\x37\x00\xc5\x00\x7f\x01\x9a\x00\x40\x01\x7b\x01\x69\x00\x6a\x00\x1f\x00\x6b\x00\x9b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x7a\x01\x79\x01\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\xfc\x00\x89\x01\x88\x01\x69\x00\x6a\x00\xbd\xff\x6b\x00\xfd\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\xbc\xff\xbb\xff\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x28\x01\x8c\x01\x8a\x01\x69\x00\x6a\x00\x02\x00\x6b\x00\x29\x01\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x50\x00\x4f\x00\x70\x00\xb9\x00\xba\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x4e\x00\x4d\x00\x69\x00\x6a\x00\x47\x00\x6b\x00\xa1\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x99\x00\x92\x00\x70\x00\xe4\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x99\x00\x0c\x01\x69\x00\x6a\x00\x0b\x01\x6b\x00\x09\x01\x6c\x00\x6d\x00\x6e\x00\x6f\x00\xf3\x00\x02\x01\x70\x00\xc7\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x9a\x00\x01\x01\x4e\x01\x69\x00\x6a\x00\x44\x01\x6b\x00\x9b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x3e\x01\x7c\x01\x70\x00\x7b\x01\x9c\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x28\x01\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x29\x01\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x9c\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\xb9\x00\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x4f\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x47\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x45\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x36\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x5b\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x85\x01\xc8\x00\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\xbb\x00\x00\x00\x9f\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xbc\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\xb7\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\xbb\x00\x00\x00\x9f\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xfe\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x48\x01\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x34\x01\x9d\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xaf\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\xa7\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x2a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x22\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x20\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x08\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x07\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x06\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x03\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x57\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4d\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4c\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4b\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x4a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x49\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x41\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x3a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x35\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x33\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x32\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x31\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x73\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x72\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x71\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x6e\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x64\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x61\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x60\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x5f\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x32\x01\x72\x00\x73\x00\x74\x00\x75\x00\x5e\x01\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x7d\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x8a\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\x69\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x8d\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x57\x00\x68\x00\x00\x00\x00\x00\xd4\x00\xd5\x00\x00\x00\xd6\x00\x00\x00\x34\x00\xd7\x00\x6e\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x36\x00\x00\x00\xd8\x00\x73\x00\xd9\x00\x75\x00\x76\x00\x57\x00\x68\x00\x37\x00\x00\x00\xd4\x00\xd5\x00\x00\x00\xd6\x00\x93\x00\x94\x00\xd7\x00\x6e\x00\x6f\x00\xa0\x00\x96\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x04\x01\x73\x00\x05\x01\x75\x00\x76\x00\x57\x00\xd3\x00\x00\x00\x7e\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3a\x00\xa8\xff\xd4\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3e\x00\x3f\x00\x7e\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x3a\x00\xa9\xff\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3e\x00\x3f\x00\x7e\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x81\x00\x00\x00\x00\x00\x43\x00\x3a\x00\x44\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3a\x00\x3e\x00\x3f\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3e\x00\x3f\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x23\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x21\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x1f\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x1d\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x93\x00\x94\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x96\x00\x6e\x00\x6f\x00\x93\x00\x94\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x96\x00\x6e\x00\x6f\x00\x93\x00\x94\x00\x00\x00\x00\x00\x00\x00\x25\x01\x96\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (1, 179) [- (1 , happyReduce_1),- (2 , happyReduce_2),- (3 , happyReduce_3),- (4 , happyReduce_4),- (5 , happyReduce_5),- (6 , happyReduce_6),- (7 , happyReduce_7),- (8 , happyReduce_8),- (9 , happyReduce_9),- (10 , happyReduce_10),- (11 , happyReduce_11),- (12 , happyReduce_12),- (13 , happyReduce_13),- (14 , happyReduce_14),- (15 , happyReduce_15),- (16 , happyReduce_16),- (17 , happyReduce_17),- (18 , happyReduce_18),- (19 , happyReduce_19),- (20 , happyReduce_20),- (21 , happyReduce_21),- (22 , happyReduce_22),- (23 , happyReduce_23),- (24 , happyReduce_24),- (25 , happyReduce_25),- (26 , happyReduce_26),- (27 , happyReduce_27),- (28 , happyReduce_28),- (29 , happyReduce_29),- (30 , happyReduce_30),- (31 , happyReduce_31),- (32 , happyReduce_32),- (33 , happyReduce_33),- (34 , happyReduce_34),- (35 , happyReduce_35),- (36 , happyReduce_36),- (37 , happyReduce_37),- (38 , happyReduce_38),- (39 , happyReduce_39),- (40 , happyReduce_40),- (41 , happyReduce_41),- (42 , happyReduce_42),- (43 , happyReduce_43),- (44 , happyReduce_44),- (45 , happyReduce_45),- (46 , happyReduce_46),- (47 , happyReduce_47),- (48 , happyReduce_48),- (49 , happyReduce_49),- (50 , happyReduce_50),- (51 , happyReduce_51),- (52 , happyReduce_52),- (53 , happyReduce_53),- (54 , happyReduce_54),- (55 , happyReduce_55),- (56 , happyReduce_56),- (57 , happyReduce_57),- (58 , happyReduce_58),- (59 , happyReduce_59),- (60 , happyReduce_60),- (61 , happyReduce_61),- (62 , happyReduce_62),- (63 , happyReduce_63),- (64 , happyReduce_64),- (65 , happyReduce_65),- (66 , happyReduce_66),- (67 , happyReduce_67),- (68 , happyReduce_68),- (69 , happyReduce_69),- (70 , happyReduce_70),- (71 , happyReduce_71),- (72 , happyReduce_72),- (73 , happyReduce_73),- (74 , happyReduce_74),- (75 , happyReduce_75),- (76 , happyReduce_76),- (77 , happyReduce_77),- (78 , happyReduce_78),- (79 , happyReduce_79),- (80 , happyReduce_80),- (81 , happyReduce_81),- (82 , happyReduce_82),- (83 , happyReduce_83),- (84 , happyReduce_84),- (85 , happyReduce_85),- (86 , happyReduce_86),- (87 , happyReduce_87),- (88 , happyReduce_88),- (89 , happyReduce_89),- (90 , happyReduce_90),- (91 , happyReduce_91),- (92 , happyReduce_92),- (93 , happyReduce_93),- (94 , happyReduce_94),- (95 , happyReduce_95),- (96 , happyReduce_96),- (97 , happyReduce_97),- (98 , happyReduce_98),- (99 , happyReduce_99),- (100 , happyReduce_100),- (101 , happyReduce_101),- (102 , happyReduce_102),- (103 , happyReduce_103),- (104 , happyReduce_104),- (105 , happyReduce_105),- (106 , happyReduce_106),- (107 , happyReduce_107),- (108 , happyReduce_108),- (109 , happyReduce_109),- (110 , happyReduce_110),- (111 , happyReduce_111),- (112 , happyReduce_112),- (113 , happyReduce_113),- (114 , happyReduce_114),- (115 , happyReduce_115),- (116 , happyReduce_116),- (117 , happyReduce_117),- (118 , happyReduce_118),- (119 , happyReduce_119),- (120 , happyReduce_120),- (121 , happyReduce_121),- (122 , happyReduce_122),- (123 , happyReduce_123),- (124 , happyReduce_124),- (125 , happyReduce_125),- (126 , happyReduce_126),- (127 , happyReduce_127),- (128 , happyReduce_128),- (129 , happyReduce_129),- (130 , happyReduce_130),- (131 , happyReduce_131),- (132 , happyReduce_132),- (133 , happyReduce_133),- (134 , happyReduce_134),- (135 , happyReduce_135),- (136 , happyReduce_136),- (137 , happyReduce_137),- (138 , happyReduce_138),- (139 , happyReduce_139),- (140 , happyReduce_140),- (141 , happyReduce_141),- (142 , happyReduce_142),- (143 , happyReduce_143),- (144 , happyReduce_144),- (145 , happyReduce_145),- (146 , happyReduce_146),- (147 , happyReduce_147),- (148 , happyReduce_148),- (149 , happyReduce_149),- (150 , happyReduce_150),- (151 , happyReduce_151),- (152 , happyReduce_152),- (153 , happyReduce_153),- (154 , happyReduce_154),- (155 , happyReduce_155),- (156 , happyReduce_156),- (157 , happyReduce_157),- (158 , happyReduce_158),- (159 , happyReduce_159),- (160 , happyReduce_160),- (161 , happyReduce_161),- (162 , happyReduce_162),- (163 , happyReduce_163),- (164 , happyReduce_164),- (165 , happyReduce_165),- (166 , happyReduce_166),- (167 , happyReduce_167),- (168 , happyReduce_168),- (169 , happyReduce_169),- (170 , happyReduce_170),- (171 , happyReduce_171),- (172 , happyReduce_172),- (173 , happyReduce_173),- (174 , happyReduce_174),- (175 , happyReduce_175),- (176 , happyReduce_176),- (177 , happyReduce_177),- (178 , happyReduce_178),- (179 , happyReduce_179)- ]--happy_n_terms = 57 :: Prelude.Int-happy_n_nonterms = 61 :: Prelude.Int--happyReduce_1 = happySpecReduce_1 0# happyReduction_1-happyReduction_1 happy_x_1- = case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) -> - happyIn4- (reverse happy_var_1- )}--happyReduce_2 = happySpecReduce_0 1# happyReduction_2-happyReduction_2 = happyIn5- ([]- )--happyReduce_3 = happySpecReduce_2 1# happyReduction_3-happyReduction_3 happy_x_2- happy_x_1- = case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) -> - case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> - happyIn5- (happy_var_2 : happy_var_1- )}}--happyReduce_4 = happySpecReduce_1 2# happyReduction_4-happyReduction_4 happy_x_1- = case happyOut7 happy_x_1 of { (HappyWrap7 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_5 = happySpecReduce_1 2# happyReduction_5-happyReduction_5 happy_x_1- = case happyOut9 happy_x_1 of { (HappyWrap9 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_6 = happySpecReduce_1 2# happyReduction_6-happyReduction_6 happy_x_1- = case happyOut8 happy_x_1 of { (HappyWrap8 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_7 = happySpecReduce_1 2# happyReduction_7-happyReduction_7 happy_x_1- = case happyOut10 happy_x_1 of { (HappyWrap10 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_8 = happySpecReduce_1 2# happyReduction_8-happyReduction_8 happy_x_1- = case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_9 = happySpecReduce_1 2# happyReduction_9-happyReduction_9 happy_x_1- = case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_10 = happySpecReduce_1 2# happyReduction_10-happyReduction_10 happy_x_1- = case happyOut15 happy_x_1 of { (HappyWrap15 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_11 = happySpecReduce_1 2# happyReduction_11-happyReduction_11 happy_x_1- = case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_12 = happySpecReduce_1 2# happyReduction_12-happyReduction_12 happy_x_1- = case happyOut17 happy_x_1 of { (HappyWrap17 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_13 = happySpecReduce_1 2# happyReduction_13-happyReduction_13 happy_x_1- = case happyOut21 happy_x_1 of { (HappyWrap21 happy_var_1) -> - happyIn6- (happy_var_1- )}--happyReduce_14 = happySpecReduce_2 2# happyReduction_14-happyReduction_14 happy_x_2- happy_x_1- = case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> - happyIn6- (C.OverrideDecl Impredicative [happy_var_2]- )}--happyReduce_15 = happyReduce 4# 2# happyReduction_15-happyReduction_15 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> - happyIn6- (C.OverrideDecl Impredicative happy_var_3- ) `HappyStk` happyRest}--happyReduce_16 = happySpecReduce_2 2# happyReduction_16-happyReduction_16 happy_x_2- happy_x_1- = case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> - happyIn6- (C.OverrideDecl Fail [happy_var_2]- )}--happyReduce_17 = happyReduce 4# 2# happyReduction_17-happyReduction_17 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> - happyIn6- (C.OverrideDecl Fail happy_var_3- ) `HappyStk` happyRest}--happyReduce_18 = happySpecReduce_2 2# happyReduction_18-happyReduction_18 happy_x_2- happy_x_1- = case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> - happyIn6- (C.OverrideDecl Check [happy_var_2]- )}--happyReduce_19 = happyReduce 4# 2# happyReduction_19-happyReduction_19 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> - happyIn6- (C.OverrideDecl Check happy_var_3- ) `HappyStk` happyRest}--happyReduce_20 = happySpecReduce_2 2# happyReduction_20-happyReduction_20 happy_x_2- happy_x_1- = case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> - happyIn6- (C.OverrideDecl TrustMe [happy_var_2]- )}--happyReduce_21 = happyReduce 4# 2# happyReduction_21-happyReduction_21 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> - happyIn6- (C.OverrideDecl TrustMe happy_var_3- ) `HappyStk` happyRest}--happyReduce_22 = happySpecReduce_2 3# happyReduction_22-happyReduction_22 happy_x_2- happy_x_1- = case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) -> - happyIn7- (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.Ind tel t cs fs- )}--happyReduce_23 = happySpecReduce_3 4# happyReduction_23-happyReduction_23 happy_x_3- happy_x_2- happy_x_1- = case happyOut12 happy_x_3 of { (HappyWrap12 happy_var_3) -> - happyIn8- (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.Ind tel t cs fs- )}--happyReduce_24 = happySpecReduce_2 5# happyReduction_24-happyReduction_24 happy_x_2- happy_x_1- = case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) -> - happyIn9- (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.CoInd tel t cs fs- )}--happyReduce_25 = happySpecReduce_3 6# happyReduction_25-happyReduction_25 happy_x_3- happy_x_2- happy_x_1- = case happyOut12 happy_x_3 of { (HappyWrap12 happy_var_3) -> - happyIn10- (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.CoInd tel t cs fs- )}--happyReduce_26 = happySpecReduce_2 7# happyReduction_26-happyReduction_26 happy_x_2- happy_x_1- = case happyOut13 happy_x_2 of { (HappyWrap13 happy_var_2) -> - happyIn11- (let (n,tel,t,c,fs) = happy_var_2 in C.RecordDecl n tel t c fs- )}--happyReduce_27 = happyReduce 8# 8# happyReduction_27-happyReduction_27 (happy_x_8 `HappyStk`- happy_x_7 `HappyStk`- happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - case happyOut51 happy_x_6 of { (HappyWrap51 happy_var_6) -> - case happyOut22 happy_x_8 of { (HappyWrap22 happy_var_8) -> - happyIn12- ((happy_var_1, happy_var_2, happy_var_4, reverse happy_var_6, happy_var_8)- ) `HappyStk` happyRest}}}}}--happyReduce_28 = happyReduce 6# 8# happyReduction_28-happyReduction_28 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> - case happyOut51 happy_x_4 of { (HappyWrap51 happy_var_4) -> - case happyOut22 happy_x_6 of { (HappyWrap22 happy_var_6) -> - happyIn12- ((happy_var_1, happy_var_2, C.set0, reverse happy_var_4, happy_var_6)- ) `HappyStk` happyRest}}}}--happyReduce_29 = happyReduce 8# 9# happyReduction_29-happyReduction_29 (happy_x_8 `HappyStk`- happy_x_7 `HappyStk`- happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - case happyOut50 happy_x_6 of { (HappyWrap50 happy_var_6) -> - case happyOut22 happy_x_8 of { (HappyWrap22 happy_var_8) -> - happyIn13- ((happy_var_1, happy_var_2, happy_var_4, happy_var_6, happy_var_8)- ) `HappyStk` happyRest}}}}}--happyReduce_30 = happyReduce 6# 9# happyReduction_30-happyReduction_30 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> - case happyOut50 happy_x_4 of { (HappyWrap50 happy_var_4) -> - case happyOut22 happy_x_6 of { (HappyWrap22 happy_var_6) -> - happyIn13- ((happy_var_1, happy_var_2, C.set0, happy_var_4, happy_var_6)- ) `HappyStk` happyRest}}}}--happyReduce_31 = happyReduce 5# 10# happyReduction_31-happyReduction_31 (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_2 of { (HappyWrap49 happy_var_2) -> - case happyOut61 happy_x_4 of { (HappyWrap61 happy_var_4) -> - happyIn14- (C.FunDecl A.Ind happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_32 = happyReduce 5# 11# happyReduction_32-happyReduction_32 (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_2 of { (HappyWrap49 happy_var_2) -> - case happyOut61 happy_x_4 of { (HappyWrap61 happy_var_4) -> - happyIn15- (C.FunDecl A.CoInd happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_33 = happyReduce 4# 12# happyReduction_33-happyReduction_33 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut5 happy_x_3 of { (HappyWrap5 happy_var_3) -> - happyIn16- (C.MutualDecl (reverse happy_var_3)- ) `HappyStk` happyRest}--happyReduce_34 = happySpecReduce_3 13# happyReduction_34-happyReduction_34 happy_x_3- happy_x_2- happy_x_1- = case happyOut19 happy_x_1 of { (HappyWrap19 happy_var_1) -> - case happyOut18 happy_x_3 of { (HappyWrap18 happy_var_3) -> - happyIn17- (C.LetDecl happy_var_1 happy_var_3- )}}--happyReduce_35 = happyReduce 5# 14# happyReduction_35-happyReduction_35 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut35 happy_x_1 of { (HappyWrap35 happy_var_1) -> - case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - case happyOut20 happy_x_3 of { (HappyWrap20 happy_var_3) -> - case happyOut38 happy_x_5 of { (HappyWrap38 happy_var_5) -> - happyIn18- (let (dec,n) = happy_var_1 in C.LetDef dec n happy_var_2 happy_var_3 happy_var_5- ) `HappyStk` happyRest}}}}--happyReduce_36 = happySpecReduce_0 15# happyReduction_36-happyReduction_36 = happyIn19- (False- )--happyReduce_37 = happySpecReduce_1 15# happyReduction_37-happyReduction_37 happy_x_1- = happyIn19- (True- )--happyReduce_38 = happySpecReduce_0 16# happyReduction_38-happyReduction_38 = happyIn20- (Nothing- )--happyReduce_39 = happySpecReduce_2 16# happyReduction_39-happyReduction_39 happy_x_2- happy_x_1- = case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) -> - happyIn20- (Just happy_var_2- )}--happyReduce_40 = happyReduce 4# 17# happyReduction_40-happyReduction_40 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> - case happyOut57 happy_x_4 of { (HappyWrap57 happy_var_4) -> - happyIn21- (C.PatternDecl (head happy_var_2) (tail happy_var_2) happy_var_4- ) `HappyStk` happyRest}}--happyReduce_41 = happySpecReduce_0 18# happyReduction_41-happyReduction_41 = happyIn22- ([]- )--happyReduce_42 = happySpecReduce_2 18# happyReduction_42-happyReduction_42 happy_x_2- happy_x_1- = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - happyIn22- (happy_var_2- )}--happyReduce_43 = happySpecReduce_1 19# happyReduction_43-happyReduction_43 happy_x_1- = case happyOutTok happy_x_1 of { (T.Id happy_var_1 _) -> - happyIn23- (C.Name happy_var_1- )}--happyReduce_44 = happySpecReduce_1 20# happyReduction_44-happyReduction_44 happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - happyIn24- ([happy_var_1]- )}--happyReduce_45 = happySpecReduce_2 20# happyReduction_45-happyReduction_45 happy_x_2- happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> - happyIn24- (happy_var_1 : happy_var_2- )}}--happyReduce_46 = happySpecReduce_1 21# happyReduction_46-happyReduction_46 happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - happyIn25- ([happy_var_1]- )}--happyReduce_47 = happySpecReduce_3 21# happyReduction_47-happyReduction_47 happy_x_3- happy_x_2- happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) -> - happyIn25- (happy_var_1 : happy_var_3- )}}--happyReduce_48 = happySpecReduce_1 22# happyReduction_48-happyReduction_48 happy_x_1- = happyIn26- (SPos- )--happyReduce_49 = happySpecReduce_1 22# happyReduction_49-happyReduction_49 happy_x_1- = happyIn26- (Pos- )--happyReduce_50 = happySpecReduce_1 22# happyReduction_50-happyReduction_50 happy_x_1- = happyIn26- (Neg- )--happyReduce_51 = happySpecReduce_1 22# happyReduction_51-happyReduction_51 happy_x_1- = happyIn26- (Const- )--happyReduce_52 = happySpecReduce_1 22# happyReduction_52-happyReduction_52 happy_x_1- = happyIn26- (Param- )--happyReduce_53 = happySpecReduce_1 22# happyReduction_53-happyReduction_53 happy_x_1- = happyIn26- (Rec- )--happyReduce_54 = happySpecReduce_2 23# happyReduction_54-happyReduction_54 happy_x_2- happy_x_1- = case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> - happyIn27- (A.Measure happy_var_2- )}--happyReduce_55 = happySpecReduce_2 24# happyReduction_55-happyReduction_55 happy_x_2- happy_x_1- = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - happyIn28- ([happy_var_1]- )}--happyReduce_56 = happySpecReduce_3 24# happyReduction_56-happyReduction_56 happy_x_3- happy_x_2- happy_x_1- = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - case happyOut28 happy_x_3 of { (HappyWrap28 happy_var_3) -> - happyIn28- (happy_var_1 : happy_var_3- )}}--happyReduce_57 = happySpecReduce_3 25# happyReduction_57-happyReduction_57 happy_x_3- happy_x_2- happy_x_1- = case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> - case happyOut27 happy_x_3 of { (HappyWrap27 happy_var_3) -> - happyIn29- (A.Bound A.Lt happy_var_1 happy_var_3- )}}--happyReduce_58 = happySpecReduce_3 25# happyReduction_58-happyReduction_58 happy_x_3- happy_x_2- happy_x_1- = case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> - case happyOut27 happy_x_3 of { (HappyWrap27 happy_var_3) -> - happyIn29- (A.Bound A.Le happy_var_1 happy_var_3- )}}--happyReduce_59 = happySpecReduce_1 26# happyReduction_59-happyReduction_59 happy_x_1- = case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) -> - happyIn30- (let { f (C.Ident (C.QName x)) = x- ; f e = error ("not an identifier: " ++ C.prettyExpr e)- } in map f happy_var_1- )}--happyReduce_60 = happySpecReduce_0 27# happyReduction_60-happyReduction_60 = happyIn31- ([]- )--happyReduce_61 = happySpecReduce_2 27# happyReduction_61-happyReduction_61 happy_x_2- happy_x_1- = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> - case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - happyIn31- (happy_var_1 : happy_var_2- )}}--happyReduce_62 = happySpecReduce_2 27# happyReduction_62-happyReduction_62 happy_x_2- happy_x_1- = case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> - case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - happyIn31- (C.TMeasure happy_var_1 : happy_var_2- )}}--happyReduce_63 = happyReduce 5# 28# happyReduction_63-happyReduction_63 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut30 happy_x_2 of { (HappyWrap30 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn32- (C.TBind (Dec Default) happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_64 = happyReduce 5# 28# 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 happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn32- (C.TBounded A.defaultDec happy_var_2 A.Lt happy_var_4- ) `HappyStk` happyRest}}--happyReduce_65 = happyReduce 5# 28# happyReduction_65-happyReduction_65 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn32- (C.TBounded A.defaultDec happy_var_2 A.Le happy_var_4- ) `HappyStk` happyRest}}--happyReduce_66 = happyReduce 6# 28# happyReduction_66-happyReduction_66 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut30 happy_x_3 of { (HappyWrap30 happy_var_3) -> - case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> - happyIn32- (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_67 = happyReduce 6# 28# happyReduction_67-happyReduction_67 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> - case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> - happyIn32- (C.TBounded (Dec happy_var_1) happy_var_3 A.Lt happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_68 = happyReduce 6# 28# happyReduction_68-happyReduction_68 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> - case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> - happyIn32- (C.TBounded (Dec happy_var_1) happy_var_3 A.Le happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_69 = happySpecReduce_1 28# happyReduction_69-happyReduction_69 happy_x_1- = case happyOut33 happy_x_1 of { (HappyWrap33 happy_var_1) -> - happyIn32- (happy_var_1- )}--happyReduce_70 = happySpecReduce_1 28# happyReduction_70-happyReduction_70 happy_x_1- = case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> - happyIn32- (happy_var_1- )}--happyReduce_71 = happyReduce 5# 29# 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 happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn33- (C.TBind A.irrelevantDec happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_72 = happyReduce 5# 29# happyReduction_72-happyReduction_72 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn33- (C.TBounded A.irrelevantDec happy_var_2 A.Lt happy_var_4- ) `HappyStk` happyRest}}--happyReduce_73 = happyReduce 5# 29# happyReduction_73-happyReduction_73 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn33- (C.TBounded A.irrelevantDec happy_var_2 A.Le happy_var_4- ) `HappyStk` happyRest}}--happyReduce_74 = happyReduce 5# 30# happyReduction_74-happyReduction_74 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn34- (C.TBind A.Hidden happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_75 = happyReduce 5# 30# happyReduction_75-happyReduction_75 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn34- (C.TBounded A.Hidden happy_var_2 A.Lt happy_var_4- ) `HappyStk` happyRest}}--happyReduce_76 = happyReduce 5# 30# happyReduction_76-happyReduction_76 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn34- (C.TBounded A.Hidden happy_var_2 A.Le happy_var_4- ) `HappyStk` happyRest}}--happyReduce_77 = happySpecReduce_1 31# happyReduction_77-happyReduction_77 happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - happyIn35- ((A.defaultDec , happy_var_1)- )}--happyReduce_78 = happySpecReduce_3 31# happyReduction_78-happyReduction_78 happy_x_3- happy_x_2- happy_x_1- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - happyIn35- ((A.irrelevantDec, happy_var_2)- )}--happyReduce_79 = happySpecReduce_2 31# happyReduction_79-happyReduction_79 happy_x_2- happy_x_1- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - happyIn35- ((Dec happy_var_1 , happy_var_2)- )}}--happyReduce_80 = happySpecReduce_1 32# happyReduction_80-happyReduction_80 happy_x_1- = case happyOut18 happy_x_1 of { (HappyWrap18 happy_var_1) -> - happyIn36- (happy_var_1- )}--happyReduce_81 = happyReduce 7# 32# happyReduction_81-happyReduction_81 (happy_x_7 `HappyStk`- happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - case happyOut40 happy_x_7 of { (HappyWrap40 happy_var_7) -> - happyIn36- (C.LetDef A.irrelevantDec happy_var_2 [] (Just happy_var_4) happy_var_7- ) `HappyStk` happyRest}}}--happyReduce_82 = happyReduce 8# 32# happyReduction_82-happyReduction_82 (happy_x_8 `HappyStk`- happy_x_7 `HappyStk`- happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> - case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> - case happyOut40 happy_x_8 of { (HappyWrap40 happy_var_8) -> - happyIn36- (C.LetDef (Dec happy_var_1) happy_var_3 [] (Just happy_var_5) happy_var_8- ) `HappyStk` happyRest}}}}--happyReduce_83 = happySpecReduce_1 33# happyReduction_83-happyReduction_83 happy_x_1- = case happyOut41 happy_x_1 of { (HappyWrap41 happy_var_1) -> - happyIn37- ([C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1]- )}--happyReduce_84 = happySpecReduce_3 33# happyReduction_84-happyReduction_84 happy_x_3- happy_x_2- happy_x_1- = case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) -> - happyIn37- ([C.TBind A.irrelevantDec [] happy_var_2]- )}--happyReduce_85 = happySpecReduce_2 33# happyReduction_85-happyReduction_85 happy_x_2- happy_x_1- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> - happyIn37- ([C.TBind (Dec happy_var_1) [] happy_var_2]- )}}--happyReduce_86 = happySpecReduce_1 33# happyReduction_86-happyReduction_86 happy_x_1- = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> - happyIn37- ([happy_var_1]- )}--happyReduce_87 = happySpecReduce_1 33# happyReduction_87-happyReduction_87 happy_x_1- = case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> - happyIn37- ([C.TMeasure happy_var_1]- )}--happyReduce_88 = happySpecReduce_1 33# happyReduction_88-happyReduction_88 happy_x_1- = case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> - happyIn37- ([C.TBound happy_var_1]- )}--happyReduce_89 = happySpecReduce_1 33# happyReduction_89-happyReduction_89 happy_x_1- = case happyOut31 happy_x_1 of { (HappyWrap31 happy_var_1) -> - happyIn37- (happy_var_1- )}--happyReduce_90 = happySpecReduce_1 34# happyReduction_90-happyReduction_90 happy_x_1- = case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) -> - happyIn38- (foldr1 C.Pair happy_var_1- )}--happyReduce_91 = happySpecReduce_1 35# happyReduction_91-happyReduction_91 happy_x_1- = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - happyIn39- ([happy_var_1]- )}--happyReduce_92 = happySpecReduce_3 35# happyReduction_92-happyReduction_92 happy_x_3- happy_x_2- happy_x_1- = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - case happyOut39 happy_x_3 of { (HappyWrap39 happy_var_3) -> - happyIn39- (happy_var_1 : happy_var_3- )}}--happyReduce_93 = happySpecReduce_3 36# happyReduction_93-happyReduction_93 happy_x_3- happy_x_2- happy_x_1- = case happyOut37 happy_x_1 of { (HappyWrap37 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn40- (C.Quant A.Pi happy_var_1 happy_var_3- )}}--happyReduce_94 = happyReduce 4# 36# happyReduction_94-happyReduction_94 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> - case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> - happyIn40- (foldr C.Lam happy_var_4 happy_var_2- ) `HappyStk` happyRest}}--happyReduce_95 = happyReduce 4# 36# happyReduction_95-happyReduction_95 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut36 happy_x_2 of { (HappyWrap36 happy_var_2) -> - case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> - happyIn40- (C.LLet happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_96 = happyReduce 6# 36# happyReduction_96-happyReduction_96 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> - case happyOut20 happy_x_3 of { (HappyWrap20 happy_var_3) -> - case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> - happyIn40- (C.Case happy_var_2 happy_var_3 happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_97 = happySpecReduce_1 36# happyReduction_97-happyReduction_97 happy_x_1- = case happyOut41 happy_x_1 of { (HappyWrap41 happy_var_1) -> - happyIn40- (happy_var_1- )}--happyReduce_98 = happySpecReduce_3 36# happyReduction_98-happyReduction_98 happy_x_3- happy_x_2- happy_x_1- = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn40- (C.Plus happy_var_1 happy_var_3- )}}--happyReduce_99 = happySpecReduce_3 36# happyReduction_99-happyReduction_99 happy_x_3- happy_x_2- happy_x_1- = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn40- (C.App happy_var_1 [happy_var_3]- )}}--happyReduce_100 = happySpecReduce_3 36# happyReduction_100-happyReduction_100 happy_x_3- happy_x_2- happy_x_1- = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn40- (C.App happy_var_3 [happy_var_1]- )}}--happyReduce_101 = happySpecReduce_1 37# happyReduction_101-happyReduction_101 happy_x_1- = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - happyIn41- (happy_var_1- )}--happyReduce_102 = happySpecReduce_3 37# happyReduction_102-happyReduction_102 happy_x_3- happy_x_2- happy_x_1- = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> - case happyOut41 happy_x_3 of { (HappyWrap41 happy_var_3) -> - happyIn41- (C.Quant A.Sigma [happy_var_1] happy_var_3- )}}--happyReduce_103 = happySpecReduce_1 38# happyReduction_103-happyReduction_103 happy_x_1- = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - happyIn42- (C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1- )}--happyReduce_104 = happySpecReduce_3 38# happyReduction_104-happyReduction_104 happy_x_3- happy_x_2- happy_x_1- = case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) -> - happyIn42- (C.TBind A.irrelevantDec [] happy_var_2- )}--happyReduce_105 = happySpecReduce_2 38# happyReduction_105-happyReduction_105 happy_x_2- happy_x_1- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut43 happy_x_2 of { (HappyWrap43 happy_var_2) -> - happyIn42- (C.TBind (Dec happy_var_1) [] happy_var_2- )}}--happyReduce_106 = happySpecReduce_1 38# happyReduction_106-happyReduction_106 happy_x_1- = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> - happyIn42- (happy_var_1- )}--happyReduce_107 = happySpecReduce_1 38# happyReduction_107-happyReduction_107 happy_x_1- = case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) -> - happyIn42- (C.TMeasure happy_var_1- )}--happyReduce_108 = happySpecReduce_1 38# happyReduction_108-happyReduction_108 happy_x_1- = case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> - happyIn42- (C.TBound happy_var_1- )}--happyReduce_109 = happySpecReduce_1 39# happyReduction_109-happyReduction_109 happy_x_1- = case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> - happyIn43- (let (f : args) = reverse happy_var_1 in- if null args then f else C.App f args- )}--happyReduce_110 = happySpecReduce_2 39# happyReduction_110-happyReduction_110 happy_x_2- happy_x_1- = case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> - happyIn43- (C.CoSet happy_var_2- )}--happyReduce_111 = happySpecReduce_1 39# happyReduction_111-happyReduction_111 happy_x_1- = happyIn43- (C.Set C.Zero- )--happyReduce_112 = happySpecReduce_2 39# happyReduction_112-happyReduction_112 happy_x_2- happy_x_1- = case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> - happyIn43- (C.Set happy_var_2- )}--happyReduce_113 = happySpecReduce_3 39# happyReduction_113-happyReduction_113 happy_x_3- happy_x_2- happy_x_1- = case happyOutTok happy_x_1 of { (T.Number happy_var_1 _) -> - case happyOut43 happy_x_3 of { (HappyWrap43 happy_var_3) -> - happyIn43- (let n = read happy_var_1 in- if n==0 then C.Zero else- iterate (C.Plus happy_var_3) happy_var_3 !! (n-1)- )}}--happyReduce_114 = happySpecReduce_1 40# happyReduction_114-happyReduction_114 happy_x_1- = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - happyIn44- ([happy_var_1]- )}--happyReduce_115 = happySpecReduce_2 40# happyReduction_115-happyReduction_115 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) -> - happyIn44- (happy_var_2 : happy_var_1- )}}--happyReduce_116 = happySpecReduce_3 40# happyReduction_116-happyReduction_116 happy_x_3- happy_x_2- happy_x_1- = case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> - case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> - happyIn44- (C.Proj happy_var_3 : happy_var_1- )}}--happyReduce_117 = happySpecReduce_2 40# happyReduction_117-happyReduction_117 happy_x_2- happy_x_1- = case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> - happyIn44- (C.Set C.Zero : happy_var_1- )}--happyReduce_118 = happySpecReduce_1 41# happyReduction_118-happyReduction_118 happy_x_1- = happyIn45- (C.Size- )--happyReduce_119 = happySpecReduce_1 41# happyReduction_119-happyReduction_119 happy_x_1- = happyIn45- (C.Max- )--happyReduce_120 = happySpecReduce_1 41# happyReduction_120-happyReduction_120 happy_x_1- = happyIn45- (C.Infty- )--happyReduce_121 = happySpecReduce_1 41# happyReduction_121-happyReduction_121 happy_x_1- = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> - happyIn45- (C.Ident happy_var_1- )}--happyReduce_122 = happyReduce 5# 41# happyReduction_122-happyReduction_122 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn45- (C.Sing happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_123 = happySpecReduce_3 41# happyReduction_123-happyReduction_123 happy_x_3- happy_x_2- happy_x_1- = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> - happyIn45- (happy_var_2- )}--happyReduce_124 = happySpecReduce_1 41# happyReduction_124-happyReduction_124 happy_x_1- = happyIn45- (C.Unknown- )--happyReduce_125 = happySpecReduce_2 41# happyReduction_125-happyReduction_125 happy_x_2- happy_x_1- = case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> - happyIn45- (C.Succ happy_var_2- )}--happyReduce_126 = happySpecReduce_1 41# happyReduction_126-happyReduction_126 happy_x_1- = case happyOutTok happy_x_1 of { (T.Number happy_var_1 _) -> - happyIn45- (iterate C.Succ C.Zero !! (read happy_var_1)- )}--happyReduce_127 = happyReduce 4# 41# happyReduction_127-happyReduction_127 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut47 happy_x_3 of { (HappyWrap47 happy_var_3) -> - happyIn45- (C.Record happy_var_3- ) `HappyStk` happyRest}--happyReduce_128 = happySpecReduce_1 42# happyReduction_128-happyReduction_128 happy_x_1- = case happyOutTok happy_x_1 of { (T.QualId happy_var_1 _) -> - happyIn46- (let (m,n) = happy_var_1 in C.Qual (C.Name m) (C.Name n)- )}--happyReduce_129 = happySpecReduce_1 42# happyReduction_129-happyReduction_129 happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - happyIn46- (C.QName happy_var_1- )}--happyReduce_130 = happySpecReduce_3 43# happyReduction_130-happyReduction_130 happy_x_3- happy_x_2- happy_x_1- = case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> - case happyOut47 happy_x_3 of { (HappyWrap47 happy_var_3) -> - happyIn47- (happy_var_1 : happy_var_3- )}}--happyReduce_131 = happySpecReduce_1 43# happyReduction_131-happyReduction_131 happy_x_1- = case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> - happyIn47- ([happy_var_1]- )}--happyReduce_132 = happySpecReduce_0 43# happyReduction_132-happyReduction_132 = happyIn47- ([]- )--happyReduce_133 = happySpecReduce_3 44# happyReduction_133-happyReduction_133 happy_x_3- happy_x_2- happy_x_1- = case happyOut24 happy_x_1 of { (HappyWrap24 happy_var_1) -> - case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> - happyIn48- ((happy_var_1,happy_var_3)- )}}--happyReduce_134 = happySpecReduce_3 45# happyReduction_134-happyReduction_134 happy_x_3- happy_x_2- happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn49- (C.TypeSig happy_var_1 happy_var_3- )}}--happyReduce_135 = happyReduce 4# 46# happyReduction_135-happyReduction_135 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn50- (C.Constructor happy_var_1 happy_var_2 (Just happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_136 = happySpecReduce_2 46# happyReduction_136-happyReduction_136 happy_x_2- happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - happyIn50- (C.Constructor happy_var_1 happy_var_2 Nothing- )}}--happyReduce_137 = happySpecReduce_3 47# happyReduction_137-happyReduction_137 happy_x_3- happy_x_2- happy_x_1- = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> - case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> - happyIn51- (happy_var_3 : happy_var_1- )}}--happyReduce_138 = happySpecReduce_2 47# happyReduction_138-happyReduction_138 happy_x_2- happy_x_1- = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> - happyIn51- (happy_var_1- )}--happyReduce_139 = happySpecReduce_1 47# happyReduction_139-happyReduction_139 happy_x_1- = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> - happyIn51- ([happy_var_1]- )}--happyReduce_140 = happySpecReduce_0 47# happyReduction_140-happyReduction_140 = happyIn51- ([]- )--happyReduce_141 = happyReduce 5# 48# happyReduction_141-happyReduction_141 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> - case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> - case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> - happyIn52- ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_142 = happySpecReduce_3 48# happyReduction_142-happyReduction_142 happy_x_3- happy_x_2- happy_x_1- = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> - case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> - happyIn52- ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : []- )}}--happyReduce_143 = happySpecReduce_3 48# happyReduction_143-happyReduction_143 happy_x_3- happy_x_2- happy_x_1- = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> - case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> - happyIn52- ((C.Clause Nothing [happy_var_1] Nothing) : happy_var_3- )}}--happyReduce_144 = happySpecReduce_1 48# happyReduction_144-happyReduction_144 happy_x_1- = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> - happyIn52- ((C.Clause Nothing [happy_var_1] Nothing) : []- )}--happyReduce_145 = happySpecReduce_0 48# happyReduction_145-happyReduction_145 = happyIn52- ([]- )--happyReduce_146 = happyReduce 4# 49# happyReduction_146-happyReduction_146 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> - case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> - happyIn53- (C.Clause (Just happy_var_1) happy_var_2 (Just happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_147 = happySpecReduce_2 49# happyReduction_147-happyReduction_147 happy_x_2- happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) -> - happyIn53- (C.Clause (Just happy_var_1) happy_var_2 Nothing- )}}--happyReduce_148 = happySpecReduce_1 50# happyReduction_148-happyReduction_148 happy_x_1- = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> - happyIn54- (reverse happy_var_1- )}--happyReduce_149 = happySpecReduce_0 51# happyReduction_149-happyReduction_149 = happyIn55- ([]- )--happyReduce_150 = happySpecReduce_2 51# happyReduction_150-happyReduction_150 happy_x_2- happy_x_1- = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> - case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> - happyIn55- (happy_var_2 : happy_var_1- )}}--happyReduce_151 = happySpecReduce_3 51# happyReduction_151-happyReduction_151 happy_x_3- happy_x_2- happy_x_1- = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> - case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> - happyIn55- (happy_var_3 : happy_var_1- )}}--happyReduce_152 = happySpecReduce_2 52# happyReduction_152-happyReduction_152 happy_x_2- happy_x_1- = happyIn56- (C.AbsurdP- )--happyReduce_153 = happySpecReduce_3 52# happyReduction_153-happyReduction_153 happy_x_3- happy_x_2- happy_x_1- = case happyOut57 happy_x_2 of { (HappyWrap57 happy_var_2) -> - happyIn56- (happy_var_2- )}--happyReduce_154 = happySpecReduce_1 52# happyReduction_154-happyReduction_154 happy_x_1- = case happyOut60 happy_x_1 of { (HappyWrap60 happy_var_1) -> - happyIn56- (happy_var_1- )}--happyReduce_155 = happySpecReduce_2 52# happyReduction_155-happyReduction_155 happy_x_2- happy_x_1- = case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> - happyIn56- (C.SuccP happy_var_2- )}--happyReduce_156 = happySpecReduce_2 52# happyReduction_156-happyReduction_156 happy_x_2- happy_x_1- = happyIn56- (C.DotP (C.Set C.Zero)- )--happyReduce_157 = happySpecReduce_2 52# happyReduction_157-happyReduction_157 happy_x_2- happy_x_1- = case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> - happyIn56- (C.DotP happy_var_2- )}--happyReduce_158 = happySpecReduce_3 53# happyReduction_158-happyReduction_158 happy_x_3- happy_x_2- happy_x_1- = case happyOut58 happy_x_1 of { (HappyWrap58 happy_var_1) -> - case happyOut57 happy_x_3 of { (HappyWrap57 happy_var_3) -> - happyIn57- (C.PairP happy_var_1 happy_var_3- )}}--happyReduce_159 = happySpecReduce_1 53# happyReduction_159-happyReduction_159 happy_x_1- = case happyOut58 happy_x_1 of { (HappyWrap58 happy_var_1) -> - happyIn57- (happy_var_1- )}--happyReduce_160 = happySpecReduce_1 54# happyReduction_160-happyReduction_160 happy_x_1- = case happyOut59 happy_x_1 of { (HappyWrap59 happy_var_1) -> - happyIn58- (happy_var_1- )}--happyReduce_161 = happySpecReduce_3 54# happyReduction_161-happyReduction_161 happy_x_3- happy_x_2- happy_x_1- = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) -> - happyIn58- (C.SizeP happy_var_1 happy_var_3- )}}--happyReduce_162 = happySpecReduce_3 54# happyReduction_162-happyReduction_162 happy_x_3- happy_x_2- happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - case happyOut45 happy_x_3 of { (HappyWrap45 happy_var_3) -> - happyIn58- (C.SizeP happy_var_3 happy_var_1- )}}--happyReduce_163 = happySpecReduce_1 54# happyReduction_163-happyReduction_163 happy_x_1- = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> - happyIn58- (happy_var_1- )}--happyReduce_164 = happySpecReduce_3 54# happyReduction_164-happyReduction_164 happy_x_3- happy_x_2- happy_x_1- = case happyOut59 happy_x_1 of { (HappyWrap59 happy_var_1) -> - case happyOut58 happy_x_3 of { (HappyWrap58 happy_var_3) -> - happyIn58- (patApp happy_var_1 [happy_var_3]- )}}--happyReduce_165 = happySpecReduce_2 55# happyReduction_165-happyReduction_165 happy_x_2- happy_x_1- = case happyOut60 happy_x_1 of { (HappyWrap60 happy_var_1) -> - case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> - happyIn59- (patApp happy_var_1 [happy_var_2]- )}}--happyReduce_166 = happySpecReduce_2 55# happyReduction_166-happyReduction_166 happy_x_2- happy_x_1- = case happyOut59 happy_x_1 of { (HappyWrap59 happy_var_1) -> - case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) -> - happyIn59- (patApp happy_var_1 [happy_var_2]- )}}--happyReduce_167 = happySpecReduce_1 56# happyReduction_167-happyReduction_167 happy_x_1- = case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) -> - happyIn60- (C.IdentP (C.QName happy_var_1)- )}--happyReduce_168 = happySpecReduce_2 56# happyReduction_168-happyReduction_168 happy_x_2- happy_x_1- = case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) -> - happyIn60- (C.ConP True (C.QName happy_var_2) []- )}--happyReduce_169 = happySpecReduce_1 57# happyReduction_169-happyReduction_169 happy_x_1- = case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> - happyIn61- (reverse happy_var_1- )}--happyReduce_170 = happySpecReduce_3 58# happyReduction_170-happyReduction_170 happy_x_3- happy_x_2- happy_x_1- = case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> - case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> - happyIn62- (happy_var_3 : happy_var_1- )}}--happyReduce_171 = happySpecReduce_2 58# happyReduction_171-happyReduction_171 happy_x_2- happy_x_1- = case happyOut62 happy_x_1 of { (HappyWrap62 happy_var_1) -> - happyIn62- (happy_var_1- )}--happyReduce_172 = happySpecReduce_1 58# happyReduction_172-happyReduction_172 happy_x_1- = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> - happyIn62- ([happy_var_1]- )}--happyReduce_173 = happySpecReduce_0 58# happyReduction_173-happyReduction_173 = happyIn62- ([]- )--happyReduce_174 = happyReduce 5# 59# happyReduction_174-happyReduction_174 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn63- (C.TBind (Dec Default) happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_175 = happyReduce 5# 59# happyReduction_175-happyReduction_175 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut40 happy_x_4 of { (HappyWrap40 happy_var_4) -> - happyIn63- (C.TBind A.irrelevantDec happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_176 = happyReduce 6# 59# happyReduction_176-happyReduction_176 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) -> - case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> - happyIn63- (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_177 = happyReduce 6# 59# happyReduction_177-happyReduction_177 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) -> - case happyOut40 happy_x_5 of { (HappyWrap40 happy_var_5) -> - happyIn63- (C.TBind (Dec SPos) happy_var_3 happy_var_5- ) `HappyStk` happyRest}}--happyReduce_178 = happySpecReduce_0 60# happyReduction_178-happyReduction_178 = happyIn64- ([]- )--happyReduce_179 = happySpecReduce_2 60# happyReduction_179-happyReduction_179 happy_x_2- happy_x_1- = case happyOut63 happy_x_1 of { (HappyWrap63 happy_var_1) -> - case happyOut64 happy_x_2 of { (HappyWrap64 happy_var_2) -> - happyIn64- (happy_var_1 : happy_var_2- )}}--happyNewToken action sts stk [] =- happyDoAction 56# notHappyAtAll action sts stk []--happyNewToken action sts stk (tk:tks) =- let cont i = happyDoAction i tk action sts stk tks in- case tk of {- T.Id happy_dollar_dollar _ -> cont 1#;- T.QualId happy_dollar_dollar _ -> cont 2#;- T.Number happy_dollar_dollar _ -> cont 3#;- T.Data _ -> cont 4#;- T.CoData _ -> cont 5#;- T.Record _ -> cont 6#;- T.Sized _ -> cont 7#;- T.Fields _ -> cont 8#;- T.Mutual _ -> cont 9#;- T.Fun _ -> cont 10#;- T.CoFun _ -> cont 11#;- T.Pattern _ -> cont 12#;- T.Case _ -> cont 13#;- T.Def _ -> cont 14#;- T.Let _ -> cont 15#;- T.In _ -> cont 16#;- T.Eval _ -> cont 17#;- T.Fail _ -> cont 18#;- T.Check _ -> cont 19#;- T.TrustMe _ -> cont 20#;- T.Impredicative _ -> cont 21#;- T.Type _ -> cont 22#;- T.Set _ -> cont 23#;- T.CoSet _ -> cont 24#;- T.Size _ -> cont 25#;- T.Infty _ -> cont 26#;- T.Succ _ -> cont 27#;- T.Max _ -> cont 28#;- T.LTri _ -> cont 29#;- T.RTri _ -> cont 30#;- T.AngleOpen _ -> cont 31#;- T.AngleClose _ -> cont 32#;- T.BrOpen _ -> cont 33#;- T.BrClose _ -> cont 34#;- T.BracketOpen _ -> cont 35#;- T.BracketClose _ -> cont 36#;- T.PrOpen _ -> cont 37#;- T.PrClose _ -> cont 38#;- T.Bar _ -> cont 39#;- T.Comma _ -> cont 40#;- T.Sem _ -> cont 41#;- T.Col _ -> cont 42#;- T.Dot _ -> cont 43#;- T.Arrow _ -> cont 44#;- T.Leq _ -> cont 45#;- T.Eq _ -> cont 46#;- T.PlusPlus _ -> cont 47#;- T.Plus _ -> cont 48#;- T.Minus _ -> cont 49#;- T.Slash _ -> cont 50#;- T.Times _ -> cont 51#;- T.Hat _ -> cont 52#;- T.Amp _ -> cont 53#;- T.Lam _ -> cont 54#;- T.Underscore _ -> cont 55#;- _ -> happyError' ((tk:tks), [])- }--happyError_ explist 56# tk tks = happyError' (tks, explist)-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)--newtype HappyIdentity a = HappyIdentity a-happyIdentity = HappyIdentity-happyRunIdentity (HappyIdentity a) = a--instance Prelude.Functor HappyIdentity where- fmap f (HappyIdentity a) = HappyIdentity (f a)--instance Applicative HappyIdentity where- pure = HappyIdentity- (<*>) = ap-instance Prelude.Monad HappyIdentity where- return = pure- (HappyIdentity p) >>= q = q p--happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b-happyThen = (Prelude.>>=)-happyReturn :: () => a -> HappyIdentity a-happyReturn = (Prelude.return)-happyThen1 m k tks = (Prelude.>>=) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> HappyIdentity a-happyReturn1 = \a tks -> (Prelude.return) a-happyError' :: () => ([(T.Token)], [Prelude.String]) -> HappyIdentity a-happyError' = HappyIdentity Prelude.. (\(tokens, _) -> parseError tokens)-parse tks = happyRunIdentity happySomeParser where- happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (let {(HappyWrap4 x') = happyOut4 x} in x'))--happySeq = happyDontSeq---parseError :: [T.Token] -> a-parseError [] = error "Parse error at EOF"-parseError (x : xs) = error ("Parse error at token " ++ T.prettyTok x)-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $---------------- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ > 706-#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Prelude.Bool)-#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Prelude.Bool)-#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Prelude.Bool)-#else-#define LT(n,m) (n Happy_GHC_Exts.<# m)-#define GTE(n,m) (n Happy_GHC_Exts.>=# m)-#define EQ(n,m) (n Happy_GHC_Exts.==# m)-#endif--------------------data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList-----------------------------------------infixr 9 `HappyStk`-data HappyStk a = HappyStk a (HappyStk a)---------------------------------------------------------------------------------- starting the parse--happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll---------------------------------------------------------------------------------- Accepting the parse---- If the current token is ERROR_TOK, it means we've just accepted a partial--- parse (a %partial parser). We must ignore the saved token on the top of--- the stack in this case.-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =- happyReturn1 ans-happyAccept j tk st sts (HappyStk ans _) = - (happyTcHack j (happyTcHack st)) (happyReturn1 ans)---------------------------------------------------------------------------------- Arrays only: do the next action----happyDoAction i tk st- = {- nothing -}- case action of- 0# -> {- nothing -}- happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Prelude.Int)) i tk st- -1# -> {- nothing -}- happyAccept i tk st- n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}- (happyReduceArr Happy_Data_Array.! rule) i tk st- where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))- n -> {- nothing -}- happyShift new_state i tk st- where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))- where off = happyAdjustOffset (indexShortOffAddr happyActOffsets st)- off_i = (off Happy_GHC_Exts.+# i)- check = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))- then EQ(indexShortOffAddr happyCheck off_i, i)- else Prelude.False- action- | check = indexShortOffAddr happyTable off_i- | Prelude.otherwise = indexShortOffAddr happyDefActions st-----indexShortOffAddr (HappyA# arr) off =- Happy_GHC_Exts.narrow16Int# i- where- i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)- high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))- low = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))- off' = off Happy_GHC_Exts.*# 2#-----{-# INLINE happyLt #-}-happyLt x y = LT(x,y)---readArrayBit arr bit =- Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `Prelude.mod` 16)- where unbox_int (Happy_GHC_Exts.I# x) = x-------data HappyAddr = HappyA# Happy_GHC_Exts.Addr#----------------------------------------------------------------------------------- HappyState data type (not arrays)---------------------------------------------------------------------------------------------- Shifting a token--happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =- let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in--- trace "shifting the error token" $- happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)--happyShift new_state i tk st sts stk =- happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)---- happyReduce is specialised for the common cases.--happySpecReduce_0 i fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happySpecReduce_0 nt fn j tk st@((action)) sts stk- = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)--happySpecReduce_1 i fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')- = let r = fn v1 in- happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_2 i fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')- = let r = fn v1 v2 in- happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_3 i fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')- = let r = fn v1 v2 v3 in- happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happyReduce k i fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happyReduce k nt fn j tk st sts stk- = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of- sts1@((HappyCons (st1@(action)) (_))) ->- let r = fn stk in -- it doesn't hurt to always seq here...- happyDoSeq r (happyGoto nt j tk st1 sts1 r)--happyMonadReduce k nt fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happyMonadReduce k nt fn j tk st sts stk =- case happyDrop k (HappyCons (st) (sts)) of- sts1@((HappyCons (st1@(action)) (_))) ->- let drop_stk = happyDropStk k stk in- happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))--happyMonad2Reduce k nt fn 0# tk st sts stk- = happyFail [] 0# tk st sts stk-happyMonad2Reduce k nt fn j tk st sts stk =- case happyDrop k (HappyCons (st) (sts)) of- sts1@((HappyCons (st1@(action)) (_))) ->- let drop_stk = happyDropStk k stk-- off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1)- off_i = (off Happy_GHC_Exts.+# nt)- new_state = indexShortOffAddr happyTable off_i----- in- happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))--happyDrop 0# l = l-happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t--happyDropStk 0# l = l-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs---------------------------------------------------------------------------------- Moving to a new state after a reduction---happyGoto nt j tk st = - {- nothing -}- happyDoAction j tk new_state- where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)- off_i = (off Happy_GHC_Exts.+# nt)- new_state = indexShortOffAddr happyTable off_i------------------------------------------------------------------------------------- Error recovery (ERROR_TOK is the error token)---- parse error if we are in recovery and we fail again-happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) =- let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in--- trace "failing" $ - happyError_ explist i tk--{- We don't need state discarding for our restricted implementation of- "error". In fact, it can cause some bogus parses, so I've disabled it- for now --SDM---- discard a state-happyFail ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) - (saved_tok `HappyStk` _ `HappyStk` stk) =--- trace ("discarding state, depth " ++ show (length stk)) $- DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))--}---- Enter error recovery: generate an error token,--- save the old token and carry on.-happyFail explist i tk (action) sts stk =--- trace "entering error recovery" $- happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)---- Internal happy errors:--notHappyAtAll :: a-notHappyAtAll = Prelude.error "Internal Happy error\n"---------------------------------------------------------------------------------- Hack to get the typechecker to accept our action functions---happyTcHack :: Happy_GHC_Exts.Int# -> a -> a-happyTcHack x y = y-{-# INLINE happyTcHack #-}----------------------------------------------------------------------------------- Seq-ing. If the --strict flag is given, then Happy emits --- happySeq = happyDoSeq--- otherwise it emits--- happySeq = happyDontSeq--happyDoSeq, happyDontSeq :: a -> b -> b-happyDoSeq a b = a `Prelude.seq` b-happyDontSeq a b = b---------------------------------------------------------------------------------- Don't inline any functions from the template. GHC has a nasty habit--- of deciding to inline happyGoto everywhere, which increases the size of--- the generated parser quite a bit.---{-# NOINLINE happyDoAction #-}-{-# NOINLINE happyTable #-}-{-# NOINLINE happyCheck #-}-{-# NOINLINE happyActOffsets #-}-{-# NOINLINE happyGotoOffsets #-}-{-# NOINLINE happyDefActions #-}--{-# NOINLINE happyShift #-}-{-# NOINLINE happySpecReduce_0 #-}-{-# NOINLINE happySpecReduce_1 #-}-{-# NOINLINE happySpecReduce_2 #-}-{-# NOINLINE happySpecReduce_3 #-}-{-# NOINLINE happyReduce #-}-{-# NOINLINE happyMonadReduce #-}-{-# NOINLINE happyGoto #-}-{-# NOINLINE happyFail #-}---- end of Happy Template.
lib/bintree.ma view
@@ -1,11 +1,9 @@ -- bintree.ma Binary trees -cofun BinTree : ++(A : Set) -> +(i : Size) -> Set +cofun BinTree : ++(A : Set) -> +(i : Size) -> Set { BinTree A i = let ++T = [j < i] & BinTree A j in Maybe (T & A & T) } pattern leaf = nothing pattern node l a r = just (l, a, r)--
lib/colist.ma view
@@ -1,13 +1,13 @@ -- colist.ma -- MiniAgda colist library cofun CoList : ++(A : Set) -> -(i : Size) -> Set-{ CoList A i = Maybe (A & ([i' < i] -> CoList A i')) +{ CoList A i = Maybe (A & ([i' < i] -> CoList A i')) } fun colist : [A : Set] -> [i : Size] -> |i| -> List A i -> CoList A i { colist A i nil = nil ; colist A i (cons a (i', as)) = cons a (\ i'' -> colist A (max i' i'') as)-} +} fun cotake : [A : Set] -> [i : Size] -> Nat i -> CoList A i -> List A i { cotake A i zero as = nil@@ -15,8 +15,8 @@ ; cotake A i (suc (i', n)) (cons a l) = cons a (i', cotake A i' n (l i')) } -fun codrop : [A : Set ] -> - [i : Size] -> Nat i -> +fun codrop : [A : Set ] ->+ [i : Size] -> Nat i -> [j : Size] -> CoList A (j+i) -> CoList A j { codrop A i zero j l = l ; codrop A i n j nil = nil@@ -27,14 +27,14 @@ check fun cotail : [A : Set] [i : Size] (l : CoList A $i) -> CoList A i { cotail A i nil = nil-; cotail A i (cons a l) = l i +; cotail A i (cons a l) = l i } -- tail as instance of drop let cotail [A : Set] : [i : Size] (l : CoList A $i) -> CoList A i = codrop A $0 (suc (0, zero)) -fun coappend : [A : Set] -> [i : Size] -> |i| -> +fun coappend : [A : Set] -> [i : Size] -> |i| -> CoList A i -> CoList A i -> CoList A i { coappend A i nil bs = bs ; coappend A i (cons a l) bs = cons a (\ i' -> coappend A i' (l i') bs)@@ -42,8 +42,8 @@ -- list take -let take [A : Set] [i : Size] (n : Nat i) (as : List A i) : List A i - = cotake A i n (colist A i as) +let take [A : Set] [i : Size] (n : Nat i) (as : List A i) : List A i+ = cotake A i n (colist A i as) {- @@ -52,8 +52,8 @@ { nil -> nil ; (cons a as) -> cons a (\ j -> as $j -mapMaybe (A & ([i' < $i] -> CoList A i')) +mapMaybe (A & ([i' < $i] -> CoList A i')) (A & ([i' < i] -> CoList A i'))- + } -}
lib/nat.ma view
@@ -15,14 +15,14 @@ let threeN : Nat 3 = suc (2, twoN) let fourN : Nat 4 = suc (3, threeN) -fun caseNat : [i : Size] -> |i| -> (n : Nat $i) -> +fun caseNat : [i : Size] -> |i| -> (n : Nat $i) -> [C : Set] -> C -> ([i : Size] -> (m : Nat i) -> C) -> C { caseNat i zero C z s = z ; caseNat i (suc (i', n)) C z s = s i' n } {- ERROR in TypeChecker!-fun caseNat : [i : Size] -> |i| -> (n : Nat $i) -> +fun caseNat : [i : Size] -> |i| -> (n : Nat $i) -> [C : [j : Size] -> Nat j -> Set] -> C 0 zero -> ([i : Size] -> (m : Nat i) -> C i m) ->@@ -42,7 +42,7 @@ ; pred i (suc (j, n)) = n } -fun plus : [i : Size] -> |i| -> (n : Nat i) -> +fun plus : [i : Size] -> |i| -> (n : Nat i) -> [j : Size] -> (m : Nat j) -> Nat (i+j) { plus i zero j m = m ; plus i (suc (i', n)) j m = suc (i'+j, plus i' n j m)@@ -53,7 +53,7 @@ ; times i (suc (i', n)) m = plus # m # (times i' n m) } -fun minus : [i : Size] -> (n : Nat i) -> +fun minus : [i : Size] -> (n : Nat i) -> [j : Size] -> |j| -> (m : Nat j) -> Nat i { minus i zero j m = zero ; minus i n j zero = n@@ -67,13 +67,13 @@ } -- computes floor(n/m) if m>0, and 0 otherwise-check -- Alternative definition +check -- Alternative definition let div [i : Size] (n : Nat i) (m : Nat #) : Nat i- = caseNat # m (Nat i) - zero + = caseNat # m (Nat i)+ zero (\ oo pred_m -> div' i (minus i n # pred_m) pred_m) -check -- Alternative definition +check -- Alternative definition fun div : [i : Size] -> (n : Nat i) -> (m : Nat #) -> Nat i { div i n zero = zero ; div i n m = div' i (minus i n # (pred # m)) (pred # m)
lib/stl.ma view
@@ -20,29 +20,29 @@ fun Var : [i : Size] -> |i| -> (cxt : Context i) -> ^(c : Ty #) -> Set { Var i nil c = Empty ; Var i (cons a (j, cxt)) c = Either (Id (Ty #) a c) (Var j cxt c)-} +} -- Variables are a variant of natural numbers pattern vzero = left refl pattern vsucc x = right x -let vzer (cxt : Context #) (a : Ty #) : Var # (extend # a cxt) a +let vzer (cxt : Context #) (a : Ty #) : Var # (extend # a cxt) a = vzero -let vsuc (cxt : Context #) (a, b : Ty #) (x : Var # cxt a) +let vsuc (cxt : Context #) (a, b : Ty #) (x : Var # cxt a) : Var # (extend # b cxt) a = vsucc x -- Well-typed terms cofun Term : +(i : Size) -> (cxt : Context #) -> (c : Ty #) -> Set-{ Term i cxt c = - let ++T (cxt : Context #) (c : Ty #) = [j < i] & Term j cxt c +{ Term i cxt c =+ let ++T (cxt : Context #) (c : Ty #) = [j < i] & Term j cxt c in Tri (Var # cxt c) -- var ((a : Ty #) & T cxt (arr # a c) & T cxt a) -- app (case c -- abs { (base) -> Empty- ; (arrow (j, a) (k, b)) -> T (extend # a cxt) b + ; (arrow (j, a) (k, b)) -> T (extend # a cxt) b }) } pattern var x = first x@@ -62,14 +62,14 @@ pattern var3 = var v3 let tyId : Ty # = arr # base base-let tmId : Term # nil tyId = abs (0, var0) +let tmId : Term # nil tyId = abs (0, var0) let tyK : Ty # = arr # base tyId let tmK : Term # nil tyK = abs (1, abs (0, var1)) let tyS : Ty # = arr # tyK (arr # tyId tyId) let tmS : Term # nil tyS = abs (4, abs (3, abs (2, app base- (1, app base (0, var2) (0, var0)) + (1, app base (0, var2) (0, var0)) (1, app base (0, var1) (0, var0))))) -- Renamings@@ -78,28 +78,28 @@ = (a : Ty #) -> Var # delta a -> Var # gamma a check-fun liftRen : (gamma, delta : Context #) -> (c : Ty #) -> +fun liftRen : (gamma, delta : Context #) -> (c : Ty #) -> (rho : Renaming gamma delta) -> Renaming (extend # c gamma) (extend # c delta) { liftRen gamma delta c rho .c vzero = vzero-; liftRen gamma delta c rho a (vsucc x) = vsucc (rho a x) +; liftRen gamma delta c rho a (vsucc x) = vsucc (rho a x) } -let liftRen (gamma, delta : Context #) (c : Ty #) (rho : Renaming gamma delta) +let liftRen (gamma, delta : Context #) (c : Ty #) (rho : Renaming gamma delta) : Renaming (extend # c gamma) (extend # c delta) = \ a y -> case y { (left p) -> left p ; (right x) -> right (rho a x) } -fun rename : (gamma, delta : Context #) -> (c : Ty #) -> +fun rename : (gamma, delta : Context #) -> (c : Ty #) -> [i : Size] -> Term i delta c -> Renaming gamma delta -> Term i gamma c { rename gamma delta c i (var x) rho = var (rho c x)-; rename gamma delta c i (app a (j,t) (k,u)) rho = +; rename gamma delta c i (app a (j,t) (k,u)) rho = app a (j, rename gamma delta (arr # a c) j t rho) (k, rename gamma delta a k u rho)-; rename gamma delta base i (abs ()) rho -; rename gamma delta (arrow (k1,a) (k2,b)) i (abs (j,t)) rho = - abs (j, rename (extend # a gamma) (extend # a delta) b j t +; rename gamma delta base i (abs ()) rho+; rename gamma delta (arrow (k1,a) (k2,b)) i (abs (j,t)) rho =+ abs (j, rename (extend # a gamma) (extend # a delta) b j t (liftRen gamma delta a rho)) } @@ -108,24 +108,24 @@ let Substitution +(i : Size) (gamma, delta : Context #) = (a : Ty #) -> Var # delta a -> Term i gamma a -let liftSubst (gamma, delta : Context #) (c : Ty #) - [i : Size] (sigma : Substitution i gamma delta) +let liftSubst (gamma, delta : Context #) (c : Ty #)+ [i : Size] (sigma : Substitution i gamma delta) : Substitution i (extend # c gamma) (extend # c delta) = \ a y -> case y { (left p) -> var (left p)- ; (right x) -> rename (extend # c gamma) gamma a i + ; (right x) -> rename (extend # c gamma) gamma a i (sigma a x) (\ b x -> vsucc x) } -fun substitute : (gamma, delta : Context #) -> (c : Ty #) -> - [i : Size] -> |i| -> Term i delta c -> +fun substitute : (gamma, delta : Context #) -> (c : Ty #) ->+ [i : Size] -> |i| -> Term i delta c -> [j : Size] -> Substitution j gamma delta -> Term (i+j) gamma c { substitute gamma delta c i (var x) j sigma = sigma c x ; substitute gamma delta c i (app a (i1, t) (i2, u)) j sigma = app a (i1+j, substitute gamma delta (arr # a c) i1 t j sigma) (i2+j, substitute gamma delta a i2 u j sigma)-; substitute gamma delta base i (abs ()) j sigma +; substitute gamma delta base i (abs ()) j sigma ; substitute gamma delta (arrow (k1, a) (k2, b)) i (abs (i', t)) j sigma =- abs (i' + j, substitute (extend # a gamma) (extend # a delta) b i' t j + abs (i' + j, substitute (extend # a gamma) (extend # a delta) b i' t j (liftSubst gamma delta a j sigma)) }
src/Abstract.hs view
@@ -5,20 +5,25 @@ {-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeSynonymInstances, GeneralizedNewtypeDeriving, DeriveFunctor, DeriveFoldable, DeriveTraversable, NamedFieldPuns #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} module Abstract where import Prelude hiding (showList, map, concat, foldl, pi, null, (<>)) +#if !MIN_VERSION_base(4,8,0) import Control.Applicative hiding (empty)-import Control.Monad.Writer (Writer, tell, All(..))+#endif+import Control.Monad.Writer (Writer, tell) import Control.Monad.Trans +import Control.Arrow (first) import Data.Monoid hiding ((<>))+#if !MIN_VERSION_base(4,8,0) import Data.Foldable (Foldable, foldMap)-import qualified Data.Foldable as Foldable-import Data.Traversable as Traversable+import Data.Traversable (Traversable)+#endif import Data.Unique import Data.List (map)@@ -28,7 +33,7 @@ import Data.Set (Set) import qualified Data.Set as Set -import Debug.Trace+-- import Debug.Trace import Data.IORef import System.IO.Unsafe @@ -66,7 +71,7 @@ compare x x' = compare (uid x) (uid x') instance Show Name where- show (Name n _ u) = n -- n ++ "`" ++ show (hashUnique u `mod` 13)+ show (Name n _ _u) = n -- n ++ "`" ++ show (hashUnique u `mod` 13) -- | @fresh s@ generates a new name with 'suggestion' @s@. --@@ -112,6 +117,7 @@ -- mkExtName n = "_" ++ n {-# NOINLINE mkExtName #-} +mkExtRef :: Name -> Expr mkExtRef n = letdef (mkExtName n) isEtaAlias :: Name -> Bool@@ -124,6 +130,7 @@ -- internal names are prefixed by a double underscore (not legal concrete syntax) -- | Convert a dot pattern into an identifier which should not look too confusing.+spaceToUnderscore :: String -> String spaceToUnderscore = List.map (\ c -> if c==' ' then '_' else c) {- exprToName e = spaceToUnderscore $ show e@@ -141,10 +148,12 @@ show (QName n) = show n -- | An unqualified name is an instance of a qualified name.+nameInstanceOf :: QName -> QName -> Bool nameInstanceOf (QName n) (Qual _ n') = n == n' nameInstanceOf n n' = n == n' -- | Fails if qualified name.+unqual :: QName -> Name unqual (QName n) = n unqual n = error $ "Abstract.unqual: " ++ show n @@ -200,16 +209,18 @@ instance LensPol Dec where getPol = polarity- setPol p Hidden = Hidden+ setPol _ Hidden = Hidden setPol p dec = dec { thePolarity = p } udec :: Dec -> UDec udec = fmap pprod +irrelevantDec, paramDec, defaultDec, neutralDec :: Decoration Pol irrelevantDec = Dec Pol.Const paramDec = Dec Param defaultDec = Dec defaultPol -- defaultDec = paramDec -- TODO: Dec { polarity = Rec }+defaultUpperDec :: Decoration PProd defaultUpperDec = Dec $ pprod SPos -- a variable may not be erased and its polarity must be below SPos -- notErased = Dec False@@ -228,7 +239,7 @@ -- composition of decoration, used when type checking arguments -- of functions decorated with dec compDec :: Dec -> UDec -> UDec-compDec dec udec = compose (fmap pprod dec) udec+compDec dec dec' = compose (fmap pprod dec) dec' {- instance Show pos => Show (Decoration pos) where@@ -290,14 +301,14 @@ minSizeE :: Expr -> Expr -> Expr minSizeE Infty e2 = e2 minSizeE e1 Infty = e1-minSizeE Zero e2 = Zero-minSizeE e1 Zero = Zero+minSizeE Zero _ = Zero+minSizeE _ Zero = Zero minSizeE (Succ e1) (Succ e2) = Succ (minSizeE e1 e2) minSizeE e1 e2 = error $ "minSizeE " ++ (Util.parens $ show e1) ++ " " ++ (Util.parens $ show e2) maxSizeE :: Expr -> Expr -> Expr-maxSizeE Infty e2 = Infty-maxSizeE e1 Infty = Infty+maxSizeE Infty _ = Infty+maxSizeE _ Infty = Infty maxSizeE Zero e2 = e2 maxSizeE e1 Zero = e1 maxSizeE (Succ e1) (Succ e2) = Succ (maxSizeE e1 e2)@@ -305,7 +316,7 @@ -- maxSizeE e1 e2 = error $ "maxSizeE " ++ (Util.parens $ show e1) ++ " " ++ (Util.parens $ show e2) flattenMax :: Expr -> [Expr] -> [Expr]-flattenMax Infty acc = [Infty]+flattenMax Infty _ = [Infty] flattenMax Zero acc = acc flattenMax (Max []) acc = acc flattenMax (Max (e : es)) acc = flattenMax e $ flattenMax (Max es) acc@@ -321,11 +332,11 @@ sizeVarsToInfty _ = Infty leqSizeE :: Expr -> Expr -> Bool-leqSizeE Zero e = True-leqSizeE e Zero = False-leqSizeE e Infty = True+leqSizeE Zero _ = True+leqSizeE _ Zero = False+leqSizeE _ Infty = True leqSizeE (Succ e) (Succ e') = leqSizeE e e'-leqSizeE Infty e = False+leqSizeE Infty _ = False -- plus :: Expr -> Expr -> Expr @@ -381,7 +392,7 @@ predSort :: Sort Expr -> Sort Expr predSort (SortC c) = SortC (predClass c)-predSort (CoSet e) = SortC Tm+predSort (CoSet _) = SortC Tm predSort (Set Zero) = SortC Tm predSort (Set (Succ e)) = Set e predSort (Set Infty) = Set Infty@@ -396,8 +407,8 @@ succSort (Set e) = Set (sizeSuccE e) minSort :: Sort Expr -> Sort Expr -> Sort Expr-minSort (SortC Tm) (Set e) = SortC Tm-minSort (Set e) (SortC Tm) = SortC Tm+minSort (SortC Tm) (Set _) = SortC Tm+minSort (Set _) (SortC Tm) = SortC Tm minSort (Set e) (Set e') = Set (minSizeE e e') -- minSort (SortC c) (SortC c') | c == c' = SortC c minSort (SortC c) (SortC c') = SortC $ minClass c c'@@ -405,10 +416,10 @@ -- 2012-01-21: that should not be necessary, but to move on... minClass :: Class -> Class -> Class-minClass Tm c = Tm-minClass c Tm = Tm-minClass Size c = Size-minClass c Size = Size+minClass Tm _ = Tm+minClass _ Tm = Tm+minClass Size _ = Size+minClass _ Size = Size minClass TSize TSize = TSize maxClass :: Class -> Class -> Class @@ -455,14 +466,17 @@ | AnyKind -- not yet classified, neutral wrt. intersection deriving (Eq, Ord) +defaultKind, kSize, kTSize, kTerm, kType :: Kind --defaultKind = Kind (SortC Tm) topSort -- no classification, could be anything defaultKind = AnyKind +preciseKind :: Sort Expr -> Kind preciseKind s = Kind s s kSize = preciseKind (SortC Size) kTSize = preciseKind (SortC TSize) kTerm = preciseKind (SortC Tm) kType = preciseKind (Set Zero)+kUniv :: Expr -> Kind kUniv e = preciseKind (Set (Succ (sizeVarsToInfty e))) -- used in TypeChecker instance Show Kind where@@ -483,7 +497,7 @@ prettyKind (Kind (Set (Succ Zero)) _) = "univ" prettyKind (Kind (Set Zero) _) = "ty-u" prettyKind (Kind (SortC Tm) (Set Zero)) = "tmty"-prettyKind k = "mixk"+prettyKind _ = "mixk" -- if D : T and T has kind ki, then D has kind dataKind ki dataKind :: Kind -> Kind@@ -505,7 +519,7 @@ -- proper types are only inhabited by terms predKind (Kind _ (Set Zero)) = kTerm -- proper universes are inhabited by types and universes-predKind (Kind (Set (Succ e)) s) = Kind (Set Zero) (predSort s)+predKind (Kind (Set (Succ _)) s) = Kind (Set Zero) (predSort s) -- something which is a type or a universe can be inhabited by a term predKind (Kind _ s) = Kind (SortC Tm) (predSort s) @@ -529,8 +543,8 @@ case (ki1,ki2) of (NoKind, ki) -> ki (ki, NoKind) -> ki- (AnyKind, ki) -> AnyKind- (ki, AnyKind) -> AnyKind+ (AnyKind, _) -> AnyKind+ (_, AnyKind) -> AnyKind (Kind x1 x2, Kind y1 y2) -> Kind (minSort x1 y1) (maxSort x2 y2) @@ -560,8 +574,13 @@ instance Show a => Show (Dom a) where show (Domain ty ki dec) = show dec ++ show ty ++ "::" ++ show ki +defaultDomain :: a -> Dom a defaultDomain a = Domain a defaultKind defaultDec++domFromKinded :: Kinded a -> Dom a domFromKinded (Kinded ki t) = Domain t ki defaultDec++defaultIrrDom :: a -> Dom a defaultIrrDom a = Domain a defaultKind irrelevantDec sizeDomain :: Dec -> Dom Expr@@ -616,9 +635,11 @@ show FunK = "fun" show LetK = "let" +conKind :: IdKind -> Bool conKind (ConK _) = True conKind _ = False +coToConK :: Co -> ConK coToConK Ind = Cons coToConK CoInd = CoCons @@ -652,11 +673,11 @@ instance LensDec (TBinding a) where getDec = getDec . boundDom mapDec f (TBind x dom) = TBind x (dom { decor = f (decor dom) })- mapDec f tb = tb+ mapDec _ tb = tb mapDecM :: (Applicative m) => (Dec -> m Dec) -> TBind -> m TBind mapDecM f tb@TBind{} = flip setDec tb <$> f (getDec tb)-mapDecM f tb = pure tb+mapDecM _ tb = pure tb -- measures ---------------------------------------------------------- @@ -667,7 +688,7 @@ show (Measure l) = "|" ++ showList "," show l ++ "|" succMeasure :: (a -> a) -> Measure a -> Measure a-succMeasure succ mu = maybe (error "cannot take successor of empty measure") id $ applyLastM (Just . succ) mu+succMeasure suc mu = maybe (error "cannot take successor of empty measure") id $ applyLastM (Just . suc) mu {- succMeasure succ (Measure mu) = Measure (succMeas mu)@@ -714,6 +735,7 @@ inTags :: Tag -> Tags -> Bool inTags = elem +noTags :: Tags noTags = [] data Tagged a = Tagged { tags :: Tags , unTag :: a }@@ -736,9 +758,11 @@ prettyCast (Cast `inTags` tags) $ pretty a +prettyErased :: Bool -> Doc -> Doc prettyErased True doc = brackets doc prettyErased False doc = doc +prettyCast :: Bool -> Doc -> Doc prettyCast True doc = text "'cast" <> PP.parens doc prettyCast False doc = doc @@ -801,8 +825,8 @@ newtype Dotted = Dotted { dottedRef :: IORef Bool } -instance Eq Dotted where x == y = True-instance Ord Dotted where x <= y = True+instance Eq Dotted where _ == _ = True+instance Ord Dotted where _ <= _ = True instance Show Dotted where show d = fwhen (isDotted d) ("un" ++) "confirmed" -- A bit of imperative programming@@ -862,13 +886,15 @@ proj e Post n = App e (Proj Post n) -- | Non-dependent function type.+funType :: Dom Type -> Expr -> Expr funType a b = Quant Pi (noBind a) b +erasedExpr, castExpr :: Expr -> Expr erasedExpr e = Ann (Tagged [Erased] e) castExpr e = Ann (Tagged [Cast] e) succView :: Expr -> (Int, Expr)-succView (Succ e) = inc (succView e) where inc (n, e) = (n+1, e)+succView (Succ e) = first (+1) (succView e) succView e = (0, e) -- Clauses and patterns ----------------------------------------------@@ -879,6 +905,7 @@ , clExpr :: Maybe Expr -- Nothing if absurd clause } deriving (Eq,Ord,Show) +clause :: [Pattern] -> Maybe Expr -> Clause -- clause = Clause (error "internal error: no telescope in clause before typechecking!") clause = Clause [] -- empty clTele @@ -937,10 +964,15 @@ type Subst = Map MVar Expr +con :: ConK -> QName -> Expr con co n = Def $ DefId (ConK co) n -- con co n = Con co n []++fun, dat :: QName -> Expr fun n = Def $ DefId FunK n dat n = Def $ DefId DatK n++letdef :: Name -> Expr letdef n = Def $ DefId LetK $ QName n type SpineView = (Expr, [Expr])@@ -951,6 +983,7 @@ where aux sp (App f e) = aux (e:sp) f aux sp e = (e, sp) +test_spineView :: SpineView test_spineView = spineView ((Var x `App` Var y) `App` Var z) where x = fresh "x" y = fresh "y"@@ -1015,6 +1048,7 @@ newtype Telescope = Telescope { telescope :: [TBind] } deriving (Eq, Ord, Show, Size, Null) +emptyTel :: Telescope emptyTel = Telescope [] data Arity = Arity@@ -1070,7 +1104,7 @@ -- 2012-01-22 constructors are no longer inferable, since parameters are missing inferable (Def (DefId { idKind = ConK{} })) = False inferable Def{} = True-inferable (App f e) = inferable f+inferable (App f _) = inferable f -- inferable (Pair f e) = inferable f && inferable e -- pairs are not inferable due to irrelevant sigma! -- inferable Sing{} = True -- not with universes inferable _ = False@@ -1092,16 +1126,16 @@ boundVars (a, b, c) = mconcat [boundVars a, boundVars b, boundVars c] instance BoundVars (TBinding a) where- boundVars (TBind x a) = Coll.singleton x- boundVars (TMeasure m) = mempty- boundVars (TBound b) = mempty+ boundVars (TBind x _) = Coll.singleton x+ boundVars (TMeasure _) = mempty+ boundVars (TBound _) = mempty instance BoundVars Telescope where boundVars = boundVars . telescope instance BoundVars (Pat e) where boundVars (VarP name) = Coll.singleton name- boundVars (SizeP x y) = Coll.singleton y+ boundVars (SizeP _ y) = Coll.singleton y boundVars (SuccP p) = boundVars p boundVars (ConP _ _ ps) = boundVars ps boundVars (PairP p p') = boundVars (p, p')@@ -1109,7 +1143,7 @@ boundVars (DotP _) = mempty boundVars (ErasedP p) = boundVars p boundVars (AbsurdP) = mempty- boundVars (UnusableP p) = mempty+ boundVars (UnusableP _) = mempty @@ -1145,7 +1179,7 @@ freeVars (a, b, c) = mconcat [freeVars a, freeVars b, freeVars c] instance FreeVars a => FreeVars (TBinding a) where- freeVars (TBind x a) = freeVars a -- Note: x is bound in the stuff to come, not in a.+ freeVars (TBind _x a) = freeVars a -- Note: x is bound in the stuff to come, not in a. freeVars (TMeasure m) = freeVars m freeVars (TBound b) = freeVars b @@ -1172,7 +1206,7 @@ Max es -> freeVars es Plus es -> freeVars es Lam _ x e -> Set.delete x (freeVars e)- Quant pisig ta b -> freeVars ta `Set.union` (freeVars b Set.\\ boundVars ta)+ Quant _pisig ta b -> freeVars ta `Set.union` (freeVars b Set.\\ boundVars ta) {- Quant pisig tel ta b -> freeVars tel' `Set.union` (freeVars b Set.\\ boundVars tel')@@ -1185,7 +1219,7 @@ e -> error $ "freeVars " ++ show e ++ " not implemented" instance FreeVars Clause where- freeVars (Clause _ ps Nothing) = mempty -- absurd clause+ freeVars (Clause _ _ Nothing) = mempty -- absurd clause freeVars (Clause _ ps (Just e)) = freeVars e Set.\\ boundVars ps patternVars :: Pattern -> [Name]@@ -1245,20 +1279,20 @@ usedDefs = usedDefs . telescope instance UsedDefs DefId where- usedDefs id- | idKind id `elem` [FunK, DatK] = [unqual $ idName id]+ usedDefs x+ | idKind x `elem` [FunK, DatK] = [unqual $ idName x] | otherwise = [] instance UsedDefs Clause where usedDefs = usedDefs . clExpr instance UsedDefs Expr where- usedDefs (Def id) = usedDefs id+ usedDefs (Def x) = usedDefs x usedDefs (Pair f e) = usedDefs (f, e) usedDefs (App f e) = usedDefs (f, e) usedDefs (Max es) = usedDefs es usedDefs (Plus es) = usedDefs es- usedDefs (Lam _ x e) = usedDefs e+ usedDefs (Lam _ _ e) = usedDefs e usedDefs (Sing a b) = usedDefs (a, b) usedDefs (Below _ b) = usedDefs b -- usedDefs (Quant _ tel tb b) = usedDefs (tel, tb, b)@@ -1273,14 +1307,15 @@ usedDefs Meta{} = [] usedDefs Var{} = [] usedDefs Proj{} = []- usedDefs (Record ri rs) = foldMap (usedDefs . snd) rs+ usedDefs (Record _ri rs) = foldMap (usedDefs . snd) rs usedDefs e = error $ "usedDefs " ++ show e ++ " not implemented" rhsDefs :: [Clause] -> [Name]-rhsDefs cls = List.foldl (\ ns (Clause _ ps e) -> maybe [] usedDefs e ++ ns) [] cls+rhsDefs cls = List.foldl (\ ns (Clause _ _ e) -> maybe [] usedDefs e ++ ns) [] cls -- pretty printing expressions --------------------------------------- +precArrL, precAppL, precAppR :: Int [precArrL, precAppL, precAppR] = [1..3] instance Pretty Name where@@ -1303,30 +1338,30 @@ prettyPrec _ (Meta i) = text $ "?" ++ show i prettyPrec _ (Var n) = pretty n -- prettyPrec _ (Con _ n) = text n- prettyPrec _ (Def id) = pretty id+ prettyPrec _ (Def x) = pretty x -- prettyPrec _ (Let n) = text n prettyPrec _ (Sing e t) = angleBrackets $ pretty e <+> colon <+> pretty t- prettyPrec k e@Succ{} =+ prettyPrec _ e@Succ{} = case succView e of (n, Zero) -> text $ show n- (n, e) -> text (replicate n '$') <> prettyPrec precAppR e+ (n, e') -> text (replicate n '$') <> prettyPrec precAppR e' -- prettyPrec k (Succ e) = text "$" <> prettyPrec precAppR e {- prettyPrec k (Succ e) = parensIf (precAppR <= k) $ text "$" <+> prettyPrec precAppR e -} prettyPrec k (Max es) = parensIf (precAppR <= k) $ List.foldl (\ d e -> d <+> prettyPrec precAppR e) (text "max") es prettyPrec k (Plus (e:es)) = parensIf (1 < k) $- List.foldl (\ d e -> d <+> text "+" <+> prettyPrec 1 e) (prettyPrec 1 e) es- prettyPrec k (Proj Pre n) = pretty n- prettyPrec k (Proj Post n) = text "." <> pretty n- prettyPrec k (Record AnonRec []) = text "record" <+> braces empty- prettyPrec k (Record AnonRec rs) = text "record" <+> prettyRecFields rs- prettyPrec k (Record (NamedRec _ n _ dotted) []) = dotIf dotted $ pretty n- prettyPrec k (Record (NamedRec _ n True dotted) rs) = dotIf dotted $ pretty n <+> prettyRecFields rs+ List.foldl (\ d e' -> d <+> text "+" <+> prettyPrec 1 e') (prettyPrec 1 e) es+ prettyPrec _ (Proj Pre n) = pretty n+ prettyPrec _ (Proj Post n) = text "." <> pretty n+ prettyPrec _ (Record AnonRec []) = text "record" <+> braces empty+ prettyPrec _ (Record AnonRec rs) = text "record" <+> prettyRecFields rs+ prettyPrec _ (Record (NamedRec _ n _ dotted) []) = dotIf dotted $ pretty n+ prettyPrec _ (Record (NamedRec _ n True dotted) rs) = dotIf dotted $ pretty n <+> prettyRecFields rs prettyPrec k (Record (NamedRec _ n False dotted) rs) = parensIf (not (null rs) && precAppR <= k) $ dotIf dotted $ pretty n <+> hsep (List.map (prettyPrec precAppR . snd) rs)- prettyPrec k (Pair e1 e2) = parens $ pretty e1 <+> comma <+> pretty e2+ prettyPrec _ (Pair e1 e2) = parens $ pretty e1 <+> comma <+> pretty e2 prettyPrec k (App f e) = parensIf (precAppR <= k) $ prettyPrec precAppL f <+> prettyPrec precAppR e -- prettyPrec k (App e []) = prettyPrec k e@@ -1337,20 +1372,20 @@ prettyPrec k (Lam dec x e) = parensIf (0 < k) $ (if erased dec then brackets else id) (text "\\" <+> pretty x <+> text "->") <+> pretty e- prettyPrec k (LLet (TBind n (Domain mt ki dec)) tel e1 e2) | null tel = parensIf (0 < k) $+ prettyPrec k (LLet (TBind n (Domain mt _ki dec)) tel e1 e2) | null tel = parensIf (0 < k) $ (text "let" <+> ((if erased dec then lbrack else PP.empty) <> pretty n <+> vcat [ maybe empty (\ t -> colon <+> pretty t) mt <> (if erased dec then rbrack else PP.empty) , equals <+> pretty e1 ])) $$ (text "in" <+> pretty e2)- prettyPrec k (LLet (TBind n (Domain mt ki dec)) tel e1 e2) = parensIf (0 < k) $+ prettyPrec k (LLet (TBind n (Domain mt _ki dec)) tel e1 e2) = parensIf (0 < k) $ (text "let" <+> ((if erased dec then brackets else id) $ pretty n) <+> pretty tel <+> vcat [ maybe empty (\ t -> colon <+> pretty t) mt , equals <+> pretty e1 ]) $$ (text "in" <+> pretty e2) {-- prettyPrec k (LLet (TBind n (Domain Nothing ki dec)) e1 e2) = parensIf (0 < k) $+ prettyPrec k (LLet (TBind n (Domain Nothing _ki dec)) e1 e2) = parensIf (0 < k) $ (text "let" <+> ((if erased dec then lbrack else PP.empty) <> pretty n <+> vcat [ if erased dec then rbrack else PP.empty , equals <+> pretty e1 ]))@@ -1362,28 +1397,28 @@ prettyPrec k (Quant Pi (TBound beta) t2) = parensIf (precArrL <= k) $ (pretty beta <+> text "->" <+> pretty t2) - prettyPrec k (Quant pisig (TBind x (Domain t1 ki dec)) t2) | null (suggestion x) = parensIf (precArrL <= k) $+ prettyPrec k (Quant pisig (TBind x (Domain t1 _ki dec)) t2) | null (suggestion x) = parensIf (precArrL <= k) $ ((if erased dec then ppol <> brackets (pretty t1) else ppol <+> prettyPrec precArrL t1) <+> pretty pisig <+> pretty t2) where pol = polarity dec ppol = if pol==defaultPol then PP.empty else text $ show pol - prettyPrec k (Quant pisig (TBind x (Domain (Below ltle t1) ki dec)) t2) = parensIf (precArrL <= k) $+ prettyPrec k (Quant pisig (TBind x (Domain (Below ltle t1) _ki dec)) t2) = parensIf (precArrL <= k) $ ppol <> ((if erased dec then brackets else parens) $ pretty x <+> pretty ltle <+> pretty t1) <+> pretty pisig <+> pretty t2 where pol = polarity dec ppol = if pol==defaultPol then PP.empty else text $ show pol - prettyPrec k (Quant pisig (TBind x (Domain t1 ki dec)) t2) = parensIf (precArrL <= k) $+ prettyPrec k (Quant pisig (TBind x (Domain t1 _ki dec)) t2) = parensIf (precArrL <= k) $ ppol <> ((if erased dec then brackets else parens) $ pretty x <+> colon <+> pretty t1) <+> pretty pisig <+> pretty t2 where pol = polarity dec ppol = if pol==defaultPol then PP.empty else text $ show pol - prettyPrec k (Ann e) = pretty e+ prettyPrec _ (Ann e) = pretty e class DotIf a where dotIf :: a -> Doc -> Doc@@ -1396,17 +1431,17 @@ dotIf c = dotIf (isDotted c) instance Pretty TBind where- prettyPrec k (TMeasure mu) = pretty mu- prettyPrec k (TBound beta) = pretty beta+ prettyPrec _ (TMeasure mu) = pretty mu+ prettyPrec _ (TBound beta) = pretty beta - prettyPrec k (TBind x (Domain (Below ltle t1) ki dec)) =+ prettyPrec _ (TBind x (Domain (Below ltle t1) _ki dec)) = ppol <> ((if erased dec then brackets else parens) $ pretty x <+> pretty ltle <+> pretty t1) where pol = polarity dec ppol = if pol==defaultPol then PP.empty else text $ show pol - prettyPrec k (TBind x (Domain t1 ki dec)) =+ prettyPrec _ (TBind x (Domain t1 _ki dec)) = ppol <> ((if erased dec then brackets else parens) $ pretty x <+> colon <+> pretty t1)@@ -1414,12 +1449,14 @@ ppol = if pol==defaultPol then PP.empty else text $ show pol instance Pretty Telescope where- prettyPrec k tel = sep $ map pretty $ telescope tel+ prettyPrec _ tel = sep $ map pretty $ telescope tel +prettyRecFields :: (Pretty a, Pretty b) => [(a,b)] -> Doc prettyRecFields rs = let l:ls = List.map (\ (n, e) -> pretty n <+> equals <+> prettyPrec 0 e) rs in cat $ (lbrace <+> l) : List.map (semi <+>) ls ++ [empty <+> rbrace] +prettyCase :: Clause -> Doc prettyCase (Clause _ [p] Nothing) = pretty p prettyCase (Clause _ [p] (Just e)) = pretty p <+> text "->" <+> pretty e @@ -1450,26 +1487,26 @@ instance Pretty (Sort Expr) where- prettyPrec k (SortC c) = text $ show c- prettyPrec k (Set Zero) = text "Set" -- print as Set for backwards compat.+ prettyPrec _ (SortC c) = text $ show c+ prettyPrec _ (Set Zero) = text "Set" -- print as Set for backwards compat. prettyPrec k (Set e) = parensIf (precAppR <= k) $ text "Set" <+> prettyPrec precAppR e prettyPrec k (CoSet e) = parensIf (precAppR <= k) $ text "CoSet" <+> prettyPrec precAppR e instance Pretty Pattern where- prettyPrec k (VarP x) = pretty x+ prettyPrec _ (VarP x) = pretty x prettyPrec k (ConP co c ps) = parensIf (not (null ps) && precAppR <= k) $ -- (if dottedPat co then text "." else empty) <> dotIf (dottedPat co) $ pretty c <+> hsep (List.map (prettyPrec precAppR) ps) prettyPrec k (SuccP p) = text "$" <> prettyPrec k p prettyPrec k (SizeP x y) = parensIf (precAppR <= k) $ pretty y <+> text "<" <+> pretty x- prettyPrec k (PairP p p') = parens $ pretty p <> comma <+> pretty p'+ prettyPrec _ (PairP p p') = parens $ pretty p <> comma <+> pretty p' prettyPrec k (UnusableP p) = prettyPrec k p- prettyPrec k (ProjP x) = text "." <> pretty x- prettyPrec k (DotP p) = text "." <> prettyPrec precAppR p- prettyPrec k (AbsurdP) = text "()"- prettyPrec k (ErasedP p) = brackets $ prettyPrec 0 p+ prettyPrec _ (ProjP x) = text "." <> pretty x+ prettyPrec _ (DotP p) = text "." <> prettyPrec precAppR p+ prettyPrec _ (AbsurdP) = text "()"+ prettyPrec _ (ErasedP p) = brackets $ prettyPrec 0 p instance Show Expr where@@ -1479,8 +1516,11 @@ instance Show Pattern where show = render . pretty +showCase :: Clause -> String showCase (Clause _ [p] Nothing) = render (prettyPrec precAppR p) showCase (Clause _ [p] (Just e)) = render (prettyPrec precAppR p) ++ " -> " ++ show e++showCases :: [Clause] -> String showCases = showList "; " showCase @@ -1506,7 +1546,7 @@ SuccP p -> SuccP $ patSubst phi p SizeP e y -> SizeP (parSubst phi' e) y PairP p1 p2 -> PairP (patSubst phi p1) (patSubst phi p2)- ProjP x -> p+ ProjP _ -> p DotP e -> DotP $ parSubst phi' e AbsurdP -> p ErasedP p -> ErasedP $ patSubst phi p@@ -1545,7 +1585,7 @@ instance ParSubst a => ParSubst (Sort a) where parSubst phi (CoSet e) = CoSet $ parSubst phi e parSubst phi (Set e) = Set $ parSubst phi e- parSubst phi s = s+ parSubst _ s = s instance ParSubst Telescope where parSubst phi = Telescope . parSubst phi . telescope@@ -1555,14 +1595,14 @@ -- TODO: Refactor! instance ParSubst Expr where- parSubst phi (Sort s) = Sort $ parSubst phi s+ parSubst phi (Sort s) = Sort $ parSubst phi s parSubst phi (Succ e) = Succ (parSubst phi e)- parSubst phi e@Zero = e- parSubst phi e@Infty = e- parSubst phi e@Meta{} = e- parSubst phi e@Proj{} = e+ parSubst _ e@Zero = e+ parSubst _ e@Infty = e+ parSubst _ e@Meta{} = e+ parSubst _ e@Proj{} = e parSubst phi (Var x) = phi x- parSubst phi e@Def{} = e+ parSubst _ e@Def{} = e parSubst phi (Case e mt cls) = Case (parSubst phi e) (parSubst phi mt) (parSubst phi cls) parSubst phi (LLet ta tel b c) = LLet (parSubst phi ta) (parSubst phi tel) (parSubst phi b) (parSubst phi c) parSubst phi (Pair f e) = Pair (parSubst phi f) (parSubst phi e)@@ -1576,7 +1616,7 @@ -- parSubst phi (Quant pisig tel a b) = Quant pisig (parSubst phi tel) (parSubst phi a) (parSubst phi b) parSubst phi (Sing a b) = Sing (parSubst phi a) (parSubst phi b) parSubst phi (Ann e) = Ann $ parSubst phi e- parSubst phi e = error $ "Abstract.parSubst phi (" ++ show e ++ ") undefined"+ parSubst _ e = error $ "Abstract.parSubst phi (" ++ show e ++ ") undefined" {- NOT NEEDED sgSubst :: Name -> Expr -> Expr -> Expr sgSubst x t u = parSubst (\ y -> if x == y then t else Var y) u@@ -1614,7 +1654,7 @@ instance Substitute a => Substitute (Sort a) where subst phi (CoSet e) = CoSet $ subst phi e subst phi (Set e) = Set $ subst phi e- subst phi s = s+ subst _ s = s instance Substitute Telescope where subst phi = Telescope . subst phi . telescope@@ -1625,12 +1665,12 @@ instance Substitute Expr where subst phi (Sort s) = Sort $ subst phi s subst phi (Succ e) = Succ (subst phi e)- subst phi e@Zero = e- subst phi e@Infty = e+ subst _ e@Zero = e+ subst _ e@Infty = e subst phi e@(Meta i) = Map.findWithDefault e i phi- subst phi e@Var{} = e- subst phi e@Def{} = e- subst phi e@Proj{} = e+ subst _ e@Var{} = e+ subst _ e@Def{} = e+ subst _ e@Proj{} = e subst phi (Case e mt cls) = Case (subst phi e) (subst phi mt) (subst phi cls) subst phi (LLet ta tel b c) = LLet (subst phi ta) (subst phi tel) (subst phi b) (subst phi c) subst phi (Pair f e) = Pair (subst phi f) (subst phi e)@@ -1644,7 +1684,7 @@ -- subst phi (Quant pisig tel a b) = Quant pisig (subst phi tel) (subst phi a) (subst phi b) subst phi (Sing a b) = Sing (subst phi a) (subst phi b) subst phi (Ann e) = Ann $ subst phi e- subst phi e = error $ "Abstract.subst phi (" ++ show e ++ ") undefined"+ subst _ e = error $ "Abstract.subst phi (" ++ show e ++ ") undefined" -- Printing declarations --------------------------------------------- @@ -1660,6 +1700,7 @@ prettyFun :: Name -> [Clause] -> Doc prettyFun f cls = vlist $ List.map (prettyClause f) cls +prettyClause :: Pretty a => a -> Clause -> Doc prettyClause f (Clause _ ps Nothing) = pretty f <+> hsep (List.map (prettyPrec precAppR) ps) prettyClause f (Clause _ ps (Just e)) = pretty f <+> hsep (List.map (prettyPrec precAppR) ps)@@ -1790,7 +1831,7 @@ injectiveVars (a, b, c) = mconcat [injectiveVars a, injectiveVars b, injectiveVars c] instance InjectiveVars a => InjectiveVars (TBinding a) where- injectiveVars (TBind x a) = injectiveVars a+ injectiveVars (TBind _ a) = injectiveVars a injectiveVars (TMeasure m) = injectiveVars m injectiveVars (TBound b) = injectiveVars b @@ -1821,7 +1862,7 @@ where (tele, core) = typeToTele ty fvs = freeVars core ivs = injectiveVars core- classifyField fvs (TBind name (Domain ty ki dec)) = FieldInfo+ classifyField fvs (TBind name (Domain ty _ki dec)) = FieldInfo { fDec = dec , fName = name , fType = ty@@ -2109,7 +2150,7 @@ isSuccessor _ = False shallowSuccP :: Pattern -> Bool-shallowSuccP p = case p of+shallowSuccP = \case (SuccP p) -> isVarP p (ErasedP p) -> shallowSuccP p (DotP e) -> shallowSuccE e
src/Collection.hs view
@@ -1,9 +1,12 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-} module Collection where -import Data.List as List-import Data.Monoid+import qualified Data.List as List+#if !MIN_VERSION_base(4,8,0)+import Data.Monoid (Monoid)+#endif import Data.Set (Set) import qualified Data.Set as Set
src/Eval.hs view
@@ -10,15 +10,16 @@ import Prelude hiding (mapM, null, pi) import Control.Applicative-import Control.Monad.Identity hiding (mapM)-import Control.Monad.State hiding (mapM)-import Control.Monad.Except hiding (mapM)-import Control.Monad.Reader hiding (mapM)+import Control.Monad hiding (mapM)+import Control.Monad.State (StateT, execStateT, get, gets, put)+import Control.Monad.Except (runExcept, MonadError)+import Control.Monad.Reader (asks, local) import qualified Data.Array as Array import Data.Maybe -- fromMaybe import Data.Monoid hiding ((<>))-import Data.List as List hiding (null) -- find+import Data.List (find)+import qualified Data.List as List import Data.Map (Map) import qualified Data.Map as Map import Data.Foldable (foldMap)
src/Lexer.hs view
@@ -129,7 +129,7 @@ alexGetByte :: AlexInput -> Maybe (Byte,AlexInput) alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s)) alexGetByte (p,c,[],[]) = Nothing-alexGetByte (p,_,[],(c:s)) = let p' = alexMove p c +alexGetByte (p,_,[],(c:s)) = let p' = alexMove p c (b:bs) = utf8Encode c in p' `seq` Just (b, (p', c, bs, s)) @@ -363,61 +363,61 @@ tok f p s = f p s -alex_action_3 = tok (\p s -> Sized p) -alex_action_4 = tok (\p s -> Data p) -alex_action_5 = tok (\p s -> CoData p) -alex_action_6 = tok (\p s -> Record p) -alex_action_7 = tok (\p s -> Fields p) -alex_action_8 = tok (\p s -> Fun p) -alex_action_9 = tok (\p s -> CoFun p) -alex_action_10 = tok (\p s -> Pattern p) -alex_action_11 = tok (\p s -> Case p) -alex_action_12 = tok (\p s -> Def p) -alex_action_13 = tok (\p s -> Let p) -alex_action_14 = tok (\p s -> In p) +alex_action_3 = tok (\p s -> Sized p)+alex_action_4 = tok (\p s -> Data p)+alex_action_5 = tok (\p s -> CoData p)+alex_action_6 = tok (\p s -> Record p)+alex_action_7 = tok (\p s -> Fields p)+alex_action_8 = tok (\p s -> Fun p)+alex_action_9 = tok (\p s -> CoFun p)+alex_action_10 = tok (\p s -> Pattern p)+alex_action_11 = tok (\p s -> Case p)+alex_action_12 = tok (\p s -> Def p)+alex_action_13 = tok (\p s -> Let p)+alex_action_14 = tok (\p s -> In p) alex_action_15 = tok (\p s -> Eval p) alex_action_16 = tok (\p s -> Fail p) alex_action_17 = tok (\p s -> Check p) alex_action_18 = tok (\p s -> TrustMe p) alex_action_19 = tok (\p s -> Impredicative p)-alex_action_20 = tok (\p s -> Mutual p) -alex_action_21 = tok (\p s -> Type p) -alex_action_22 = tok (\p s -> Set p) -alex_action_23 = tok (\p s -> CoSet p) -alex_action_24 = tok (\p s -> LTri p) -alex_action_25 = tok (\p s -> RTri p) -alex_action_26 = tok (\p s -> Size p) -alex_action_27 = tok (\p s -> Infty p) -alex_action_28 = tok (\p s -> Succ p) -alex_action_29 = tok (\p s -> Max p) -alex_action_30 = tok (\p s -> BrOpen p) -alex_action_31 = tok (\p s -> BrClose p) -alex_action_32 = tok (\p s -> BracketOpen p) -alex_action_33 = tok (\p s -> BracketClose p) -alex_action_34 = tok (\p s -> PrOpen p) -alex_action_35 = tok (\p s -> PrClose p) -alex_action_36 = tok (\p s -> Bar p) -alex_action_37 = tok (\p s -> Sem p) -alex_action_38 = tok (\p s -> Col p) -alex_action_39 = tok (\p s -> Comma p) -alex_action_40 = tok (\p s -> Dot p) -alex_action_41 = tok (\p s -> PlusPlus p) -alex_action_42 = tok (\p s -> Plus p) -alex_action_43 = tok (\p s -> Minus p) -alex_action_44 = tok (\p s -> Slash p) -alex_action_45 = tok (\p s -> Times p) -alex_action_46 = tok (\p s -> Hat p) -alex_action_47 = tok (\p s -> Amp p) -alex_action_48 = tok (\p s -> Arrow p) -alex_action_49 = tok (\p s -> Leq p) -alex_action_50 = tok (\p s -> Eq p) -alex_action_51 = tok (\p s -> Lam p) -alex_action_52 = tok (\p s -> Underscore p) -alex_action_53 = tok (\p s -> AngleOpen p) -alex_action_54 = tok (\p s -> AngleClose p) -alex_action_55 = tok (\p s -> (Number s p )) -alex_action_56 = tok (\p s -> (Id s p )) -alex_action_57 = tok (\p s -> (qualId s p)) +alex_action_20 = tok (\p s -> Mutual p)+alex_action_21 = tok (\p s -> Type p)+alex_action_22 = tok (\p s -> Set p)+alex_action_23 = tok (\p s -> CoSet p)+alex_action_24 = tok (\p s -> LTri p)+alex_action_25 = tok (\p s -> RTri p)+alex_action_26 = tok (\p s -> Size p)+alex_action_27 = tok (\p s -> Infty p)+alex_action_28 = tok (\p s -> Succ p)+alex_action_29 = tok (\p s -> Max p)+alex_action_30 = tok (\p s -> BrOpen p)+alex_action_31 = tok (\p s -> BrClose p)+alex_action_32 = tok (\p s -> BracketOpen p)+alex_action_33 = tok (\p s -> BracketClose p)+alex_action_34 = tok (\p s -> PrOpen p)+alex_action_35 = tok (\p s -> PrClose p)+alex_action_36 = tok (\p s -> Bar p)+alex_action_37 = tok (\p s -> Sem p)+alex_action_38 = tok (\p s -> Col p)+alex_action_39 = tok (\p s -> Comma p)+alex_action_40 = tok (\p s -> Dot p)+alex_action_41 = tok (\p s -> PlusPlus p)+alex_action_42 = tok (\p s -> Plus p)+alex_action_43 = tok (\p s -> Minus p)+alex_action_44 = tok (\p s -> Slash p)+alex_action_45 = tok (\p s -> Times p)+alex_action_46 = tok (\p s -> Hat p)+alex_action_47 = tok (\p s -> Amp p)+alex_action_48 = tok (\p s -> Arrow p)+alex_action_49 = tok (\p s -> Leq p)+alex_action_50 = tok (\p s -> Eq p)+alex_action_51 = tok (\p s -> Lam p)+alex_action_52 = tok (\p s -> Underscore p)+alex_action_53 = tok (\p s -> AngleOpen p)+alex_action_54 = tok (\p s -> AngleClose p)+alex_action_55 = tok (\p s -> (Number s p ))+alex_action_56 = tok (\p s -> (Id s p ))+alex_action_57 = tok (\p s -> (qualId s p)) {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-}@@ -518,7 +518,7 @@ = case alex_scan_tkn user input (0) input sc AlexNone of (AlexNone, input') -> case alexGetByte input of- Nothing -> + Nothing -> @@ -547,13 +547,13 @@ alex_scan_tkn user orig_input len input s last_acc = input `seq` -- strict in the input- let + let new_acc = (check_accs (alex_accept `quickIndex` (s))) in new_acc `seq` case alexGetByte input of Nothing -> (new_acc, input)- Just (c, new_input) -> + Just (c, new_input) -> @@ -562,7 +562,7 @@ base = alexIndexInt32OffAddr alex_base s offset = (base + ord_c) check = alexIndexInt16OffAddr alex_check offset- + new_s = if (offset >= (0)) && (check == ord_c) then alexIndexInt16OffAddr alex_table offset else alexIndexInt16OffAddr alex_deflt s@@ -618,16 +618,16 @@ alexAndPred p1 p2 user in1 len in2 = p1 user in1 len in2 && p2 user in1 len in2 ---alexPrevCharIsPred :: Char -> AlexAccPred _ +--alexPrevCharIsPred :: Char -> AlexAccPred _ alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input alexPrevCharMatches f _ input _ _ = f (alexInputPrevChar input) ---alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ +--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input --alexRightContext :: Int -> AlexAccPred _-alexRightContext (sc) user _ _ input = +alexRightContext (sc) user _ _ input = case alex_scan_tkn user input (0) input sc AlexNone of (AlexNone, _) -> False _ -> True
src/Lexer.x view
@@ -1,6 +1,9 @@ { +{-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}+ module Lexer where }
+ src/Makefile view
@@ -0,0 +1,111 @@+# Makefile for miniagda++files=Abstract Collection Concrete Eval Extract HsSyntax Lexer Main Parser Polarity PrettyTCM ScopeChecker Semiring SparseMatrix TCM Termination ToHaskell Tokens TraceError TreeShapedOrder TypeChecker Util Value Warshall+hsfiles=$(foreach file,$(files),$(file).hs)+ghcflags=-ignore-package monads-fd -rtsopts+# -fglasgow-exts+optflags=+# -O #slow compilation, not much speedup+profflags=-prof -auto-all+distfiles=*.hs *.hs-boot Lexer.x Parser.y Makefile+distdirs=../test/succeed ../test/fail ../examples++cabalp=cabal install -p --enable-executable-profiling++.PHONY : test succeed fail examples lib current default all clean veryclean++default : Main test+all : Main test examples lib++prof-current : miniagda-prof+ miniagda-prof ../examples/FiCS12/fics12-06.ma +RTS -prof -s+# miniagda-prof ../test/succeed/Zero.ma +RTS -prof -s+# miniagda-prof privateExamples/NisseContNorm/negative-2010-11-23.ma +RTS -prof+current : Main+# Main ../test/fail/BoundedFake.ma+ Main ../examples/Existential/StreamProcCase.ma+# Main ../test/features/Existential/list.ma+# Main ../test/features/Existential/nat.ma+# Main ../examples/RBTree/RBTreeConor.ma+# Main ../test/fail/InvalidField.ma+# Main ../test/succeed/BuiltinSigma.ma+# Main ../test/features/records.ma+# Main ../test/succeed/MeasuredHerSubst2.ma+# Main ../examples/Coinductive/SubjectReductionProblem.ma+# Main ../examples/Sized/Maximum.ma+# Main ../examples/Irrelevance/Vector.ma+# Main ../examples/JeffTerellCoqClub20100120.ma+# Main ../examples/HugoCantor/tryLoopInjData.ma+# Main ../examples/HugoCantor/InjDataLoop.ma+# Main ../test/features/countConstructors.ma+# Main ../examples/HugoCantor/injectiveData.ma+# Main ../examples/BoveCapretta/Eval.ma # vec.ma # ../examples/List.ma+# Main ../test/fail/OverlappingPatternIndFam.ma # vec.ma # ../examples/List.ma++# ship : ../dist/miniagda-2009-07-03.tgz # 06-27.tgz+#+# ../dist/%.tgz : $(distfiles)+# tar czf $@ $^ $(distdirs)+#++miniagda-prof : Main.hs $(hsfiles)+ ghc $(ghcflags) $(profflags) $< --make -o $@++Main : Main.hs $(hsfiles)+ ghc $(ghcflags) $(optflags) $< --make -o $@++install-prof-libs :+ $(cabalp) transformers+ $(cabalp) mtl+ $(cabalp) syb+ $(cabalp) parsec+ $(cabalp) preprocessor-tools+ $(cabalp) cpphs+ $(cabalp) haskell-src-exts+ $(cabalp) IfElse+ $(cabalp) utility-ht++SCT : SCT.hs Lexer.hs SCTParser.hs SCTSyntax.hs+ ghc $(ghcflags) $< --make -o $@++Lexer.hs : Lexer.x+ alex $<++%arser.hs : %arser.y Lexer.hs+ happy --info=$<-grm.txt $<++test : Main succeed fail++succeed :+ @echo "======================================================================"+ @echo "===================== Suite of successfull tests ====================="+ @echo "======================================================================"+ make -C ../test/succeed++fail :+ @echo "======================================================================"+ @echo "======================= Suite of failing tests ======================="+ @echo "======================================================================"+ make -C ../test/fail++examples : Main+ @echo "======================================================================"+ @echo "========================== Suite of examples ========================="+ @echo "======================================================================"+ make -C ../examples++lib : Main+ @echo "======================================================================"+ @echo "=============================== Library =============================="+ @echo "======================================================================"+ make -C ../lib+++clean :+ -rm *.o *.hi Main miniagda-prof+# make -C ../test/fail clean++veryclean : clean+ make -C ../test/fail clean++# EOF
src/Parser.hs view
@@ -10,6829 +10,6832 @@ import qualified Abstract as A import qualified Polarity as A import Concrete (Name,patApp)-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.19.5--data HappyAbsSyn - = HappyTerminal (T.Token)- | HappyErrorToken Int- | HappyAbsSyn4 ([C.Declaration])- | HappyAbsSyn6 (C.Declaration)- | HappyAbsSyn12 ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name]))- | HappyAbsSyn13 ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name]))- | HappyAbsSyn18 (C.LetDef)- | HappyAbsSyn19 (Bool)- | HappyAbsSyn20 (Maybe C.Type)- | HappyAbsSyn22 ([Name])- | HappyAbsSyn23 (Name)- | HappyAbsSyn26 (Pol)- | HappyAbsSyn27 (A.Measure C.Expr)- | HappyAbsSyn28 ([C.Expr])- | HappyAbsSyn29 (A.Bound C.Expr)- | HappyAbsSyn31 (C.Telescope)- | HappyAbsSyn32 (C.TBind)- | HappyAbsSyn35 (C.LBind)- | HappyAbsSyn36 ((Dec, C.Name))- | HappyAbsSyn40 (C.Expr)- | HappyAbsSyn48 (C.QName)- | HappyAbsSyn49 ([([Name],C.Expr)])- | HappyAbsSyn50 (([Name],C.Expr))- | HappyAbsSyn51 (C.TypeSig)- | HappyAbsSyn52 (C.Constructor)- | HappyAbsSyn53 ([C.Constructor ])- | HappyAbsSyn54 ([C.Clause])- | HappyAbsSyn55 (C.Clause)- | HappyAbsSyn56 ([C.Pattern])- | HappyAbsSyn58 (C.Pattern)- | HappyAbsSyn64 ([C.Clause ])--{- to allow type-synonyms as our monads (likely- - with explicitly-specified bind and return)- - in Haskell98, it seems that with- - /type M a = .../, then /(HappyReduction M)/- - is not allowed. But Happy is a- - code-generator that can just substitute it.-type HappyReduction m = - Int - -> (T.Token)- -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)- -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)] - -> HappyStk HappyAbsSyn - -> [(T.Token)] -> m HappyAbsSyn--}--action_0,- action_1,- action_2,- action_3,- action_4,- action_5,- action_6,- action_7,- action_8,- action_9,- action_10,- action_11,- action_12,- action_13,- action_14,- action_15,- action_16,- action_17,- action_18,- action_19,- action_20,- action_21,- action_22,- action_23,- action_24,- action_25,- action_26,- action_27,- action_28,- action_29,- action_30,- action_31,- action_32,- action_33,- action_34,- action_35,- action_36,- action_37,- action_38,- action_39,- action_40,- action_41,- action_42,- action_43,- action_44,- action_45,- action_46,- action_47,- action_48,- action_49,- action_50,- action_51,- action_52,- action_53,- action_54,- action_55,- action_56,- action_57,- action_58,- action_59,- action_60,- action_61,- action_62,- action_63,- action_64,- action_65,- action_66,- action_67,- action_68,- action_69,- action_70,- action_71,- action_72,- action_73,- action_74,- action_75,- action_76,- action_77,- action_78,- action_79,- action_80,- action_81,- action_82,- action_83,- action_84,- action_85,- action_86,- action_87,- action_88,- action_89,- action_90,- action_91,- action_92,- action_93,- action_94,- action_95,- action_96,- action_97,- action_98,- action_99,- action_100,- action_101,- action_102,- action_103,- action_104,- action_105,- action_106,- action_107,- action_108,- action_109,- action_110,- action_111,- action_112,- action_113,- action_114,- action_115,- action_116,- action_117,- action_118,- action_119,- action_120,- action_121,- action_122,- action_123,- action_124,- action_125,- action_126,- action_127,- action_128,- action_129,- action_130,- action_131,- action_132,- action_133,- action_134,- action_135,- action_136,- action_137,- action_138,- action_139,- action_140,- action_141,- action_142,- action_143,- action_144,- action_145,- action_146,- action_147,- action_148,- action_149,- action_150,- action_151,- action_152,- action_153,- action_154,- action_155,- action_156,- action_157,- action_158,- action_159,- action_160,- action_161,- action_162,- action_163,- action_164,- action_165,- action_166,- action_167,- action_168,- action_169,- action_170,- action_171,- action_172,- action_173,- action_174,- action_175,- action_176,- action_177,- action_178,- action_179,- action_180,- action_181,- action_182,- action_183,- action_184,- action_185,- action_186,- action_187,- action_188,- action_189,- action_190,- action_191,- action_192,- action_193,- action_194,- action_195,- action_196,- action_197,- action_198,- action_199,- action_200,- action_201,- action_202,- action_203,- action_204,- action_205,- action_206,- action_207,- action_208,- action_209,- action_210,- action_211,- action_212,- action_213,- action_214,- action_215,- action_216,- action_217,- action_218,- action_219,- action_220,- action_221,- action_222,- action_223,- action_224,- action_225,- action_226,- action_227,- action_228,- action_229,- action_230,- action_231,- action_232,- action_233,- action_234,- action_235,- action_236,- action_237,- action_238,- action_239,- action_240,- action_241,- action_242,- action_243,- action_244,- action_245,- action_246,- action_247,- action_248,- action_249,- action_250,- action_251,- action_252,- action_253,- action_254,- action_255,- action_256,- action_257,- action_258,- action_259,- action_260,- action_261,- action_262,- action_263,- action_264,- action_265,- action_266,- action_267,- action_268,- action_269,- action_270,- action_271,- action_272,- action_273,- action_274,- action_275,- action_276,- action_277,- action_278,- action_279,- action_280,- action_281,- action_282,- action_283,- action_284,- action_285,- action_286,- action_287,- action_288,- action_289,- action_290,- action_291,- action_292,- action_293,- action_294,- action_295,- action_296,- action_297,- action_298,- action_299,- action_300,- action_301,- action_302,- action_303,- action_304,- action_305,- action_306,- action_307,- action_308,- action_309,- action_310,- action_311,- action_312,- action_313,- action_314,- action_315,- action_316,- action_317,- action_318,- action_319,- action_320,- action_321,- action_322,- action_323,- action_324,- action_325,- action_326,- action_327,- action_328,- action_329,- action_330,- action_331,- action_332,- action_333,- action_334,- action_335,- action_336,- action_337,- action_338,- action_339,- action_340,- action_341,- action_342,- action_343,- action_344,- action_345,- action_346,- action_347,- action_348,- action_349,- action_350,- action_351,- action_352,- action_353,- action_354,- action_355,- action_356,- action_357,- action_358,- action_359,- action_360,- action_361,- action_362,- action_363,- action_364,- action_365,- action_366,- action_367,- action_368,- action_369,- action_370,- action_371,- action_372,- action_373,- action_374,- action_375,- action_376,- action_377,- action_378,- action_379,- action_380,- action_381,- action_382,- action_383,- action_384,- action_385,- action_386,- action_387,- action_388,- action_389,- action_390,- action_391,- action_392,- action_393,- action_394,- action_395,- action_396,- action_397 :: () => Int -> ({-HappyReduction (HappyIdentity) = -}- Int - -> (T.Token)- -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)- -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)] - -> HappyStk HappyAbsSyn - -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)--happyReduce_1,- happyReduce_2,- happyReduce_3,- happyReduce_4,- happyReduce_5,- happyReduce_6,- happyReduce_7,- happyReduce_8,- happyReduce_9,- happyReduce_10,- happyReduce_11,- happyReduce_12,- happyReduce_13,- happyReduce_14,- happyReduce_15,- happyReduce_16,- happyReduce_17,- happyReduce_18,- happyReduce_19,- happyReduce_20,- happyReduce_21,- happyReduce_22,- happyReduce_23,- happyReduce_24,- happyReduce_25,- happyReduce_26,- happyReduce_27,- happyReduce_28,- happyReduce_29,- happyReduce_30,- happyReduce_31,- happyReduce_32,- happyReduce_33,- happyReduce_34,- happyReduce_35,- happyReduce_36,- happyReduce_37,- happyReduce_38,- happyReduce_39,- happyReduce_40,- happyReduce_41,- happyReduce_42,- happyReduce_43,- happyReduce_44,- happyReduce_45,- happyReduce_46,- happyReduce_47,- happyReduce_48,- happyReduce_49,- happyReduce_50,- happyReduce_51,- happyReduce_52,- happyReduce_53,- happyReduce_54,- happyReduce_55,- happyReduce_56,- happyReduce_57,- happyReduce_58,- happyReduce_59,- happyReduce_60,- happyReduce_61,- happyReduce_62,- happyReduce_63,- happyReduce_64,- happyReduce_65,- happyReduce_66,- happyReduce_67,- happyReduce_68,- happyReduce_69,- happyReduce_70,- happyReduce_71,- happyReduce_72,- happyReduce_73,- happyReduce_74,- happyReduce_75,- happyReduce_76,- happyReduce_77,- happyReduce_78,- happyReduce_79,- happyReduce_80,- happyReduce_81,- happyReduce_82,- happyReduce_83,- happyReduce_84,- happyReduce_85,- happyReduce_86,- happyReduce_87,- happyReduce_88,- happyReduce_89,- happyReduce_90,- happyReduce_91,- happyReduce_92,- happyReduce_93,- happyReduce_94,- happyReduce_95,- happyReduce_96,- happyReduce_97,- happyReduce_98,- happyReduce_99,- happyReduce_100,- happyReduce_101,- happyReduce_102,- happyReduce_103,- happyReduce_104,- happyReduce_105,- happyReduce_106,- happyReduce_107,- happyReduce_108,- happyReduce_109,- happyReduce_110,- happyReduce_111,- happyReduce_112,- happyReduce_113,- happyReduce_114,- happyReduce_115,- happyReduce_116,- happyReduce_117,- happyReduce_118,- happyReduce_119,- happyReduce_120,- happyReduce_121,- happyReduce_122,- happyReduce_123,- happyReduce_124,- happyReduce_125,- happyReduce_126,- happyReduce_127,- happyReduce_128,- happyReduce_129,- happyReduce_130,- happyReduce_131,- happyReduce_132,- happyReduce_133,- happyReduce_134,- happyReduce_135,- happyReduce_136,- happyReduce_137,- happyReduce_138,- happyReduce_139,- happyReduce_140,- happyReduce_141,- happyReduce_142,- happyReduce_143,- happyReduce_144,- happyReduce_145,- happyReduce_146,- happyReduce_147,- happyReduce_148,- happyReduce_149,- happyReduce_150,- happyReduce_151,- happyReduce_152,- happyReduce_153,- happyReduce_154,- happyReduce_155,- happyReduce_156,- happyReduce_157,- happyReduce_158,- happyReduce_159,- happyReduce_160,- happyReduce_161,- happyReduce_162,- happyReduce_163,- happyReduce_164,- happyReduce_165,- happyReduce_166,- happyReduce_167,- happyReduce_168,- happyReduce_169,- happyReduce_170,- happyReduce_171,- happyReduce_172,- happyReduce_173,- happyReduce_174,- happyReduce_175,- happyReduce_176,- happyReduce_177,- happyReduce_178,- happyReduce_179,- happyReduce_180,- happyReduce_181,- happyReduce_182,- happyReduce_183,- happyReduce_184,- happyReduce_185,- happyReduce_186,- happyReduce_187,- happyReduce_188 :: () => ({-HappyReduction (HappyIdentity) = -}- Int - -> (T.Token)- -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)- -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)] - -> HappyStk HappyAbsSyn - -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)--action_0 (4) = happyGoto action_3-action_0 (5) = happyGoto action_2-action_0 _ = happyReduce_2--action_1 (5) = happyGoto action_2-action_1 _ = happyFail--action_2 (70) = happyShift action_16-action_2 (71) = happyShift action_17-action_2 (72) = happyShift action_18-action_2 (73) = happyShift action_19-action_2 (75) = happyShift action_20-action_2 (76) = happyShift action_21-action_2 (77) = happyShift action_22-action_2 (78) = happyShift action_23-action_2 (83) = happyShift action_24-action_2 (84) = happyShift action_25-action_2 (85) = happyShift action_26-action_2 (86) = happyShift action_27-action_2 (87) = happyShift action_28-action_2 (122) = happyReduce_1-action_2 (6) = happyGoto action_4-action_2 (7) = happyGoto action_5-action_2 (8) = happyGoto action_6-action_2 (9) = happyGoto action_7-action_2 (10) = happyGoto action_8-action_2 (11) = happyGoto action_9-action_2 (14) = happyGoto action_10-action_2 (15) = happyGoto action_11-action_2 (16) = happyGoto action_12-action_2 (17) = happyGoto action_13-action_2 (19) = happyGoto action_14-action_2 (21) = happyGoto action_15-action_2 _ = happyReduce_36--action_3 (122) = happyAccept-action_3 _ = happyFail--action_4 _ = happyReduce_3--action_5 _ = happyReduce_4--action_6 _ = happyReduce_6--action_7 _ = happyReduce_5--action_8 _ = happyReduce_7--action_9 _ = happyReduce_8--action_10 _ = happyReduce_9--action_11 _ = happyReduce_10--action_12 _ = happyReduce_11--action_13 _ = happyReduce_12--action_14 (81) = happyShift action_51-action_14 _ = happyFail--action_15 _ = happyReduce_13--action_16 (67) = happyShift action_39-action_16 (12) = happyGoto action_50-action_16 (23) = happyGoto action_49-action_16 _ = happyFail--action_17 (67) = happyShift action_39-action_17 (12) = happyGoto action_48-action_17 (23) = happyGoto action_49-action_17 _ = happyFail--action_18 (67) = happyShift action_39-action_18 (13) = happyGoto action_46-action_18 (23) = happyGoto action_47-action_18 _ = happyFail--action_19 (70) = happyShift action_44-action_19 (71) = happyShift action_45-action_19 _ = happyFail--action_20 (99) = happyShift action_43-action_20 _ = happyFail--action_21 (67) = happyShift action_39-action_21 (23) = happyGoto action_40-action_21 (51) = happyGoto action_42-action_21 _ = happyFail--action_22 (67) = happyShift action_39-action_22 (23) = happyGoto action_40-action_22 (51) = happyGoto action_41-action_22 _ = happyFail--action_23 (67) = happyShift action_39-action_23 (23) = happyGoto action_37-action_23 (24) = happyGoto action_38-action_23 _ = happyFail--action_24 _ = happyReduce_37--action_25 (70) = happyShift action_16-action_25 (71) = happyShift action_17-action_25 (72) = happyShift action_18-action_25 (73) = happyShift action_19-action_25 (75) = happyShift action_20-action_25 (76) = happyShift action_21-action_25 (77) = happyShift action_22-action_25 (78) = happyShift action_23-action_25 (83) = happyShift action_24-action_25 (84) = happyShift action_25-action_25 (85) = happyShift action_26-action_25 (86) = happyShift action_27-action_25 (87) = happyShift action_28-action_25 (99) = happyShift action_36-action_25 (6) = happyGoto action_35-action_25 (7) = happyGoto action_5-action_25 (8) = happyGoto action_6-action_25 (9) = happyGoto action_7-action_25 (10) = happyGoto action_8-action_25 (11) = happyGoto action_9-action_25 (14) = happyGoto action_10-action_25 (15) = happyGoto action_11-action_25 (16) = happyGoto action_12-action_25 (17) = happyGoto action_13-action_25 (19) = happyGoto action_14-action_25 (21) = happyGoto action_15-action_25 _ = happyReduce_36--action_26 (70) = happyShift action_16-action_26 (71) = happyShift action_17-action_26 (72) = happyShift action_18-action_26 (73) = happyShift action_19-action_26 (75) = happyShift action_20-action_26 (76) = happyShift action_21-action_26 (77) = happyShift action_22-action_26 (78) = happyShift action_23-action_26 (83) = happyShift action_24-action_26 (84) = happyShift action_25-action_26 (85) = happyShift action_26-action_26 (86) = happyShift action_27-action_26 (87) = happyShift action_28-action_26 (99) = happyShift action_34-action_26 (6) = happyGoto action_33-action_26 (7) = happyGoto action_5-action_26 (8) = happyGoto action_6-action_26 (9) = happyGoto action_7-action_26 (10) = happyGoto action_8-action_26 (11) = happyGoto action_9-action_26 (14) = happyGoto action_10-action_26 (15) = happyGoto action_11-action_26 (16) = happyGoto action_12-action_26 (17) = happyGoto action_13-action_26 (19) = happyGoto action_14-action_26 (21) = happyGoto action_15-action_26 _ = happyReduce_36--action_27 (70) = happyShift action_16-action_27 (71) = happyShift action_17-action_27 (72) = happyShift action_18-action_27 (73) = happyShift action_19-action_27 (75) = happyShift action_20-action_27 (76) = happyShift action_21-action_27 (77) = happyShift action_22-action_27 (78) = happyShift action_23-action_27 (83) = happyShift action_24-action_27 (84) = happyShift action_25-action_27 (85) = happyShift action_26-action_27 (86) = happyShift action_27-action_27 (87) = happyShift action_28-action_27 (99) = happyShift action_32-action_27 (6) = happyGoto action_31-action_27 (7) = happyGoto action_5-action_27 (8) = happyGoto action_6-action_27 (9) = happyGoto action_7-action_27 (10) = happyGoto action_8-action_27 (11) = happyGoto action_9-action_27 (14) = happyGoto action_10-action_27 (15) = happyGoto action_11-action_27 (16) = happyGoto action_12-action_27 (17) = happyGoto action_13-action_27 (19) = happyGoto action_14-action_27 (21) = happyGoto action_15-action_27 _ = happyReduce_36--action_28 (70) = happyShift action_16-action_28 (71) = happyShift action_17-action_28 (72) = happyShift action_18-action_28 (73) = happyShift action_19-action_28 (75) = happyShift action_20-action_28 (76) = happyShift action_21-action_28 (77) = happyShift action_22-action_28 (78) = happyShift action_23-action_28 (83) = happyShift action_24-action_28 (84) = happyShift action_25-action_28 (85) = happyShift action_26-action_28 (86) = happyShift action_27-action_28 (87) = happyShift action_28-action_28 (99) = happyShift action_30-action_28 (6) = happyGoto action_29-action_28 (7) = happyGoto action_5-action_28 (8) = happyGoto action_6-action_28 (9) = happyGoto action_7-action_28 (10) = happyGoto action_8-action_28 (11) = happyGoto action_9-action_28 (14) = happyGoto action_10-action_28 (15) = happyGoto action_11-action_28 (16) = happyGoto action_12-action_28 (17) = happyGoto action_13-action_28 (19) = happyGoto action_14-action_28 (21) = happyGoto action_15-action_28 _ = happyReduce_36--action_29 _ = happyReduce_14--action_30 (5) = happyGoto action_80-action_30 _ = happyReduce_2--action_31 _ = happyReduce_20--action_32 (5) = happyGoto action_79-action_32 _ = happyReduce_2--action_33 _ = happyReduce_18--action_34 (5) = happyGoto action_78-action_34 _ = happyReduce_2--action_35 _ = happyReduce_16--action_36 (5) = happyGoto action_77-action_36 _ = happyReduce_2--action_37 (67) = happyShift action_39-action_37 (23) = happyGoto action_37-action_37 (24) = happyGoto action_76-action_37 _ = happyReduce_44--action_38 (112) = happyShift action_75-action_38 _ = happyFail--action_39 _ = happyReduce_43--action_40 (108) = happyShift action_74-action_40 _ = happyFail--action_41 (99) = happyShift action_73-action_41 _ = happyFail--action_42 (99) = happyShift action_72-action_42 _ = happyFail--action_43 (5) = happyGoto action_71-action_43 _ = happyReduce_2--action_44 (67) = happyShift action_39-action_44 (12) = happyGoto action_70-action_44 (23) = happyGoto action_49-action_44 _ = happyFail--action_45 (67) = happyShift action_39-action_45 (12) = happyGoto action_69-action_45 (23) = happyGoto action_49-action_45 _ = happyFail--action_46 _ = happyReduce_26--action_47 (101) = happyShift action_66-action_47 (103) = happyShift action_67-action_47 (109) = happyShift action_57-action_47 (113) = happyShift action_58-action_47 (114) = happyShift action_59-action_47 (115) = happyShift action_60-action_47 (117) = happyShift action_61-action_47 (118) = happyShift action_62-action_47 (26) = happyGoto action_63-action_47 (65) = happyGoto action_64-action_47 (66) = happyGoto action_68-action_47 _ = happyReduce_187--action_48 _ = happyReduce_24--action_49 (101) = happyShift action_66-action_49 (103) = happyShift action_67-action_49 (109) = happyShift action_57-action_49 (113) = happyShift action_58-action_49 (114) = happyShift action_59-action_49 (115) = happyShift action_60-action_49 (117) = happyShift action_61-action_49 (118) = happyShift action_62-action_49 (26) = happyGoto action_63-action_49 (65) = happyGoto action_64-action_49 (66) = happyGoto action_65-action_49 _ = happyReduce_187--action_50 _ = happyReduce_22--action_51 (67) = happyShift action_39-action_51 (101) = happyShift action_56-action_51 (109) = happyShift action_57-action_51 (113) = happyShift action_58-action_51 (114) = happyShift action_59-action_51 (115) = happyShift action_60-action_51 (117) = happyShift action_61-action_51 (118) = happyShift action_62-action_51 (18) = happyGoto action_52-action_51 (23) = happyGoto action_53-action_51 (26) = happyGoto action_54-action_51 (36) = happyGoto action_55-action_51 _ = happyFail--action_52 _ = happyReduce_34--action_53 _ = happyReduce_81--action_54 (67) = happyShift action_39-action_54 (23) = happyGoto action_153-action_54 _ = happyFail--action_55 (99) = happyShift action_125-action_55 (101) = happyShift action_151-action_55 (103) = happyShift action_152-action_55 (105) = happyShift action_128-action_55 (109) = happyShift action_57-action_55 (113) = happyShift action_58-action_55 (114) = happyShift action_59-action_55 (115) = happyShift action_60-action_55 (117) = happyShift action_61-action_55 (118) = happyShift action_62-action_55 (26) = happyGoto action_147-action_55 (27) = happyGoto action_148-action_55 (31) = happyGoto action_149-action_55 (32) = happyGoto action_150-action_55 (33) = happyGoto action_110-action_55 (34) = happyGoto action_111-action_55 _ = happyReduce_60--action_56 (67) = happyShift action_39-action_56 (23) = happyGoto action_146-action_56 _ = happyFail--action_57 _ = happyReduce_51--action_58 _ = happyReduce_48--action_59 _ = happyReduce_49--action_60 _ = happyReduce_50--action_61 _ = happyReduce_53--action_62 _ = happyReduce_52--action_63 (103) = happyShift action_145-action_63 _ = happyFail--action_64 (101) = happyShift action_66-action_64 (103) = happyShift action_67-action_64 (109) = happyShift action_57-action_64 (113) = happyShift action_58-action_64 (114) = happyShift action_59-action_64 (115) = happyShift action_60-action_64 (117) = happyShift action_61-action_64 (118) = happyShift action_62-action_64 (26) = happyGoto action_63-action_64 (65) = happyGoto action_64-action_64 (66) = happyGoto action_144-action_64 _ = happyReduce_187--action_65 (99) = happyShift action_142-action_65 (108) = happyShift action_143-action_65 _ = happyFail--action_66 (67) = happyShift action_39-action_66 (23) = happyGoto action_138-action_66 (25) = happyGoto action_141-action_66 _ = happyFail--action_67 (67) = happyShift action_39-action_67 (114) = happyShift action_140-action_67 (23) = happyGoto action_138-action_67 (25) = happyGoto action_139-action_67 _ = happyFail--action_68 (99) = happyShift action_136-action_68 (108) = happyShift action_137-action_68 _ = happyFail--action_69 _ = happyReduce_25--action_70 _ = happyReduce_23--action_71 (70) = happyShift action_16-action_71 (71) = happyShift action_17-action_71 (72) = happyShift action_18-action_71 (73) = happyShift action_19-action_71 (75) = happyShift action_20-action_71 (76) = happyShift action_21-action_71 (77) = happyShift action_22-action_71 (78) = happyShift action_23-action_71 (83) = happyShift action_24-action_71 (84) = happyShift action_25-action_71 (85) = happyShift action_26-action_71 (86) = happyShift action_27-action_71 (87) = happyShift action_28-action_71 (100) = happyShift action_135-action_71 (6) = happyGoto action_4-action_71 (7) = happyGoto action_5-action_71 (8) = happyGoto action_6-action_71 (9) = happyGoto action_7-action_71 (10) = happyGoto action_8-action_71 (11) = happyGoto action_9-action_71 (14) = happyGoto action_10-action_71 (15) = happyGoto action_11-action_71 (16) = happyGoto action_12-action_71 (17) = happyGoto action_13-action_71 (19) = happyGoto action_14-action_71 (21) = happyGoto action_15-action_71 _ = happyReduce_36--action_72 (67) = happyShift action_39-action_72 (23) = happyGoto action_130-action_72 (55) = happyGoto action_131-action_72 (63) = happyGoto action_134-action_72 (64) = happyGoto action_133-action_72 _ = happyReduce_182--action_73 (67) = happyShift action_39-action_73 (23) = happyGoto action_130-action_73 (55) = happyGoto action_131-action_73 (63) = happyGoto action_132-action_73 (64) = happyGoto action_133-action_73 _ = happyReduce_182--action_74 (67) = happyShift action_39-action_74 (68) = happyShift action_93-action_74 (69) = happyShift action_119-action_74 (72) = happyShift action_95-action_74 (79) = happyShift action_120-action_74 (81) = happyShift action_121-action_74 (89) = happyShift action_122-action_74 (90) = happyShift action_123-action_74 (91) = happyShift action_96-action_74 (92) = happyShift action_97-action_74 (93) = happyShift action_124-action_74 (94) = happyShift action_99-action_74 (97) = happyShift action_100-action_74 (99) = happyShift action_125-action_74 (101) = happyShift action_126-action_74 (103) = happyShift action_127-action_74 (105) = happyShift action_128-action_74 (109) = happyShift action_57-action_74 (113) = happyShift action_58-action_74 (114) = happyShift action_59-action_74 (115) = happyShift action_60-action_74 (117) = happyShift action_61-action_74 (118) = happyShift action_62-action_74 (120) = happyShift action_129-action_74 (121) = happyShift action_103-action_74 (23) = happyGoto action_104-action_74 (26) = happyGoto action_105-action_74 (27) = happyGoto action_106-action_74 (29) = happyGoto action_107-action_74 (31) = happyGoto action_108-action_74 (32) = happyGoto action_109-action_74 (33) = happyGoto action_110-action_74 (34) = happyGoto action_111-action_74 (39) = happyGoto action_112-action_74 (42) = happyGoto action_113-action_74 (43) = happyGoto action_114-action_74 (44) = happyGoto action_115-action_74 (45) = happyGoto action_116-action_74 (46) = happyGoto action_117-action_74 (47) = happyGoto action_118-action_74 (48) = happyGoto action_87-action_74 _ = happyReduce_60--action_75 (67) = happyShift action_39-action_75 (68) = happyShift action_93-action_75 (69) = happyShift action_94-action_75 (72) = happyShift action_95-action_75 (91) = happyShift action_96-action_75 (92) = happyShift action_97-action_75 (93) = happyShift action_98-action_75 (94) = happyShift action_99-action_75 (97) = happyShift action_100-action_75 (103) = happyShift action_101-action_75 (109) = happyShift action_102-action_75 (121) = happyShift action_103-action_75 (23) = happyGoto action_85-action_75 (47) = happyGoto action_86-action_75 (48) = happyGoto action_87-action_75 (58) = happyGoto action_88-action_75 (59) = happyGoto action_89-action_75 (60) = happyGoto action_90-action_75 (61) = happyGoto action_91-action_75 (62) = happyGoto action_92-action_75 _ = happyFail--action_76 _ = happyReduce_45--action_77 (70) = happyShift action_16-action_77 (71) = happyShift action_17-action_77 (72) = happyShift action_18-action_77 (73) = happyShift action_19-action_77 (75) = happyShift action_20-action_77 (76) = happyShift action_21-action_77 (77) = happyShift action_22-action_77 (78) = happyShift action_23-action_77 (83) = happyShift action_24-action_77 (84) = happyShift action_25-action_77 (85) = happyShift action_26-action_77 (86) = happyShift action_27-action_77 (87) = happyShift action_28-action_77 (100) = happyShift action_84-action_77 (6) = happyGoto action_4-action_77 (7) = happyGoto action_5-action_77 (8) = happyGoto action_6-action_77 (9) = happyGoto action_7-action_77 (10) = happyGoto action_8-action_77 (11) = happyGoto action_9-action_77 (14) = happyGoto action_10-action_77 (15) = happyGoto action_11-action_77 (16) = happyGoto action_12-action_77 (17) = happyGoto action_13-action_77 (19) = happyGoto action_14-action_77 (21) = happyGoto action_15-action_77 _ = happyReduce_36--action_78 (70) = happyShift action_16-action_78 (71) = happyShift action_17-action_78 (72) = happyShift action_18-action_78 (73) = happyShift action_19-action_78 (75) = happyShift action_20-action_78 (76) = happyShift action_21-action_78 (77) = happyShift action_22-action_78 (78) = happyShift action_23-action_78 (83) = happyShift action_24-action_78 (84) = happyShift action_25-action_78 (85) = happyShift action_26-action_78 (86) = happyShift action_27-action_78 (87) = happyShift action_28-action_78 (100) = happyShift action_83-action_78 (6) = happyGoto action_4-action_78 (7) = happyGoto action_5-action_78 (8) = happyGoto action_6-action_78 (9) = happyGoto action_7-action_78 (10) = happyGoto action_8-action_78 (11) = happyGoto action_9-action_78 (14) = happyGoto action_10-action_78 (15) = happyGoto action_11-action_78 (16) = happyGoto action_12-action_78 (17) = happyGoto action_13-action_78 (19) = happyGoto action_14-action_78 (21) = happyGoto action_15-action_78 _ = happyReduce_36--action_79 (70) = happyShift action_16-action_79 (71) = happyShift action_17-action_79 (72) = happyShift action_18-action_79 (73) = happyShift action_19-action_79 (75) = happyShift action_20-action_79 (76) = happyShift action_21-action_79 (77) = happyShift action_22-action_79 (78) = happyShift action_23-action_79 (83) = happyShift action_24-action_79 (84) = happyShift action_25-action_79 (85) = happyShift action_26-action_79 (86) = happyShift action_27-action_79 (87) = happyShift action_28-action_79 (100) = happyShift action_82-action_79 (6) = happyGoto action_4-action_79 (7) = happyGoto action_5-action_79 (8) = happyGoto action_6-action_79 (9) = happyGoto action_7-action_79 (10) = happyGoto action_8-action_79 (11) = happyGoto action_9-action_79 (14) = happyGoto action_10-action_79 (15) = happyGoto action_11-action_79 (16) = happyGoto action_12-action_79 (17) = happyGoto action_13-action_79 (19) = happyGoto action_14-action_79 (21) = happyGoto action_15-action_79 _ = happyReduce_36--action_80 (70) = happyShift action_16-action_80 (71) = happyShift action_17-action_80 (72) = happyShift action_18-action_80 (73) = happyShift action_19-action_80 (75) = happyShift action_20-action_80 (76) = happyShift action_21-action_80 (77) = happyShift action_22-action_80 (78) = happyShift action_23-action_80 (83) = happyShift action_24-action_80 (84) = happyShift action_25-action_80 (85) = happyShift action_26-action_80 (86) = happyShift action_27-action_80 (87) = happyShift action_28-action_80 (100) = happyShift action_81-action_80 (6) = happyGoto action_4-action_80 (7) = happyGoto action_5-action_80 (8) = happyGoto action_6-action_80 (9) = happyGoto action_7-action_80 (10) = happyGoto action_8-action_80 (11) = happyGoto action_9-action_80 (14) = happyGoto action_10-action_80 (15) = happyGoto action_11-action_80 (16) = happyGoto action_12-action_80 (17) = happyGoto action_13-action_80 (19) = happyGoto action_14-action_80 (21) = happyGoto action_15-action_80 _ = happyReduce_36--action_81 _ = happyReduce_15--action_82 _ = happyReduce_21--action_83 _ = happyReduce_19--action_84 _ = happyReduce_17--action_85 (67) = happyReduce_176-action_85 (70) = happyReduce_176-action_85 (71) = happyReduce_176-action_85 (72) = happyReduce_176-action_85 (73) = happyReduce_176-action_85 (75) = happyReduce_176-action_85 (76) = happyReduce_176-action_85 (77) = happyReduce_176-action_85 (78) = happyReduce_176-action_85 (81) = happyReduce_176-action_85 (83) = happyReduce_176-action_85 (84) = happyReduce_176-action_85 (85) = happyReduce_176-action_85 (86) = happyReduce_176-action_85 (87) = happyReduce_176-action_85 (93) = happyReduce_176-action_85 (95) = happyReduce_176-action_85 (97) = happyShift action_241-action_85 (100) = happyReduce_176-action_85 (103) = happyReduce_176-action_85 (104) = happyReduce_176-action_85 (106) = happyReduce_176-action_85 (107) = happyReduce_176-action_85 (109) = happyReduce_176-action_85 (112) = happyReduce_176-action_85 (122) = happyReduce_176-action_85 _ = happyReduce_138--action_86 (98) = happyShift action_240-action_86 _ = happyFail--action_87 _ = happyReduce_130--action_88 _ = happyReduce_172--action_89 _ = happyReduce_40--action_90 (106) = happyShift action_239-action_90 _ = happyReduce_168--action_91 (67) = happyShift action_39-action_91 (93) = happyShift action_235-action_91 (95) = happyShift action_238-action_91 (103) = happyShift action_236-action_91 (109) = happyShift action_102-action_91 (23) = happyGoto action_233-action_91 (58) = happyGoto action_237-action_91 (62) = happyGoto action_231-action_91 _ = happyReduce_169--action_92 (67) = happyShift action_39-action_92 (93) = happyShift action_235-action_92 (103) = happyShift action_236-action_92 (109) = happyShift action_102-action_92 (23) = happyGoto action_233-action_92 (58) = happyGoto action_234-action_92 (62) = happyGoto action_231-action_92 _ = happyReduce_163--action_93 _ = happyReduce_137--action_94 _ = happyReduce_135--action_95 (99) = happyShift action_232-action_95 _ = happyFail--action_96 _ = happyReduce_127--action_97 _ = happyReduce_129--action_98 (67) = happyShift action_39-action_98 (68) = happyShift action_93-action_98 (69) = happyShift action_94-action_98 (72) = happyShift action_95-action_98 (91) = happyShift action_96-action_98 (92) = happyShift action_97-action_98 (93) = happyShift action_98-action_98 (94) = happyShift action_99-action_98 (97) = happyShift action_100-action_98 (103) = happyShift action_101-action_98 (109) = happyShift action_102-action_98 (121) = happyShift action_103-action_98 (23) = happyGoto action_229-action_98 (47) = happyGoto action_191-action_98 (48) = happyGoto action_87-action_98 (58) = happyGoto action_230-action_98 (62) = happyGoto action_231-action_98 _ = happyFail--action_99 _ = happyReduce_128--action_100 (67) = happyShift action_39-action_100 (68) = happyShift action_93-action_100 (69) = happyShift action_119-action_100 (72) = happyShift action_95-action_100 (79) = happyShift action_120-action_100 (81) = happyShift action_121-action_100 (89) = happyShift action_122-action_100 (90) = happyShift action_123-action_100 (91) = happyShift action_96-action_100 (92) = happyShift action_97-action_100 (93) = happyShift action_124-action_100 (94) = happyShift action_99-action_100 (97) = happyShift action_100-action_100 (99) = happyShift action_125-action_100 (101) = happyShift action_126-action_100 (103) = happyShift action_127-action_100 (105) = happyShift action_128-action_100 (109) = happyShift action_57-action_100 (113) = happyShift action_58-action_100 (114) = happyShift action_59-action_100 (115) = happyShift action_60-action_100 (117) = happyShift action_61-action_100 (118) = happyShift action_62-action_100 (120) = happyShift action_129-action_100 (121) = happyShift action_103-action_100 (23) = happyGoto action_104-action_100 (26) = happyGoto action_105-action_100 (27) = happyGoto action_106-action_100 (29) = happyGoto action_107-action_100 (31) = happyGoto action_108-action_100 (32) = happyGoto action_109-action_100 (33) = happyGoto action_110-action_100 (34) = happyGoto action_111-action_100 (39) = happyGoto action_112-action_100 (40) = happyGoto action_228-action_100 (41) = happyGoto action_200-action_100 (42) = happyGoto action_157-action_100 (43) = happyGoto action_114-action_100 (44) = happyGoto action_115-action_100 (45) = happyGoto action_116-action_100 (46) = happyGoto action_117-action_100 (47) = happyGoto action_118-action_100 (48) = happyGoto action_87-action_100 _ = happyReduce_60--action_101 (67) = happyShift action_39-action_101 (68) = happyShift action_93-action_101 (69) = happyShift action_119-action_101 (72) = happyShift action_95-action_101 (79) = happyShift action_120-action_101 (81) = happyShift action_121-action_101 (89) = happyShift action_122-action_101 (90) = happyShift action_123-action_101 (91) = happyShift action_96-action_101 (92) = happyShift action_97-action_101 (93) = happyShift action_98-action_101 (94) = happyShift action_99-action_101 (97) = happyShift action_100-action_101 (99) = happyShift action_125-action_101 (101) = happyShift action_126-action_101 (103) = happyShift action_225-action_101 (104) = happyShift action_226-action_101 (105) = happyShift action_128-action_101 (109) = happyShift action_227-action_101 (113) = happyShift action_58-action_101 (114) = happyShift action_59-action_101 (115) = happyShift action_60-action_101 (117) = happyShift action_61-action_101 (118) = happyShift action_62-action_101 (120) = happyShift action_129-action_101 (121) = happyShift action_103-action_101 (23) = happyGoto action_85-action_101 (26) = happyGoto action_105-action_101 (27) = happyGoto action_106-action_101 (29) = happyGoto action_107-action_101 (31) = happyGoto action_108-action_101 (32) = happyGoto action_109-action_101 (33) = happyGoto action_110-action_101 (34) = happyGoto action_111-action_101 (39) = happyGoto action_112-action_101 (40) = happyGoto action_185-action_101 (41) = happyGoto action_200-action_101 (42) = happyGoto action_157-action_101 (43) = happyGoto action_114-action_101 (44) = happyGoto action_115-action_101 (45) = happyGoto action_116-action_101 (46) = happyGoto action_117-action_101 (47) = happyGoto action_223-action_101 (48) = happyGoto action_87-action_101 (58) = happyGoto action_88-action_101 (59) = happyGoto action_224-action_101 (60) = happyGoto action_90-action_101 (61) = happyGoto action_91-action_101 (62) = happyGoto action_92-action_101 _ = happyReduce_60--action_102 (67) = happyShift action_39-action_102 (68) = happyShift action_93-action_102 (69) = happyShift action_94-action_102 (72) = happyShift action_95-action_102 (89) = happyShift action_222-action_102 (91) = happyShift action_96-action_102 (92) = happyShift action_97-action_102 (93) = happyShift action_124-action_102 (94) = happyShift action_99-action_102 (97) = happyShift action_100-action_102 (103) = happyShift action_192-action_102 (121) = happyShift action_103-action_102 (23) = happyGoto action_220-action_102 (47) = happyGoto action_221-action_102 (48) = happyGoto action_87-action_102 _ = happyFail--action_103 _ = happyReduce_133--action_104 _ = happyReduce_138--action_105 (67) = happyShift action_39-action_105 (68) = happyShift action_93-action_105 (69) = happyShift action_119-action_105 (72) = happyShift action_95-action_105 (89) = happyShift action_122-action_105 (90) = happyShift action_123-action_105 (91) = happyShift action_96-action_105 (92) = happyShift action_97-action_105 (93) = happyShift action_124-action_105 (94) = happyShift action_99-action_105 (97) = happyShift action_100-action_105 (99) = happyShift action_125-action_105 (101) = happyShift action_218-action_105 (103) = happyShift action_219-action_105 (105) = happyShift action_128-action_105 (109) = happyShift action_57-action_105 (113) = happyShift action_58-action_105 (114) = happyShift action_59-action_105 (115) = happyShift action_60-action_105 (117) = happyShift action_61-action_105 (118) = happyShift action_62-action_105 (121) = happyShift action_103-action_105 (23) = happyGoto action_104-action_105 (26) = happyGoto action_212-action_105 (27) = happyGoto action_213-action_105 (29) = happyGoto action_214-action_105 (32) = happyGoto action_215-action_105 (33) = happyGoto action_110-action_105 (34) = happyGoto action_111-action_105 (43) = happyGoto action_216-action_105 (44) = happyGoto action_115-action_105 (45) = happyGoto action_217-action_105 (46) = happyGoto action_117-action_105 (47) = happyGoto action_118-action_105 (48) = happyGoto action_87-action_105 _ = happyFail--action_106 (97) = happyShift action_210-action_106 (99) = happyShift action_125-action_106 (101) = happyShift action_151-action_106 (103) = happyShift action_152-action_106 (105) = happyShift action_128-action_106 (109) = happyShift action_57-action_106 (110) = happyReduce_96-action_106 (111) = happyShift action_211-action_106 (113) = happyShift action_58-action_106 (114) = happyShift action_59-action_106 (115) = happyShift action_60-action_106 (117) = happyShift action_61-action_106 (118) = happyShift action_62-action_106 (26) = happyGoto action_147-action_106 (27) = happyGoto action_148-action_106 (31) = happyGoto action_163-action_106 (32) = happyGoto action_150-action_106 (33) = happyGoto action_110-action_106 (34) = happyGoto action_111-action_106 _ = happyReduce_116--action_107 (119) = happyReduce_117-action_107 _ = happyReduce_97--action_108 _ = happyReduce_98--action_109 (99) = happyShift action_125-action_109 (101) = happyShift action_151-action_109 (103) = happyShift action_152-action_109 (105) = happyShift action_128-action_109 (109) = happyShift action_57-action_109 (110) = happyReduce_95-action_109 (113) = happyShift action_58-action_109 (114) = happyShift action_59-action_109 (115) = happyShift action_60-action_109 (117) = happyShift action_61-action_109 (118) = happyShift action_62-action_109 (26) = happyGoto action_147-action_109 (27) = happyGoto action_148-action_109 (31) = happyGoto action_160-action_109 (32) = happyGoto action_150-action_109 (33) = happyGoto action_110-action_109 (34) = happyGoto action_111-action_109 _ = happyReduce_115--action_110 _ = happyReduce_69--action_111 _ = happyReduce_70--action_112 (110) = happyShift action_209-action_112 _ = happyFail--action_113 _ = happyReduce_143--action_114 (110) = happyReduce_92-action_114 _ = happyReduce_106--action_115 (119) = happyShift action_208-action_115 _ = happyFail--action_116 (95) = happyShift action_205-action_116 (96) = happyShift action_206-action_116 (114) = happyShift action_207-action_116 (119) = happyReduce_112-action_116 _ = happyReduce_110--action_117 (67) = happyShift action_39-action_117 (68) = happyShift action_93-action_117 (69) = happyShift action_94-action_117 (72) = happyShift action_95-action_117 (89) = happyShift action_203-action_117 (91) = happyShift action_96-action_117 (92) = happyShift action_97-action_117 (93) = happyShift action_124-action_117 (94) = happyShift action_99-action_117 (97) = happyShift action_100-action_117 (103) = happyShift action_192-action_117 (109) = happyShift action_204-action_117 (121) = happyShift action_103-action_117 (23) = happyGoto action_104-action_117 (47) = happyGoto action_202-action_117 (48) = happyGoto action_87-action_117 _ = happyReduce_118--action_118 _ = happyReduce_123--action_119 (117) = happyShift action_201-action_119 _ = happyReduce_135--action_120 (67) = happyShift action_39-action_120 (68) = happyShift action_93-action_120 (69) = happyShift action_119-action_120 (72) = happyShift action_95-action_120 (79) = happyShift action_120-action_120 (81) = happyShift action_121-action_120 (89) = happyShift action_122-action_120 (90) = happyShift action_123-action_120 (91) = happyShift action_96-action_120 (92) = happyShift action_97-action_120 (93) = happyShift action_124-action_120 (94) = happyShift action_99-action_120 (97) = happyShift action_100-action_120 (99) = happyShift action_125-action_120 (101) = happyShift action_126-action_120 (103) = happyShift action_127-action_120 (105) = happyShift action_128-action_120 (109) = happyShift action_57-action_120 (113) = happyShift action_58-action_120 (114) = happyShift action_59-action_120 (115) = happyShift action_60-action_120 (117) = happyShift action_61-action_120 (118) = happyShift action_62-action_120 (120) = happyShift action_129-action_120 (121) = happyShift action_103-action_120 (23) = happyGoto action_104-action_120 (26) = happyGoto action_105-action_120 (27) = happyGoto action_106-action_120 (29) = happyGoto action_107-action_120 (31) = happyGoto action_108-action_120 (32) = happyGoto action_109-action_120 (33) = happyGoto action_110-action_120 (34) = happyGoto action_111-action_120 (39) = happyGoto action_112-action_120 (40) = happyGoto action_199-action_120 (41) = happyGoto action_200-action_120 (42) = happyGoto action_157-action_120 (43) = happyGoto action_114-action_120 (44) = happyGoto action_115-action_120 (45) = happyGoto action_116-action_120 (46) = happyGoto action_117-action_120 (47) = happyGoto action_118-action_120 (48) = happyGoto action_87-action_120 _ = happyReduce_60--action_121 (67) = happyShift action_39-action_121 (101) = happyShift action_198-action_121 (109) = happyShift action_57-action_121 (113) = happyShift action_58-action_121 (114) = happyShift action_59-action_121 (115) = happyShift action_60-action_121 (117) = happyShift action_61-action_121 (118) = happyShift action_62-action_121 (18) = happyGoto action_195-action_121 (23) = happyGoto action_53-action_121 (26) = happyGoto action_196-action_121 (36) = happyGoto action_55-action_121 (37) = happyGoto action_197-action_121 _ = happyFail--action_122 (67) = happyShift action_39-action_122 (68) = happyShift action_93-action_122 (69) = happyShift action_94-action_122 (72) = happyShift action_95-action_122 (91) = happyShift action_96-action_122 (92) = happyShift action_97-action_122 (93) = happyShift action_124-action_122 (94) = happyShift action_99-action_122 (97) = happyShift action_100-action_122 (103) = happyShift action_192-action_122 (121) = happyShift action_103-action_122 (23) = happyGoto action_104-action_122 (47) = happyGoto action_194-action_122 (48) = happyGoto action_87-action_122 _ = happyReduce_120--action_123 (67) = happyShift action_39-action_123 (68) = happyShift action_93-action_123 (69) = happyShift action_94-action_123 (72) = happyShift action_95-action_123 (91) = happyShift action_96-action_123 (92) = happyShift action_97-action_123 (93) = happyShift action_124-action_123 (94) = happyShift action_99-action_123 (97) = happyShift action_100-action_123 (103) = happyShift action_192-action_123 (121) = happyShift action_103-action_123 (23) = happyGoto action_104-action_123 (47) = happyGoto action_193-action_123 (48) = happyGoto action_87-action_123 _ = happyFail--action_124 (67) = happyShift action_39-action_124 (68) = happyShift action_93-action_124 (69) = happyShift action_94-action_124 (72) = happyShift action_95-action_124 (91) = happyShift action_96-action_124 (92) = happyShift action_97-action_124 (93) = happyShift action_124-action_124 (94) = happyShift action_99-action_124 (97) = happyShift action_100-action_124 (103) = happyShift action_192-action_124 (121) = happyShift action_103-action_124 (23) = happyGoto action_104-action_124 (47) = happyGoto action_191-action_124 (48) = happyGoto action_87-action_124 _ = happyFail--action_125 (67) = happyShift action_39-action_125 (23) = happyGoto action_189-action_125 (25) = happyGoto action_190-action_125 _ = happyFail--action_126 (67) = happyShift action_39-action_126 (68) = happyShift action_93-action_126 (69) = happyShift action_119-action_126 (72) = happyShift action_95-action_126 (79) = happyShift action_120-action_126 (81) = happyShift action_121-action_126 (89) = happyShift action_122-action_126 (90) = happyShift action_123-action_126 (91) = happyShift action_96-action_126 (92) = happyShift action_97-action_126 (93) = happyShift action_124-action_126 (94) = happyShift action_99-action_126 (97) = happyShift action_100-action_126 (99) = happyShift action_125-action_126 (101) = happyShift action_126-action_126 (103) = happyShift action_127-action_126 (105) = happyShift action_128-action_126 (109) = happyShift action_57-action_126 (113) = happyShift action_58-action_126 (114) = happyShift action_59-action_126 (115) = happyShift action_60-action_126 (117) = happyShift action_61-action_126 (118) = happyShift action_62-action_126 (120) = happyShift action_129-action_126 (121) = happyShift action_103-action_126 (23) = happyGoto action_187-action_126 (25) = happyGoto action_159-action_126 (26) = happyGoto action_105-action_126 (27) = happyGoto action_106-action_126 (29) = happyGoto action_107-action_126 (31) = happyGoto action_108-action_126 (32) = happyGoto action_109-action_126 (33) = happyGoto action_110-action_126 (34) = happyGoto action_111-action_126 (39) = happyGoto action_112-action_126 (42) = happyGoto action_188-action_126 (43) = happyGoto action_114-action_126 (44) = happyGoto action_115-action_126 (45) = happyGoto action_116-action_126 (46) = happyGoto action_117-action_126 (47) = happyGoto action_118-action_126 (48) = happyGoto action_87-action_126 _ = happyReduce_60--action_127 (67) = happyShift action_39-action_127 (68) = happyShift action_93-action_127 (69) = happyShift action_119-action_127 (72) = happyShift action_95-action_127 (79) = happyShift action_120-action_127 (81) = happyShift action_121-action_127 (89) = happyShift action_122-action_127 (90) = happyShift action_123-action_127 (91) = happyShift action_96-action_127 (92) = happyShift action_97-action_127 (93) = happyShift action_124-action_127 (94) = happyShift action_99-action_127 (97) = happyShift action_100-action_127 (99) = happyShift action_125-action_127 (101) = happyShift action_126-action_127 (103) = happyShift action_127-action_127 (105) = happyShift action_128-action_127 (109) = happyShift action_57-action_127 (113) = happyShift action_58-action_127 (114) = happyShift action_59-action_127 (115) = happyShift action_60-action_127 (117) = happyShift action_61-action_127 (118) = happyShift action_62-action_127 (120) = happyShift action_129-action_127 (121) = happyShift action_103-action_127 (23) = happyGoto action_154-action_127 (26) = happyGoto action_105-action_127 (27) = happyGoto action_106-action_127 (29) = happyGoto action_107-action_127 (30) = happyGoto action_155-action_127 (31) = happyGoto action_108-action_127 (32) = happyGoto action_109-action_127 (33) = happyGoto action_110-action_127 (34) = happyGoto action_111-action_127 (39) = happyGoto action_112-action_127 (40) = happyGoto action_185-action_127 (41) = happyGoto action_186-action_127 (42) = happyGoto action_157-action_127 (43) = happyGoto action_114-action_127 (44) = happyGoto action_115-action_127 (45) = happyGoto action_116-action_127 (46) = happyGoto action_117-action_127 (47) = happyGoto action_118-action_127 (48) = happyGoto action_87-action_127 _ = happyReduce_60--action_128 (67) = happyShift action_39-action_128 (68) = happyShift action_93-action_128 (69) = happyShift action_119-action_128 (72) = happyShift action_95-action_128 (79) = happyShift action_120-action_128 (81) = happyShift action_121-action_128 (89) = happyShift action_122-action_128 (90) = happyShift action_123-action_128 (91) = happyShift action_96-action_128 (92) = happyShift action_97-action_128 (93) = happyShift action_124-action_128 (94) = happyShift action_99-action_128 (97) = happyShift action_100-action_128 (99) = happyShift action_125-action_128 (101) = happyShift action_126-action_128 (103) = happyShift action_127-action_128 (105) = happyShift action_128-action_128 (109) = happyShift action_57-action_128 (113) = happyShift action_58-action_128 (114) = happyShift action_59-action_128 (115) = happyShift action_60-action_128 (117) = happyShift action_61-action_128 (118) = happyShift action_62-action_128 (120) = happyShift action_129-action_128 (121) = happyShift action_103-action_128 (23) = happyGoto action_104-action_128 (26) = happyGoto action_105-action_128 (27) = happyGoto action_106-action_128 (28) = happyGoto action_183-action_128 (29) = happyGoto action_107-action_128 (31) = happyGoto action_108-action_128 (32) = happyGoto action_109-action_128 (33) = happyGoto action_110-action_128 (34) = happyGoto action_111-action_128 (39) = happyGoto action_112-action_128 (42) = happyGoto action_184-action_128 (43) = happyGoto action_114-action_128 (44) = happyGoto action_115-action_128 (45) = happyGoto action_116-action_128 (46) = happyGoto action_117-action_128 (47) = happyGoto action_118-action_128 (48) = happyGoto action_87-action_128 _ = happyReduce_60--action_129 (67) = happyShift action_39-action_129 (23) = happyGoto action_37-action_129 (24) = happyGoto action_182-action_129 _ = happyFail--action_130 (56) = happyGoto action_180-action_130 (57) = happyGoto action_181-action_130 _ = happyReduce_158--action_131 _ = happyReduce_181--action_132 (100) = happyShift action_179-action_132 _ = happyFail--action_133 (107) = happyShift action_178-action_133 _ = happyReduce_178--action_134 (100) = happyShift action_177-action_134 _ = happyFail--action_135 _ = happyReduce_33--action_136 (67) = happyShift action_39-action_136 (23) = happyGoto action_168-action_136 (52) = happyGoto action_176-action_136 _ = happyFail--action_137 (67) = happyShift action_39-action_137 (68) = happyShift action_93-action_137 (69) = happyShift action_119-action_137 (72) = happyShift action_95-action_137 (79) = happyShift action_120-action_137 (81) = happyShift action_121-action_137 (89) = happyShift action_122-action_137 (90) = happyShift action_123-action_137 (91) = happyShift action_96-action_137 (92) = happyShift action_97-action_137 (93) = happyShift action_124-action_137 (94) = happyShift action_99-action_137 (97) = happyShift action_100-action_137 (99) = happyShift action_125-action_137 (101) = happyShift action_126-action_137 (103) = happyShift action_127-action_137 (105) = happyShift action_128-action_137 (109) = happyShift action_57-action_137 (113) = happyShift action_58-action_137 (114) = happyShift action_59-action_137 (115) = happyShift action_60-action_137 (117) = happyShift action_61-action_137 (118) = happyShift action_62-action_137 (120) = happyShift action_129-action_137 (121) = happyShift action_103-action_137 (23) = happyGoto action_104-action_137 (26) = happyGoto action_105-action_137 (27) = happyGoto action_106-action_137 (29) = happyGoto action_107-action_137 (31) = happyGoto action_108-action_137 (32) = happyGoto action_109-action_137 (33) = happyGoto action_110-action_137 (34) = happyGoto action_111-action_137 (39) = happyGoto action_112-action_137 (42) = happyGoto action_175-action_137 (43) = happyGoto action_114-action_137 (44) = happyGoto action_115-action_137 (45) = happyGoto action_116-action_137 (46) = happyGoto action_117-action_137 (47) = happyGoto action_118-action_137 (48) = happyGoto action_87-action_137 _ = happyReduce_60--action_138 (106) = happyShift action_174-action_138 _ = happyReduce_46--action_139 (108) = happyShift action_173-action_139 _ = happyFail--action_140 (67) = happyShift action_39-action_140 (23) = happyGoto action_138-action_140 (25) = happyGoto action_172-action_140 _ = happyFail--action_141 (108) = happyShift action_171-action_141 _ = happyFail--action_142 (67) = happyShift action_39-action_142 (23) = happyGoto action_168-action_142 (52) = happyGoto action_169-action_142 (53) = happyGoto action_170-action_142 _ = happyReduce_149--action_143 (67) = happyShift action_39-action_143 (68) = happyShift action_93-action_143 (69) = happyShift action_119-action_143 (72) = happyShift action_95-action_143 (79) = happyShift action_120-action_143 (81) = happyShift action_121-action_143 (89) = happyShift action_122-action_143 (90) = happyShift action_123-action_143 (91) = happyShift action_96-action_143 (92) = happyShift action_97-action_143 (93) = happyShift action_124-action_143 (94) = happyShift action_99-action_143 (97) = happyShift action_100-action_143 (99) = happyShift action_125-action_143 (101) = happyShift action_126-action_143 (103) = happyShift action_127-action_143 (105) = happyShift action_128-action_143 (109) = happyShift action_57-action_143 (113) = happyShift action_58-action_143 (114) = happyShift action_59-action_143 (115) = happyShift action_60-action_143 (117) = happyShift action_61-action_143 (118) = happyShift action_62-action_143 (120) = happyShift action_129-action_143 (121) = happyShift action_103-action_143 (23) = happyGoto action_104-action_143 (26) = happyGoto action_105-action_143 (27) = happyGoto action_106-action_143 (29) = happyGoto action_107-action_143 (31) = happyGoto action_108-action_143 (32) = happyGoto action_109-action_143 (33) = happyGoto action_110-action_143 (34) = happyGoto action_111-action_143 (39) = happyGoto action_112-action_143 (42) = happyGoto action_167-action_143 (43) = happyGoto action_114-action_143 (44) = happyGoto action_115-action_143 (45) = happyGoto action_116-action_143 (46) = happyGoto action_117-action_143 (47) = happyGoto action_118-action_143 (48) = happyGoto action_87-action_143 _ = happyReduce_60--action_144 _ = happyReduce_188--action_145 (67) = happyShift action_39-action_145 (23) = happyGoto action_138-action_145 (25) = happyGoto action_166-action_145 _ = happyFail--action_146 (102) = happyShift action_165-action_146 _ = happyFail--action_147 (103) = happyShift action_164-action_147 _ = happyFail--action_148 (99) = happyShift action_125-action_148 (101) = happyShift action_151-action_148 (103) = happyShift action_152-action_148 (105) = happyShift action_128-action_148 (109) = happyShift action_57-action_148 (113) = happyShift action_58-action_148 (114) = happyShift action_59-action_148 (115) = happyShift action_60-action_148 (117) = happyShift action_61-action_148 (118) = happyShift action_62-action_148 (26) = happyGoto action_147-action_148 (27) = happyGoto action_148-action_148 (31) = happyGoto action_163-action_148 (32) = happyGoto action_150-action_148 (33) = happyGoto action_110-action_148 (34) = happyGoto action_111-action_148 _ = happyReduce_60--action_149 (108) = happyShift action_162-action_149 (20) = happyGoto action_161-action_149 _ = happyReduce_38--action_150 (99) = happyShift action_125-action_150 (101) = happyShift action_151-action_150 (103) = happyShift action_152-action_150 (105) = happyShift action_128-action_150 (109) = happyShift action_57-action_150 (113) = happyShift action_58-action_150 (114) = happyShift action_59-action_150 (115) = happyShift action_60-action_150 (117) = happyShift action_61-action_150 (118) = happyShift action_62-action_150 (26) = happyGoto action_147-action_150 (27) = happyGoto action_148-action_150 (31) = happyGoto action_160-action_150 (32) = happyGoto action_150-action_150 (33) = happyGoto action_110-action_150 (34) = happyGoto action_111-action_150 _ = happyReduce_60--action_151 (67) = happyShift action_39-action_151 (23) = happyGoto action_158-action_151 (25) = happyGoto action_159-action_151 _ = happyFail--action_152 (67) = happyShift action_39-action_152 (68) = happyShift action_93-action_152 (69) = happyShift action_119-action_152 (72) = happyShift action_95-action_152 (79) = happyShift action_120-action_152 (81) = happyShift action_121-action_152 (89) = happyShift action_122-action_152 (90) = happyShift action_123-action_152 (91) = happyShift action_96-action_152 (92) = happyShift action_97-action_152 (93) = happyShift action_124-action_152 (94) = happyShift action_99-action_152 (97) = happyShift action_100-action_152 (99) = happyShift action_125-action_152 (101) = happyShift action_126-action_152 (103) = happyShift action_127-action_152 (105) = happyShift action_128-action_152 (109) = happyShift action_57-action_152 (113) = happyShift action_58-action_152 (114) = happyShift action_59-action_152 (115) = happyShift action_60-action_152 (117) = happyShift action_61-action_152 (118) = happyShift action_62-action_152 (120) = happyShift action_129-action_152 (121) = happyShift action_103-action_152 (23) = happyGoto action_154-action_152 (26) = happyGoto action_105-action_152 (27) = happyGoto action_106-action_152 (29) = happyGoto action_107-action_152 (30) = happyGoto action_155-action_152 (31) = happyGoto action_108-action_152 (32) = happyGoto action_109-action_152 (33) = happyGoto action_110-action_152 (34) = happyGoto action_111-action_152 (39) = happyGoto action_112-action_152 (41) = happyGoto action_156-action_152 (42) = happyGoto action_157-action_152 (43) = happyGoto action_114-action_152 (44) = happyGoto action_115-action_152 (45) = happyGoto action_116-action_152 (46) = happyGoto action_117-action_152 (47) = happyGoto action_118-action_152 (48) = happyGoto action_87-action_152 _ = happyReduce_60--action_153 _ = happyReduce_83--action_154 (97) = happyShift action_303-action_154 (111) = happyShift action_304-action_154 _ = happyReduce_138--action_155 (108) = happyShift action_302-action_155 _ = happyFail--action_156 _ = happyReduce_59--action_157 (106) = happyShift action_301-action_157 _ = happyReduce_100--action_158 (97) = happyShift action_275-action_158 (106) = happyShift action_174-action_158 (111) = happyShift action_276-action_158 _ = happyReduce_46--action_159 (108) = happyShift action_300-action_159 _ = happyFail--action_160 _ = happyReduce_61--action_161 (112) = happyShift action_299-action_161 _ = happyFail--action_162 (67) = happyShift action_39-action_162 (68) = happyShift action_93-action_162 (69) = happyShift action_119-action_162 (72) = happyShift action_95-action_162 (79) = happyShift action_120-action_162 (81) = happyShift action_121-action_162 (89) = happyShift action_122-action_162 (90) = happyShift action_123-action_162 (91) = happyShift action_96-action_162 (92) = happyShift action_97-action_162 (93) = happyShift action_124-action_162 (94) = happyShift action_99-action_162 (97) = happyShift action_100-action_162 (99) = happyShift action_125-action_162 (101) = happyShift action_126-action_162 (103) = happyShift action_127-action_162 (105) = happyShift action_128-action_162 (109) = happyShift action_57-action_162 (113) = happyShift action_58-action_162 (114) = happyShift action_59-action_162 (115) = happyShift action_60-action_162 (117) = happyShift action_61-action_162 (118) = happyShift action_62-action_162 (120) = happyShift action_129-action_162 (121) = happyShift action_103-action_162 (23) = happyGoto action_104-action_162 (26) = happyGoto action_105-action_162 (27) = happyGoto action_106-action_162 (29) = happyGoto action_107-action_162 (31) = happyGoto action_108-action_162 (32) = happyGoto action_109-action_162 (33) = happyGoto action_110-action_162 (34) = happyGoto action_111-action_162 (39) = happyGoto action_112-action_162 (42) = happyGoto action_298-action_162 (43) = happyGoto action_114-action_162 (44) = happyGoto action_115-action_162 (45) = happyGoto action_116-action_162 (46) = happyGoto action_117-action_162 (47) = happyGoto action_118-action_162 (48) = happyGoto action_87-action_162 _ = happyReduce_60--action_163 _ = happyReduce_62--action_164 (67) = happyShift action_39-action_164 (68) = happyShift action_93-action_164 (69) = happyShift action_119-action_164 (72) = happyShift action_95-action_164 (79) = happyShift action_120-action_164 (81) = happyShift action_121-action_164 (89) = happyShift action_122-action_164 (90) = happyShift action_123-action_164 (91) = happyShift action_96-action_164 (92) = happyShift action_97-action_164 (93) = happyShift action_124-action_164 (94) = happyShift action_99-action_164 (97) = happyShift action_100-action_164 (99) = happyShift action_125-action_164 (101) = happyShift action_126-action_164 (103) = happyShift action_127-action_164 (105) = happyShift action_128-action_164 (109) = happyShift action_57-action_164 (113) = happyShift action_58-action_164 (114) = happyShift action_59-action_164 (115) = happyShift action_60-action_164 (117) = happyShift action_61-action_164 (118) = happyShift action_62-action_164 (120) = happyShift action_129-action_164 (121) = happyShift action_103-action_164 (23) = happyGoto action_296-action_164 (26) = happyGoto action_105-action_164 (27) = happyGoto action_106-action_164 (29) = happyGoto action_107-action_164 (30) = happyGoto action_297-action_164 (31) = happyGoto action_108-action_164 (32) = happyGoto action_109-action_164 (33) = happyGoto action_110-action_164 (34) = happyGoto action_111-action_164 (39) = happyGoto action_112-action_164 (41) = happyGoto action_156-action_164 (42) = happyGoto action_157-action_164 (43) = happyGoto action_114-action_164 (44) = happyGoto action_115-action_164 (45) = happyGoto action_116-action_164 (46) = happyGoto action_117-action_164 (47) = happyGoto action_118-action_164 (48) = happyGoto action_87-action_164 _ = happyReduce_60--action_165 _ = happyReduce_82--action_166 (108) = happyShift action_295-action_166 _ = happyFail--action_167 (99) = happyShift action_294-action_167 _ = happyFail--action_168 (99) = happyShift action_125-action_168 (101) = happyShift action_151-action_168 (103) = happyShift action_152-action_168 (105) = happyShift action_128-action_168 (109) = happyShift action_57-action_168 (113) = happyShift action_58-action_168 (114) = happyShift action_59-action_168 (115) = happyShift action_60-action_168 (117) = happyShift action_61-action_168 (118) = happyShift action_62-action_168 (26) = happyGoto action_147-action_168 (27) = happyGoto action_148-action_168 (31) = happyGoto action_293-action_168 (32) = happyGoto action_150-action_168 (33) = happyGoto action_110-action_168 (34) = happyGoto action_111-action_168 _ = happyReduce_60--action_169 _ = happyReduce_148--action_170 (100) = happyShift action_291-action_170 (107) = happyShift action_292-action_170 _ = happyFail--action_171 (67) = happyShift action_39-action_171 (68) = happyShift action_93-action_171 (69) = happyShift action_119-action_171 (72) = happyShift action_95-action_171 (79) = happyShift action_120-action_171 (81) = happyShift action_121-action_171 (89) = happyShift action_122-action_171 (90) = happyShift action_123-action_171 (91) = happyShift action_96-action_171 (92) = happyShift action_97-action_171 (93) = happyShift action_124-action_171 (94) = happyShift action_99-action_171 (97) = happyShift action_100-action_171 (99) = happyShift action_125-action_171 (101) = happyShift action_126-action_171 (103) = happyShift action_127-action_171 (105) = happyShift action_128-action_171 (109) = happyShift action_57-action_171 (113) = happyShift action_58-action_171 (114) = happyShift action_59-action_171 (115) = happyShift action_60-action_171 (117) = happyShift action_61-action_171 (118) = happyShift action_62-action_171 (120) = happyShift action_129-action_171 (121) = happyShift action_103-action_171 (23) = happyGoto action_104-action_171 (26) = happyGoto action_105-action_171 (27) = happyGoto action_106-action_171 (29) = happyGoto action_107-action_171 (31) = happyGoto action_108-action_171 (32) = happyGoto action_109-action_171 (33) = happyGoto action_110-action_171 (34) = happyGoto action_111-action_171 (39) = happyGoto action_112-action_171 (42) = happyGoto action_290-action_171 (43) = happyGoto action_114-action_171 (44) = happyGoto action_115-action_171 (45) = happyGoto action_116-action_171 (46) = happyGoto action_117-action_171 (47) = happyGoto action_118-action_171 (48) = happyGoto action_87-action_171 _ = happyReduce_60--action_172 (108) = happyShift action_289-action_172 _ = happyFail--action_173 (67) = happyShift action_39-action_173 (68) = happyShift action_93-action_173 (69) = happyShift action_119-action_173 (72) = happyShift action_95-action_173 (79) = happyShift action_120-action_173 (81) = happyShift action_121-action_173 (89) = happyShift action_122-action_173 (90) = happyShift action_123-action_173 (91) = happyShift action_96-action_173 (92) = happyShift action_97-action_173 (93) = happyShift action_124-action_173 (94) = happyShift action_99-action_173 (97) = happyShift action_100-action_173 (99) = happyShift action_125-action_173 (101) = happyShift action_126-action_173 (103) = happyShift action_127-action_173 (105) = happyShift action_128-action_173 (109) = happyShift action_57-action_173 (113) = happyShift action_58-action_173 (114) = happyShift action_59-action_173 (115) = happyShift action_60-action_173 (117) = happyShift action_61-action_173 (118) = happyShift action_62-action_173 (120) = happyShift action_129-action_173 (121) = happyShift action_103-action_173 (23) = happyGoto action_104-action_173 (26) = happyGoto action_105-action_173 (27) = happyGoto action_106-action_173 (29) = happyGoto action_107-action_173 (31) = happyGoto action_108-action_173 (32) = happyGoto action_109-action_173 (33) = happyGoto action_110-action_173 (34) = happyGoto action_111-action_173 (39) = happyGoto action_112-action_173 (42) = happyGoto action_288-action_173 (43) = happyGoto action_114-action_173 (44) = happyGoto action_115-action_173 (45) = happyGoto action_116-action_173 (46) = happyGoto action_117-action_173 (47) = happyGoto action_118-action_173 (48) = happyGoto action_87-action_173 _ = happyReduce_60--action_174 (67) = happyShift action_39-action_174 (23) = happyGoto action_138-action_174 (25) = happyGoto action_287-action_174 _ = happyFail--action_175 (99) = happyShift action_286-action_175 _ = happyFail--action_176 (100) = happyShift action_285-action_176 _ = happyFail--action_177 _ = happyReduce_31--action_178 (67) = happyShift action_39-action_178 (23) = happyGoto action_130-action_178 (55) = happyGoto action_284-action_178 _ = happyReduce_180--action_179 _ = happyReduce_32--action_180 (112) = happyShift action_283-action_180 _ = happyReduce_156--action_181 (67) = happyShift action_39-action_181 (93) = happyShift action_235-action_181 (95) = happyShift action_282-action_181 (103) = happyShift action_236-action_181 (109) = happyShift action_102-action_181 (23) = happyGoto action_233-action_181 (58) = happyGoto action_281-action_181 (62) = happyGoto action_231-action_181 _ = happyReduce_157--action_182 (110) = happyShift action_280-action_182 _ = happyFail--action_183 _ = happyReduce_54--action_184 (105) = happyShift action_278-action_184 (106) = happyShift action_279-action_184 _ = happyFail--action_185 (104) = happyShift action_277-action_185 _ = happyFail--action_186 (108) = happyReduce_59-action_186 _ = happyReduce_99--action_187 (97) = happyShift action_275-action_187 (106) = happyShift action_174-action_187 (108) = happyReduce_46-action_187 (111) = happyShift action_276-action_187 _ = happyReduce_138--action_188 (102) = happyShift action_274-action_188 _ = happyFail--action_189 (97) = happyShift action_272-action_189 (106) = happyShift action_174-action_189 (111) = happyShift action_273-action_189 _ = happyReduce_46--action_190 (108) = happyShift action_271-action_190 _ = happyFail--action_191 _ = happyReduce_134--action_192 (67) = happyShift action_39-action_192 (68) = happyShift action_93-action_192 (69) = happyShift action_119-action_192 (72) = happyShift action_95-action_192 (79) = happyShift action_120-action_192 (81) = happyShift action_121-action_192 (89) = happyShift action_122-action_192 (90) = happyShift action_123-action_192 (91) = happyShift action_96-action_192 (92) = happyShift action_97-action_192 (93) = happyShift action_124-action_192 (94) = happyShift action_99-action_192 (97) = happyShift action_100-action_192 (99) = happyShift action_125-action_192 (101) = happyShift action_126-action_192 (103) = happyShift action_127-action_192 (105) = happyShift action_128-action_192 (109) = happyShift action_57-action_192 (113) = happyShift action_58-action_192 (114) = happyShift action_59-action_192 (115) = happyShift action_60-action_192 (117) = happyShift action_61-action_192 (118) = happyShift action_62-action_192 (120) = happyShift action_129-action_192 (121) = happyShift action_103-action_192 (23) = happyGoto action_104-action_192 (26) = happyGoto action_105-action_192 (27) = happyGoto action_106-action_192 (29) = happyGoto action_107-action_192 (31) = happyGoto action_108-action_192 (32) = happyGoto action_109-action_192 (33) = happyGoto action_110-action_192 (34) = happyGoto action_111-action_192 (39) = happyGoto action_112-action_192 (40) = happyGoto action_185-action_192 (41) = happyGoto action_200-action_192 (42) = happyGoto action_157-action_192 (43) = happyGoto action_114-action_192 (44) = happyGoto action_115-action_192 (45) = happyGoto action_116-action_192 (46) = happyGoto action_117-action_192 (47) = happyGoto action_118-action_192 (48) = happyGoto action_87-action_192 _ = happyReduce_60--action_193 _ = happyReduce_119--action_194 _ = happyReduce_121--action_195 _ = happyReduce_84--action_196 (67) = happyShift action_39-action_196 (103) = happyShift action_270-action_196 (23) = happyGoto action_153-action_196 _ = happyFail--action_197 (82) = happyShift action_269-action_197 _ = happyFail--action_198 (67) = happyShift action_39-action_198 (23) = happyGoto action_268-action_198 _ = happyFail--action_199 (108) = happyShift action_162-action_199 (20) = happyGoto action_267-action_199 _ = happyReduce_38--action_200 _ = happyReduce_99--action_201 (67) = happyShift action_39-action_201 (68) = happyShift action_93-action_201 (69) = happyShift action_119-action_201 (72) = happyShift action_95-action_201 (89) = happyShift action_122-action_201 (90) = happyShift action_123-action_201 (91) = happyShift action_96-action_201 (92) = happyShift action_97-action_201 (93) = happyShift action_124-action_201 (94) = happyShift action_99-action_201 (97) = happyShift action_100-action_201 (103) = happyShift action_192-action_201 (121) = happyShift action_103-action_201 (23) = happyGoto action_104-action_201 (45) = happyGoto action_266-action_201 (46) = happyGoto action_117-action_201 (47) = happyGoto action_118-action_201 (48) = happyGoto action_87-action_201 _ = happyFail--action_202 _ = happyReduce_124--action_203 _ = happyReduce_126--action_204 (67) = happyShift action_39-action_204 (23) = happyGoto action_265-action_204 _ = happyFail--action_205 (67) = happyShift action_39-action_205 (68) = happyShift action_93-action_205 (69) = happyShift action_119-action_205 (72) = happyShift action_95-action_205 (79) = happyShift action_120-action_205 (81) = happyShift action_121-action_205 (89) = happyShift action_122-action_205 (90) = happyShift action_123-action_205 (91) = happyShift action_96-action_205 (92) = happyShift action_97-action_205 (93) = happyShift action_124-action_205 (94) = happyShift action_99-action_205 (97) = happyShift action_100-action_205 (99) = happyShift action_125-action_205 (101) = happyShift action_126-action_205 (103) = happyShift action_127-action_205 (105) = happyShift action_128-action_205 (109) = happyShift action_57-action_205 (113) = happyShift action_58-action_205 (114) = happyShift action_59-action_205 (115) = happyShift action_60-action_205 (117) = happyShift action_61-action_205 (118) = happyShift action_62-action_205 (120) = happyShift action_129-action_205 (121) = happyShift action_103-action_205 (23) = happyGoto action_104-action_205 (26) = happyGoto action_105-action_205 (27) = happyGoto action_106-action_205 (29) = happyGoto action_107-action_205 (31) = happyGoto action_108-action_205 (32) = happyGoto action_109-action_205 (33) = happyGoto action_110-action_205 (34) = happyGoto action_111-action_205 (39) = happyGoto action_112-action_205 (42) = happyGoto action_264-action_205 (43) = happyGoto action_114-action_205 (44) = happyGoto action_115-action_205 (45) = happyGoto action_116-action_205 (46) = happyGoto action_117-action_205 (47) = happyGoto action_118-action_205 (48) = happyGoto action_87-action_205 _ = happyReduce_60--action_206 (67) = happyShift action_39-action_206 (68) = happyShift action_93-action_206 (69) = happyShift action_119-action_206 (72) = happyShift action_95-action_206 (79) = happyShift action_120-action_206 (81) = happyShift action_121-action_206 (89) = happyShift action_122-action_206 (90) = happyShift action_123-action_206 (91) = happyShift action_96-action_206 (92) = happyShift action_97-action_206 (93) = happyShift action_124-action_206 (94) = happyShift action_99-action_206 (97) = happyShift action_100-action_206 (99) = happyShift action_125-action_206 (101) = happyShift action_126-action_206 (103) = happyShift action_127-action_206 (105) = happyShift action_128-action_206 (109) = happyShift action_57-action_206 (113) = happyShift action_58-action_206 (114) = happyShift action_59-action_206 (115) = happyShift action_60-action_206 (117) = happyShift action_61-action_206 (118) = happyShift action_62-action_206 (120) = happyShift action_129-action_206 (121) = happyShift action_103-action_206 (23) = happyGoto action_104-action_206 (26) = happyGoto action_105-action_206 (27) = happyGoto action_106-action_206 (29) = happyGoto action_107-action_206 (31) = happyGoto action_108-action_206 (32) = happyGoto action_109-action_206 (33) = happyGoto action_110-action_206 (34) = happyGoto action_111-action_206 (39) = happyGoto action_112-action_206 (42) = happyGoto action_263-action_206 (43) = happyGoto action_114-action_206 (44) = happyGoto action_115-action_206 (45) = happyGoto action_116-action_206 (46) = happyGoto action_117-action_206 (47) = happyGoto action_118-action_206 (48) = happyGoto action_87-action_206 _ = happyReduce_60--action_207 (67) = happyShift action_39-action_207 (68) = happyShift action_93-action_207 (69) = happyShift action_119-action_207 (72) = happyShift action_95-action_207 (79) = happyShift action_120-action_207 (81) = happyShift action_121-action_207 (89) = happyShift action_122-action_207 (90) = happyShift action_123-action_207 (91) = happyShift action_96-action_207 (92) = happyShift action_97-action_207 (93) = happyShift action_124-action_207 (94) = happyShift action_99-action_207 (97) = happyShift action_100-action_207 (99) = happyShift action_125-action_207 (101) = happyShift action_126-action_207 (103) = happyShift action_127-action_207 (105) = happyShift action_128-action_207 (109) = happyShift action_57-action_207 (113) = happyShift action_58-action_207 (114) = happyShift action_59-action_207 (115) = happyShift action_60-action_207 (117) = happyShift action_61-action_207 (118) = happyShift action_62-action_207 (120) = happyShift action_129-action_207 (121) = happyShift action_103-action_207 (23) = happyGoto action_104-action_207 (26) = happyGoto action_105-action_207 (27) = happyGoto action_106-action_207 (29) = happyGoto action_107-action_207 (31) = happyGoto action_108-action_207 (32) = happyGoto action_109-action_207 (33) = happyGoto action_110-action_207 (34) = happyGoto action_111-action_207 (39) = happyGoto action_112-action_207 (42) = happyGoto action_262-action_207 (43) = happyGoto action_114-action_207 (44) = happyGoto action_115-action_207 (45) = happyGoto action_116-action_207 (46) = happyGoto action_117-action_207 (47) = happyGoto action_118-action_207 (48) = happyGoto action_87-action_207 _ = happyReduce_60--action_208 (67) = happyShift action_39-action_208 (68) = happyShift action_93-action_208 (69) = happyShift action_119-action_208 (72) = happyShift action_95-action_208 (89) = happyShift action_122-action_208 (90) = happyShift action_123-action_208 (91) = happyShift action_96-action_208 (92) = happyShift action_97-action_208 (93) = happyShift action_124-action_208 (94) = happyShift action_99-action_208 (97) = happyShift action_100-action_208 (99) = happyShift action_125-action_208 (101) = happyShift action_218-action_208 (103) = happyShift action_127-action_208 (105) = happyShift action_128-action_208 (109) = happyShift action_57-action_208 (113) = happyShift action_58-action_208 (114) = happyShift action_59-action_208 (115) = happyShift action_60-action_208 (117) = happyShift action_61-action_208 (118) = happyShift action_62-action_208 (121) = happyShift action_103-action_208 (23) = happyGoto action_104-action_208 (26) = happyGoto action_212-action_208 (27) = happyGoto action_213-action_208 (29) = happyGoto action_214-action_208 (32) = happyGoto action_215-action_208 (33) = happyGoto action_110-action_208 (34) = happyGoto action_111-action_208 (43) = happyGoto action_260-action_208 (44) = happyGoto action_115-action_208 (45) = happyGoto action_261-action_208 (46) = happyGoto action_117-action_208 (47) = happyGoto action_118-action_208 (48) = happyGoto action_87-action_208 _ = happyFail--action_209 (67) = happyShift action_39-action_209 (68) = happyShift action_93-action_209 (69) = happyShift action_119-action_209 (72) = happyShift action_95-action_209 (79) = happyShift action_120-action_209 (81) = happyShift action_121-action_209 (89) = happyShift action_122-action_209 (90) = happyShift action_123-action_209 (91) = happyShift action_96-action_209 (92) = happyShift action_97-action_209 (93) = happyShift action_124-action_209 (94) = happyShift action_99-action_209 (97) = happyShift action_100-action_209 (99) = happyShift action_125-action_209 (101) = happyShift action_126-action_209 (103) = happyShift action_127-action_209 (105) = happyShift action_128-action_209 (109) = happyShift action_57-action_209 (113) = happyShift action_58-action_209 (114) = happyShift action_59-action_209 (115) = happyShift action_60-action_209 (117) = happyShift action_61-action_209 (118) = happyShift action_62-action_209 (120) = happyShift action_129-action_209 (121) = happyShift action_103-action_209 (23) = happyGoto action_104-action_209 (26) = happyGoto action_105-action_209 (27) = happyGoto action_106-action_209 (29) = happyGoto action_107-action_209 (31) = happyGoto action_108-action_209 (32) = happyGoto action_109-action_209 (33) = happyGoto action_110-action_209 (34) = happyGoto action_111-action_209 (39) = happyGoto action_112-action_209 (42) = happyGoto action_259-action_209 (43) = happyGoto action_114-action_209 (44) = happyGoto action_115-action_209 (45) = happyGoto action_116-action_209 (46) = happyGoto action_117-action_209 (47) = happyGoto action_118-action_209 (48) = happyGoto action_87-action_209 _ = happyReduce_60--action_210 (105) = happyShift action_128-action_210 (27) = happyGoto action_258-action_210 _ = happyFail--action_211 (105) = happyShift action_128-action_211 (27) = happyGoto action_257-action_211 _ = happyFail--action_212 (67) = happyShift action_39-action_212 (68) = happyShift action_93-action_212 (69) = happyShift action_119-action_212 (72) = happyShift action_95-action_212 (89) = happyShift action_122-action_212 (90) = happyShift action_123-action_212 (91) = happyShift action_96-action_212 (92) = happyShift action_97-action_212 (93) = happyShift action_124-action_212 (94) = happyShift action_99-action_212 (97) = happyShift action_100-action_212 (103) = happyShift action_256-action_212 (121) = happyShift action_103-action_212 (23) = happyGoto action_104-action_212 (45) = happyGoto action_255-action_212 (46) = happyGoto action_117-action_212 (47) = happyGoto action_118-action_212 (48) = happyGoto action_87-action_212 _ = happyFail--action_213 (97) = happyShift action_210-action_213 (111) = happyShift action_211-action_213 _ = happyReduce_116--action_214 _ = happyReduce_117--action_215 _ = happyReduce_115--action_216 _ = happyReduce_94--action_217 (119) = happyReduce_114-action_217 _ = happyReduce_110--action_218 (67) = happyShift action_39-action_218 (68) = happyShift action_93-action_218 (69) = happyShift action_119-action_218 (72) = happyShift action_95-action_218 (79) = happyShift action_120-action_218 (81) = happyShift action_121-action_218 (89) = happyShift action_122-action_218 (90) = happyShift action_123-action_218 (91) = happyShift action_96-action_218 (92) = happyShift action_97-action_218 (93) = happyShift action_124-action_218 (94) = happyShift action_99-action_218 (97) = happyShift action_100-action_218 (99) = happyShift action_125-action_218 (101) = happyShift action_126-action_218 (103) = happyShift action_127-action_218 (105) = happyShift action_128-action_218 (109) = happyShift action_57-action_218 (113) = happyShift action_58-action_218 (114) = happyShift action_59-action_218 (115) = happyShift action_60-action_218 (117) = happyShift action_61-action_218 (118) = happyShift action_62-action_218 (120) = happyShift action_129-action_218 (121) = happyShift action_103-action_218 (23) = happyGoto action_187-action_218 (25) = happyGoto action_159-action_218 (26) = happyGoto action_105-action_218 (27) = happyGoto action_106-action_218 (29) = happyGoto action_107-action_218 (31) = happyGoto action_108-action_218 (32) = happyGoto action_109-action_218 (33) = happyGoto action_110-action_218 (34) = happyGoto action_111-action_218 (39) = happyGoto action_112-action_218 (42) = happyGoto action_254-action_218 (43) = happyGoto action_114-action_218 (44) = happyGoto action_115-action_218 (45) = happyGoto action_116-action_218 (46) = happyGoto action_117-action_218 (47) = happyGoto action_118-action_218 (48) = happyGoto action_87-action_218 _ = happyReduce_60--action_219 (67) = happyShift action_39-action_219 (68) = happyShift action_93-action_219 (69) = happyShift action_119-action_219 (72) = happyShift action_95-action_219 (79) = happyShift action_120-action_219 (81) = happyShift action_121-action_219 (89) = happyShift action_122-action_219 (90) = happyShift action_123-action_219 (91) = happyShift action_96-action_219 (92) = happyShift action_97-action_219 (93) = happyShift action_124-action_219 (94) = happyShift action_99-action_219 (97) = happyShift action_100-action_219 (99) = happyShift action_125-action_219 (101) = happyShift action_126-action_219 (103) = happyShift action_127-action_219 (105) = happyShift action_128-action_219 (109) = happyShift action_57-action_219 (113) = happyShift action_58-action_219 (114) = happyShift action_59-action_219 (115) = happyShift action_60-action_219 (117) = happyShift action_61-action_219 (118) = happyShift action_62-action_219 (120) = happyShift action_129-action_219 (121) = happyShift action_103-action_219 (23) = happyGoto action_252-action_219 (26) = happyGoto action_105-action_219 (27) = happyGoto action_106-action_219 (29) = happyGoto action_107-action_219 (30) = happyGoto action_253-action_219 (31) = happyGoto action_108-action_219 (32) = happyGoto action_109-action_219 (33) = happyGoto action_110-action_219 (34) = happyGoto action_111-action_219 (39) = happyGoto action_112-action_219 (40) = happyGoto action_185-action_219 (41) = happyGoto action_186-action_219 (42) = happyGoto action_157-action_219 (43) = happyGoto action_114-action_219 (44) = happyGoto action_115-action_219 (45) = happyGoto action_116-action_219 (46) = happyGoto action_117-action_219 (47) = happyGoto action_118-action_219 (48) = happyGoto action_87-action_219 _ = happyReduce_60--action_220 (67) = happyReduce_177-action_220 (70) = happyReduce_177-action_220 (71) = happyReduce_177-action_220 (72) = happyReduce_177-action_220 (73) = happyReduce_177-action_220 (75) = happyReduce_177-action_220 (76) = happyReduce_177-action_220 (77) = happyReduce_177-action_220 (78) = happyReduce_177-action_220 (81) = happyReduce_177-action_220 (83) = happyReduce_177-action_220 (84) = happyReduce_177-action_220 (85) = happyReduce_177-action_220 (86) = happyReduce_177-action_220 (87) = happyReduce_177-action_220 (93) = happyReduce_177-action_220 (95) = happyReduce_177-action_220 (100) = happyReduce_177-action_220 (103) = happyReduce_177-action_220 (104) = happyReduce_177-action_220 (106) = happyReduce_177-action_220 (107) = happyReduce_177-action_220 (109) = happyReduce_177-action_220 (110) = happyReduce_177-action_220 (112) = happyReduce_177-action_220 (122) = happyReduce_177-action_220 _ = happyReduce_177--action_221 _ = happyReduce_166--action_222 _ = happyReduce_165--action_223 (98) = happyShift action_240-action_223 _ = happyReduce_123--action_224 (104) = happyShift action_251-action_224 _ = happyFail--action_225 (67) = happyShift action_39-action_225 (68) = happyShift action_93-action_225 (69) = happyShift action_119-action_225 (72) = happyShift action_95-action_225 (79) = happyShift action_120-action_225 (81) = happyShift action_121-action_225 (89) = happyShift action_122-action_225 (90) = happyShift action_123-action_225 (91) = happyShift action_96-action_225 (92) = happyShift action_97-action_225 (93) = happyShift action_98-action_225 (94) = happyShift action_99-action_225 (97) = happyShift action_100-action_225 (99) = happyShift action_125-action_225 (101) = happyShift action_126-action_225 (103) = happyShift action_225-action_225 (104) = happyShift action_226-action_225 (105) = happyShift action_128-action_225 (109) = happyShift action_227-action_225 (113) = happyShift action_58-action_225 (114) = happyShift action_59-action_225 (115) = happyShift action_60-action_225 (117) = happyShift action_61-action_225 (118) = happyShift action_62-action_225 (120) = happyShift action_129-action_225 (121) = happyShift action_103-action_225 (23) = happyGoto action_250-action_225 (26) = happyGoto action_105-action_225 (27) = happyGoto action_106-action_225 (29) = happyGoto action_107-action_225 (30) = happyGoto action_155-action_225 (31) = happyGoto action_108-action_225 (32) = happyGoto action_109-action_225 (33) = happyGoto action_110-action_225 (34) = happyGoto action_111-action_225 (39) = happyGoto action_112-action_225 (40) = happyGoto action_185-action_225 (41) = happyGoto action_186-action_225 (42) = happyGoto action_157-action_225 (43) = happyGoto action_114-action_225 (44) = happyGoto action_115-action_225 (45) = happyGoto action_116-action_225 (46) = happyGoto action_117-action_225 (47) = happyGoto action_223-action_225 (48) = happyGoto action_87-action_225 (58) = happyGoto action_88-action_225 (59) = happyGoto action_224-action_225 (60) = happyGoto action_90-action_225 (61) = happyGoto action_91-action_225 (62) = happyGoto action_92-action_225 _ = happyReduce_60--action_226 _ = happyReduce_161--action_227 (67) = happyShift action_39-action_227 (68) = happyShift action_93-action_227 (69) = happyShift action_94-action_227 (72) = happyShift action_95-action_227 (89) = happyShift action_222-action_227 (91) = happyShift action_96-action_227 (92) = happyShift action_97-action_227 (93) = happyShift action_124-action_227 (94) = happyShift action_99-action_227 (97) = happyShift action_100-action_227 (103) = happyShift action_192-action_227 (121) = happyShift action_103-action_227 (23) = happyGoto action_220-action_227 (47) = happyGoto action_221-action_227 (48) = happyGoto action_87-action_227 _ = happyReduce_51--action_228 (108) = happyShift action_249-action_228 _ = happyFail--action_229 (67) = happyReduce_176-action_229 (70) = happyReduce_176-action_229 (71) = happyReduce_176-action_229 (72) = happyReduce_176-action_229 (73) = happyReduce_176-action_229 (75) = happyReduce_176-action_229 (76) = happyReduce_176-action_229 (77) = happyReduce_176-action_229 (78) = happyReduce_176-action_229 (81) = happyReduce_176-action_229 (83) = happyReduce_176-action_229 (84) = happyReduce_176-action_229 (85) = happyReduce_176-action_229 (86) = happyReduce_176-action_229 (87) = happyReduce_176-action_229 (93) = happyReduce_176-action_229 (95) = happyReduce_176-action_229 (100) = happyReduce_176-action_229 (103) = happyReduce_176-action_229 (104) = happyReduce_176-action_229 (106) = happyReduce_176-action_229 (107) = happyReduce_176-action_229 (109) = happyReduce_176-action_229 (112) = happyReduce_176-action_229 (122) = happyReduce_176-action_229 _ = happyReduce_138--action_230 _ = happyReduce_164--action_231 _ = happyReduce_163--action_232 (67) = happyShift action_39-action_232 (23) = happyGoto action_37-action_232 (24) = happyGoto action_246-action_232 (49) = happyGoto action_247-action_232 (50) = happyGoto action_248-action_232 _ = happyReduce_141--action_233 _ = happyReduce_176--action_234 _ = happyReduce_174--action_235 (67) = happyShift action_39-action_235 (93) = happyShift action_235-action_235 (103) = happyShift action_236-action_235 (109) = happyShift action_102-action_235 (23) = happyGoto action_233-action_235 (58) = happyGoto action_230-action_235 (62) = happyGoto action_231-action_235 _ = happyFail--action_236 (67) = happyShift action_39-action_236 (68) = happyShift action_93-action_236 (69) = happyShift action_94-action_236 (72) = happyShift action_95-action_236 (91) = happyShift action_96-action_236 (92) = happyShift action_97-action_236 (93) = happyShift action_98-action_236 (94) = happyShift action_99-action_236 (97) = happyShift action_100-action_236 (103) = happyShift action_101-action_236 (104) = happyShift action_226-action_236 (109) = happyShift action_102-action_236 (121) = happyShift action_103-action_236 (23) = happyGoto action_85-action_236 (47) = happyGoto action_86-action_236 (48) = happyGoto action_87-action_236 (58) = happyGoto action_88-action_236 (59) = happyGoto action_224-action_236 (60) = happyGoto action_90-action_236 (61) = happyGoto action_91-action_236 (62) = happyGoto action_92-action_236 _ = happyFail--action_237 _ = happyReduce_175--action_238 (67) = happyShift action_39-action_238 (68) = happyShift action_93-action_238 (69) = happyShift action_94-action_238 (72) = happyShift action_95-action_238 (91) = happyShift action_96-action_238 (92) = happyShift action_97-action_238 (93) = happyShift action_98-action_238 (94) = happyShift action_99-action_238 (97) = happyShift action_100-action_238 (103) = happyShift action_101-action_238 (109) = happyShift action_102-action_238 (121) = happyShift action_103-action_238 (23) = happyGoto action_85-action_238 (47) = happyGoto action_86-action_238 (48) = happyGoto action_87-action_238 (58) = happyGoto action_88-action_238 (60) = happyGoto action_245-action_238 (61) = happyGoto action_91-action_238 (62) = happyGoto action_92-action_238 _ = happyFail--action_239 (67) = happyShift action_39-action_239 (68) = happyShift action_93-action_239 (69) = happyShift action_94-action_239 (72) = happyShift action_95-action_239 (91) = happyShift action_96-action_239 (92) = happyShift action_97-action_239 (93) = happyShift action_98-action_239 (94) = happyShift action_99-action_239 (97) = happyShift action_100-action_239 (103) = happyShift action_101-action_239 (109) = happyShift action_102-action_239 (121) = happyShift action_103-action_239 (23) = happyGoto action_85-action_239 (47) = happyGoto action_86-action_239 (48) = happyGoto action_87-action_239 (58) = happyGoto action_88-action_239 (59) = happyGoto action_244-action_239 (60) = happyGoto action_90-action_239 (61) = happyGoto action_91-action_239 (62) = happyGoto action_92-action_239 _ = happyFail--action_240 (67) = happyShift action_39-action_240 (23) = happyGoto action_243-action_240 _ = happyFail--action_241 (67) = happyShift action_39-action_241 (68) = happyShift action_93-action_241 (69) = happyShift action_94-action_241 (72) = happyShift action_95-action_241 (91) = happyShift action_96-action_241 (92) = happyShift action_97-action_241 (93) = happyShift action_124-action_241 (94) = happyShift action_99-action_241 (97) = happyShift action_100-action_241 (103) = happyShift action_192-action_241 (121) = happyShift action_103-action_241 (23) = happyGoto action_104-action_241 (47) = happyGoto action_242-action_241 (48) = happyGoto action_87-action_241 _ = happyFail--action_242 _ = happyReduce_171--action_243 _ = happyReduce_170--action_244 _ = happyReduce_167--action_245 _ = happyReduce_173--action_246 (112) = happyShift action_346-action_246 _ = happyFail--action_247 (100) = happyShift action_345-action_247 _ = happyFail--action_248 (107) = happyShift action_344-action_248 _ = happyReduce_140--action_249 (67) = happyShift action_39-action_249 (68) = happyShift action_93-action_249 (69) = happyShift action_119-action_249 (72) = happyShift action_95-action_249 (79) = happyShift action_120-action_249 (81) = happyShift action_121-action_249 (89) = happyShift action_122-action_249 (90) = happyShift action_123-action_249 (91) = happyShift action_96-action_249 (92) = happyShift action_97-action_249 (93) = happyShift action_124-action_249 (94) = happyShift action_99-action_249 (97) = happyShift action_100-action_249 (99) = happyShift action_125-action_249 (101) = happyShift action_126-action_249 (103) = happyShift action_127-action_249 (105) = happyShift action_128-action_249 (109) = happyShift action_57-action_249 (113) = happyShift action_58-action_249 (114) = happyShift action_59-action_249 (115) = happyShift action_60-action_249 (117) = happyShift action_61-action_249 (118) = happyShift action_62-action_249 (120) = happyShift action_129-action_249 (121) = happyShift action_103-action_249 (23) = happyGoto action_104-action_249 (26) = happyGoto action_105-action_249 (27) = happyGoto action_106-action_249 (29) = happyGoto action_107-action_249 (31) = happyGoto action_108-action_249 (32) = happyGoto action_109-action_249 (33) = happyGoto action_110-action_249 (34) = happyGoto action_111-action_249 (39) = happyGoto action_112-action_249 (42) = happyGoto action_343-action_249 (43) = happyGoto action_114-action_249 (44) = happyGoto action_115-action_249 (45) = happyGoto action_116-action_249 (46) = happyGoto action_117-action_249 (47) = happyGoto action_118-action_249 (48) = happyGoto action_87-action_249 _ = happyReduce_60--action_250 (67) = happyReduce_176-action_250 (93) = happyReduce_176-action_250 (97) = happyShift action_342-action_250 (103) = happyReduce_176-action_250 (104) = happyReduce_176-action_250 (106) = happyReduce_176-action_250 (109) = happyReduce_176-action_250 (111) = happyShift action_304-action_250 _ = happyReduce_138--action_251 _ = happyReduce_162--action_252 (97) = happyShift action_340-action_252 (111) = happyShift action_341-action_252 _ = happyReduce_138--action_253 (108) = happyShift action_339-action_253 _ = happyFail--action_254 (102) = happyShift action_338-action_254 _ = happyFail--action_255 _ = happyReduce_114--action_256 (67) = happyShift action_39-action_256 (68) = happyShift action_93-action_256 (69) = happyShift action_119-action_256 (72) = happyShift action_95-action_256 (79) = happyShift action_120-action_256 (81) = happyShift action_121-action_256 (89) = happyShift action_122-action_256 (90) = happyShift action_123-action_256 (91) = happyShift action_96-action_256 (92) = happyShift action_97-action_256 (93) = happyShift action_124-action_256 (94) = happyShift action_99-action_256 (97) = happyShift action_100-action_256 (99) = happyShift action_125-action_256 (101) = happyShift action_126-action_256 (103) = happyShift action_127-action_256 (105) = happyShift action_128-action_256 (109) = happyShift action_57-action_256 (113) = happyShift action_58-action_256 (114) = happyShift action_59-action_256 (115) = happyShift action_60-action_256 (117) = happyShift action_61-action_256 (118) = happyShift action_62-action_256 (120) = happyShift action_129-action_256 (121) = happyShift action_103-action_256 (23) = happyGoto action_296-action_256 (26) = happyGoto action_105-action_256 (27) = happyGoto action_106-action_256 (29) = happyGoto action_107-action_256 (30) = happyGoto action_297-action_256 (31) = happyGoto action_108-action_256 (32) = happyGoto action_109-action_256 (33) = happyGoto action_110-action_256 (34) = happyGoto action_111-action_256 (39) = happyGoto action_112-action_256 (40) = happyGoto action_185-action_256 (41) = happyGoto action_186-action_256 (42) = happyGoto action_157-action_256 (43) = happyGoto action_114-action_256 (44) = happyGoto action_115-action_256 (45) = happyGoto action_116-action_256 (46) = happyGoto action_117-action_256 (47) = happyGoto action_118-action_256 (48) = happyGoto action_87-action_256 _ = happyReduce_60--action_257 _ = happyReduce_58--action_258 _ = happyReduce_57--action_259 _ = happyReduce_102--action_260 _ = happyReduce_111--action_261 (119) = happyReduce_112-action_261 _ = happyReduce_110--action_262 _ = happyReduce_107--action_263 _ = happyReduce_109--action_264 _ = happyReduce_108--action_265 _ = happyReduce_125--action_266 _ = happyReduce_122--action_267 (99) = happyShift action_337-action_267 _ = happyFail--action_268 (102) = happyShift action_165-action_268 (108) = happyShift action_336-action_268 _ = happyFail--action_269 (67) = happyShift action_39-action_269 (68) = happyShift action_93-action_269 (69) = happyShift action_119-action_269 (72) = happyShift action_95-action_269 (79) = happyShift action_120-action_269 (81) = happyShift action_121-action_269 (89) = happyShift action_122-action_269 (90) = happyShift action_123-action_269 (91) = happyShift action_96-action_269 (92) = happyShift action_97-action_269 (93) = happyShift action_124-action_269 (94) = happyShift action_99-action_269 (97) = happyShift action_100-action_269 (99) = happyShift action_125-action_269 (101) = happyShift action_126-action_269 (103) = happyShift action_127-action_269 (105) = happyShift action_128-action_269 (109) = happyShift action_57-action_269 (113) = happyShift action_58-action_269 (114) = happyShift action_59-action_269 (115) = happyShift action_60-action_269 (117) = happyShift action_61-action_269 (118) = happyShift action_62-action_269 (120) = happyShift action_129-action_269 (121) = happyShift action_103-action_269 (23) = happyGoto action_104-action_269 (26) = happyGoto action_105-action_269 (27) = happyGoto action_106-action_269 (29) = happyGoto action_107-action_269 (31) = happyGoto action_108-action_269 (32) = happyGoto action_109-action_269 (33) = happyGoto action_110-action_269 (34) = happyGoto action_111-action_269 (39) = happyGoto action_112-action_269 (40) = happyGoto action_335-action_269 (41) = happyGoto action_200-action_269 (42) = happyGoto action_157-action_269 (43) = happyGoto action_114-action_269 (44) = happyGoto action_115-action_269 (45) = happyGoto action_116-action_269 (46) = happyGoto action_117-action_269 (47) = happyGoto action_118-action_269 (48) = happyGoto action_87-action_269 _ = happyReduce_60--action_270 (67) = happyShift action_39-action_270 (23) = happyGoto action_334-action_270 _ = happyFail--action_271 (67) = happyShift action_39-action_271 (68) = happyShift action_93-action_271 (69) = happyShift action_119-action_271 (72) = happyShift action_95-action_271 (79) = happyShift action_120-action_271 (81) = happyShift action_121-action_271 (89) = happyShift action_122-action_271 (90) = happyShift action_123-action_271 (91) = happyShift action_96-action_271 (92) = happyShift action_97-action_271 (93) = happyShift action_124-action_271 (94) = happyShift action_99-action_271 (97) = happyShift action_100-action_271 (99) = happyShift action_125-action_271 (101) = happyShift action_126-action_271 (103) = happyShift action_127-action_271 (105) = happyShift action_128-action_271 (109) = happyShift action_57-action_271 (113) = happyShift action_58-action_271 (114) = happyShift action_59-action_271 (115) = happyShift action_60-action_271 (117) = happyShift action_61-action_271 (118) = happyShift action_62-action_271 (120) = happyShift action_129-action_271 (121) = happyShift action_103-action_271 (23) = happyGoto action_104-action_271 (26) = happyGoto action_105-action_271 (27) = happyGoto action_106-action_271 (29) = happyGoto action_107-action_271 (31) = happyGoto action_108-action_271 (32) = happyGoto action_109-action_271 (33) = happyGoto action_110-action_271 (34) = happyGoto action_111-action_271 (39) = happyGoto action_112-action_271 (42) = happyGoto action_333-action_271 (43) = happyGoto action_114-action_271 (44) = happyGoto action_115-action_271 (45) = happyGoto action_116-action_271 (46) = happyGoto action_117-action_271 (47) = happyGoto action_118-action_271 (48) = happyGoto action_87-action_271 _ = happyReduce_60--action_272 (67) = happyShift action_39-action_272 (68) = happyShift action_93-action_272 (69) = happyShift action_119-action_272 (72) = happyShift action_95-action_272 (79) = happyShift action_120-action_272 (81) = happyShift action_121-action_272 (89) = happyShift action_122-action_272 (90) = happyShift action_123-action_272 (91) = happyShift action_96-action_272 (92) = happyShift action_97-action_272 (93) = happyShift action_124-action_272 (94) = happyShift action_99-action_272 (97) = happyShift action_100-action_272 (99) = happyShift action_125-action_272 (101) = happyShift action_126-action_272 (103) = happyShift action_127-action_272 (105) = happyShift action_128-action_272 (109) = happyShift action_57-action_272 (113) = happyShift action_58-action_272 (114) = happyShift action_59-action_272 (115) = happyShift action_60-action_272 (117) = happyShift action_61-action_272 (118) = happyShift action_62-action_272 (120) = happyShift action_129-action_272 (121) = happyShift action_103-action_272 (23) = happyGoto action_104-action_272 (26) = happyGoto action_105-action_272 (27) = happyGoto action_106-action_272 (29) = happyGoto action_107-action_272 (31) = happyGoto action_108-action_272 (32) = happyGoto action_109-action_272 (33) = happyGoto action_110-action_272 (34) = happyGoto action_111-action_272 (39) = happyGoto action_112-action_272 (42) = happyGoto action_332-action_272 (43) = happyGoto action_114-action_272 (44) = happyGoto action_115-action_272 (45) = happyGoto action_116-action_272 (46) = happyGoto action_117-action_272 (47) = happyGoto action_118-action_272 (48) = happyGoto action_87-action_272 _ = happyReduce_60--action_273 (67) = happyShift action_39-action_273 (68) = happyShift action_93-action_273 (69) = happyShift action_119-action_273 (72) = happyShift action_95-action_273 (79) = happyShift action_120-action_273 (81) = happyShift action_121-action_273 (89) = happyShift action_122-action_273 (90) = happyShift action_123-action_273 (91) = happyShift action_96-action_273 (92) = happyShift action_97-action_273 (93) = happyShift action_124-action_273 (94) = happyShift action_99-action_273 (97) = happyShift action_100-action_273 (99) = happyShift action_125-action_273 (101) = happyShift action_126-action_273 (103) = happyShift action_127-action_273 (105) = happyShift action_128-action_273 (109) = happyShift action_57-action_273 (113) = happyShift action_58-action_273 (114) = happyShift action_59-action_273 (115) = happyShift action_60-action_273 (117) = happyShift action_61-action_273 (118) = happyShift action_62-action_273 (120) = happyShift action_129-action_273 (121) = happyShift action_103-action_273 (23) = happyGoto action_104-action_273 (26) = happyGoto action_105-action_273 (27) = happyGoto action_106-action_273 (29) = happyGoto action_107-action_273 (31) = happyGoto action_108-action_273 (32) = happyGoto action_109-action_273 (33) = happyGoto action_110-action_273 (34) = happyGoto action_111-action_273 (39) = happyGoto action_112-action_273 (42) = happyGoto action_331-action_273 (43) = happyGoto action_114-action_273 (44) = happyGoto action_115-action_273 (45) = happyGoto action_116-action_273 (46) = happyGoto action_117-action_273 (47) = happyGoto action_118-action_273 (48) = happyGoto action_87-action_273 _ = happyReduce_60--action_274 (119) = happyReduce_113-action_274 _ = happyReduce_93--action_275 (67) = happyShift action_39-action_275 (68) = happyShift action_93-action_275 (69) = happyShift action_119-action_275 (72) = happyShift action_95-action_275 (79) = happyShift action_120-action_275 (81) = happyShift action_121-action_275 (89) = happyShift action_122-action_275 (90) = happyShift action_123-action_275 (91) = happyShift action_96-action_275 (92) = happyShift action_97-action_275 (93) = happyShift action_124-action_275 (94) = happyShift action_99-action_275 (97) = happyShift action_100-action_275 (99) = happyShift action_125-action_275 (101) = happyShift action_126-action_275 (103) = happyShift action_127-action_275 (105) = happyShift action_128-action_275 (109) = happyShift action_57-action_275 (113) = happyShift action_58-action_275 (114) = happyShift action_59-action_275 (115) = happyShift action_60-action_275 (117) = happyShift action_61-action_275 (118) = happyShift action_62-action_275 (120) = happyShift action_129-action_275 (121) = happyShift action_103-action_275 (23) = happyGoto action_104-action_275 (26) = happyGoto action_105-action_275 (27) = happyGoto action_106-action_275 (29) = happyGoto action_107-action_275 (31) = happyGoto action_108-action_275 (32) = happyGoto action_109-action_275 (33) = happyGoto action_110-action_275 (34) = happyGoto action_111-action_275 (39) = happyGoto action_112-action_275 (42) = happyGoto action_330-action_275 (43) = happyGoto action_114-action_275 (44) = happyGoto action_115-action_275 (45) = happyGoto action_116-action_275 (46) = happyGoto action_117-action_275 (47) = happyGoto action_118-action_275 (48) = happyGoto action_87-action_275 _ = happyReduce_60--action_276 (67) = happyShift action_39-action_276 (68) = happyShift action_93-action_276 (69) = happyShift action_119-action_276 (72) = happyShift action_95-action_276 (79) = happyShift action_120-action_276 (81) = happyShift action_121-action_276 (89) = happyShift action_122-action_276 (90) = happyShift action_123-action_276 (91) = happyShift action_96-action_276 (92) = happyShift action_97-action_276 (93) = happyShift action_124-action_276 (94) = happyShift action_99-action_276 (97) = happyShift action_100-action_276 (99) = happyShift action_125-action_276 (101) = happyShift action_126-action_276 (103) = happyShift action_127-action_276 (105) = happyShift action_128-action_276 (109) = happyShift action_57-action_276 (113) = happyShift action_58-action_276 (114) = happyShift action_59-action_276 (115) = happyShift action_60-action_276 (117) = happyShift action_61-action_276 (118) = happyShift action_62-action_276 (120) = happyShift action_129-action_276 (121) = happyShift action_103-action_276 (23) = happyGoto action_104-action_276 (26) = happyGoto action_105-action_276 (27) = happyGoto action_106-action_276 (29) = happyGoto action_107-action_276 (31) = happyGoto action_108-action_276 (32) = happyGoto action_109-action_276 (33) = happyGoto action_110-action_276 (34) = happyGoto action_111-action_276 (39) = happyGoto action_112-action_276 (42) = happyGoto action_329-action_276 (43) = happyGoto action_114-action_276 (44) = happyGoto action_115-action_276 (45) = happyGoto action_116-action_276 (46) = happyGoto action_117-action_276 (47) = happyGoto action_118-action_276 (48) = happyGoto action_87-action_276 _ = happyReduce_60--action_277 _ = happyReduce_132--action_278 _ = happyReduce_55--action_279 (67) = happyShift action_39-action_279 (68) = happyShift action_93-action_279 (69) = happyShift action_119-action_279 (72) = happyShift action_95-action_279 (79) = happyShift action_120-action_279 (81) = happyShift action_121-action_279 (89) = happyShift action_122-action_279 (90) = happyShift action_123-action_279 (91) = happyShift action_96-action_279 (92) = happyShift action_97-action_279 (93) = happyShift action_124-action_279 (94) = happyShift action_99-action_279 (97) = happyShift action_100-action_279 (99) = happyShift action_125-action_279 (101) = happyShift action_126-action_279 (103) = happyShift action_127-action_279 (105) = happyShift action_128-action_279 (109) = happyShift action_57-action_279 (113) = happyShift action_58-action_279 (114) = happyShift action_59-action_279 (115) = happyShift action_60-action_279 (117) = happyShift action_61-action_279 (118) = happyShift action_62-action_279 (120) = happyShift action_129-action_279 (121) = happyShift action_103-action_279 (23) = happyGoto action_104-action_279 (26) = happyGoto action_105-action_279 (27) = happyGoto action_106-action_279 (28) = happyGoto action_328-action_279 (29) = happyGoto action_107-action_279 (31) = happyGoto action_108-action_279 (32) = happyGoto action_109-action_279 (33) = happyGoto action_110-action_279 (34) = happyGoto action_111-action_279 (39) = happyGoto action_112-action_279 (42) = happyGoto action_184-action_279 (43) = happyGoto action_114-action_279 (44) = happyGoto action_115-action_279 (45) = happyGoto action_116-action_279 (46) = happyGoto action_117-action_279 (47) = happyGoto action_118-action_279 (48) = happyGoto action_87-action_279 _ = happyReduce_60--action_280 (67) = happyShift action_39-action_280 (68) = happyShift action_93-action_280 (69) = happyShift action_119-action_280 (72) = happyShift action_95-action_280 (79) = happyShift action_120-action_280 (81) = happyShift action_121-action_280 (89) = happyShift action_122-action_280 (90) = happyShift action_123-action_280 (91) = happyShift action_96-action_280 (92) = happyShift action_97-action_280 (93) = happyShift action_124-action_280 (94) = happyShift action_99-action_280 (97) = happyShift action_100-action_280 (99) = happyShift action_125-action_280 (101) = happyShift action_126-action_280 (103) = happyShift action_127-action_280 (105) = happyShift action_128-action_280 (109) = happyShift action_57-action_280 (113) = happyShift action_58-action_280 (114) = happyShift action_59-action_280 (115) = happyShift action_60-action_280 (117) = happyShift action_61-action_280 (118) = happyShift action_62-action_280 (120) = happyShift action_129-action_280 (121) = happyShift action_103-action_280 (23) = happyGoto action_104-action_280 (26) = happyGoto action_105-action_280 (27) = happyGoto action_106-action_280 (29) = happyGoto action_107-action_280 (31) = happyGoto action_108-action_280 (32) = happyGoto action_109-action_280 (33) = happyGoto action_110-action_280 (34) = happyGoto action_111-action_280 (39) = happyGoto action_112-action_280 (40) = happyGoto action_327-action_280 (41) = happyGoto action_200-action_280 (42) = happyGoto action_157-action_280 (43) = happyGoto action_114-action_280 (44) = happyGoto action_115-action_280 (45) = happyGoto action_116-action_280 (46) = happyGoto action_117-action_280 (47) = happyGoto action_118-action_280 (48) = happyGoto action_87-action_280 _ = happyReduce_60--action_281 _ = happyReduce_159--action_282 (67) = happyShift action_39-action_282 (68) = happyShift action_93-action_282 (69) = happyShift action_94-action_282 (72) = happyShift action_95-action_282 (91) = happyShift action_96-action_282 (92) = happyShift action_97-action_282 (93) = happyShift action_98-action_282 (94) = happyShift action_99-action_282 (97) = happyShift action_100-action_282 (103) = happyShift action_101-action_282 (109) = happyShift action_102-action_282 (121) = happyShift action_103-action_282 (23) = happyGoto action_85-action_282 (47) = happyGoto action_86-action_282 (48) = happyGoto action_87-action_282 (58) = happyGoto action_88-action_282 (60) = happyGoto action_326-action_282 (61) = happyGoto action_91-action_282 (62) = happyGoto action_92-action_282 _ = happyFail--action_283 (67) = happyShift action_39-action_283 (68) = happyShift action_93-action_283 (69) = happyShift action_119-action_283 (72) = happyShift action_95-action_283 (79) = happyShift action_120-action_283 (81) = happyShift action_121-action_283 (89) = happyShift action_122-action_283 (90) = happyShift action_123-action_283 (91) = happyShift action_96-action_283 (92) = happyShift action_97-action_283 (93) = happyShift action_124-action_283 (94) = happyShift action_99-action_283 (97) = happyShift action_100-action_283 (99) = happyShift action_125-action_283 (101) = happyShift action_126-action_283 (103) = happyShift action_127-action_283 (105) = happyShift action_128-action_283 (109) = happyShift action_57-action_283 (113) = happyShift action_58-action_283 (114) = happyShift action_59-action_283 (115) = happyShift action_60-action_283 (117) = happyShift action_61-action_283 (118) = happyShift action_62-action_283 (120) = happyShift action_129-action_283 (121) = happyShift action_103-action_283 (23) = happyGoto action_104-action_283 (26) = happyGoto action_105-action_283 (27) = happyGoto action_106-action_283 (29) = happyGoto action_107-action_283 (31) = happyGoto action_108-action_283 (32) = happyGoto action_109-action_283 (33) = happyGoto action_110-action_283 (34) = happyGoto action_111-action_283 (39) = happyGoto action_112-action_283 (40) = happyGoto action_325-action_283 (41) = happyGoto action_200-action_283 (42) = happyGoto action_157-action_283 (43) = happyGoto action_114-action_283 (44) = happyGoto action_115-action_283 (45) = happyGoto action_116-action_283 (46) = happyGoto action_117-action_283 (47) = happyGoto action_118-action_283 (48) = happyGoto action_87-action_283 _ = happyReduce_60--action_284 _ = happyReduce_179--action_285 (74) = happyShift action_319-action_285 (22) = happyGoto action_324-action_285 _ = happyReduce_41--action_286 (67) = happyShift action_39-action_286 (23) = happyGoto action_168-action_286 (52) = happyGoto action_323-action_286 _ = happyFail--action_287 _ = happyReduce_47--action_288 (104) = happyShift action_322-action_288 _ = happyFail--action_289 (67) = happyShift action_39-action_289 (68) = happyShift action_93-action_289 (69) = happyShift action_119-action_289 (72) = happyShift action_95-action_289 (79) = happyShift action_120-action_289 (81) = happyShift action_121-action_289 (89) = happyShift action_122-action_289 (90) = happyShift action_123-action_289 (91) = happyShift action_96-action_289 (92) = happyShift action_97-action_289 (93) = happyShift action_124-action_289 (94) = happyShift action_99-action_289 (97) = happyShift action_100-action_289 (99) = happyShift action_125-action_289 (101) = happyShift action_126-action_289 (103) = happyShift action_127-action_289 (105) = happyShift action_128-action_289 (109) = happyShift action_57-action_289 (113) = happyShift action_58-action_289 (114) = happyShift action_59-action_289 (115) = happyShift action_60-action_289 (117) = happyShift action_61-action_289 (118) = happyShift action_62-action_289 (120) = happyShift action_129-action_289 (121) = happyShift action_103-action_289 (23) = happyGoto action_104-action_289 (26) = happyGoto action_105-action_289 (27) = happyGoto action_106-action_289 (29) = happyGoto action_107-action_289 (31) = happyGoto action_108-action_289 (32) = happyGoto action_109-action_289 (33) = happyGoto action_110-action_289 (34) = happyGoto action_111-action_289 (39) = happyGoto action_112-action_289 (42) = happyGoto action_321-action_289 (43) = happyGoto action_114-action_289 (44) = happyGoto action_115-action_289 (45) = happyGoto action_116-action_289 (46) = happyGoto action_117-action_289 (47) = happyGoto action_118-action_289 (48) = happyGoto action_87-action_289 _ = happyReduce_60--action_290 (102) = happyShift action_320-action_290 _ = happyFail--action_291 (74) = happyShift action_319-action_291 (22) = happyGoto action_318-action_291 _ = happyReduce_41--action_292 (67) = happyShift action_39-action_292 (23) = happyGoto action_168-action_292 (52) = happyGoto action_317-action_292 _ = happyReduce_147--action_293 (108) = happyShift action_316-action_293 _ = happyReduce_145--action_294 (67) = happyShift action_39-action_294 (23) = happyGoto action_168-action_294 (52) = happyGoto action_169-action_294 (53) = happyGoto action_315-action_294 _ = happyReduce_149--action_295 (67) = happyShift action_39-action_295 (68) = happyShift action_93-action_295 (69) = happyShift action_119-action_295 (72) = happyShift action_95-action_295 (79) = happyShift action_120-action_295 (81) = happyShift action_121-action_295 (89) = happyShift action_122-action_295 (90) = happyShift action_123-action_295 (91) = happyShift action_96-action_295 (92) = happyShift action_97-action_295 (93) = happyShift action_124-action_295 (94) = happyShift action_99-action_295 (97) = happyShift action_100-action_295 (99) = happyShift action_125-action_295 (101) = happyShift action_126-action_295 (103) = happyShift action_127-action_295 (105) = happyShift action_128-action_295 (109) = happyShift action_57-action_295 (113) = happyShift action_58-action_295 (114) = happyShift action_59-action_295 (115) = happyShift action_60-action_295 (117) = happyShift action_61-action_295 (118) = happyShift action_62-action_295 (120) = happyShift action_129-action_295 (121) = happyShift action_103-action_295 (23) = happyGoto action_104-action_295 (26) = happyGoto action_105-action_295 (27) = happyGoto action_106-action_295 (29) = happyGoto action_107-action_295 (31) = happyGoto action_108-action_295 (32) = happyGoto action_109-action_295 (33) = happyGoto action_110-action_295 (34) = happyGoto action_111-action_295 (39) = happyGoto action_112-action_295 (42) = happyGoto action_314-action_295 (43) = happyGoto action_114-action_295 (44) = happyGoto action_115-action_295 (45) = happyGoto action_116-action_295 (46) = happyGoto action_117-action_295 (47) = happyGoto action_118-action_295 (48) = happyGoto action_87-action_295 _ = happyReduce_60--action_296 (97) = happyShift action_312-action_296 (111) = happyShift action_313-action_296 _ = happyReduce_138--action_297 (108) = happyShift action_311-action_297 _ = happyFail--action_298 _ = happyReduce_39--action_299 (67) = happyShift action_39-action_299 (68) = happyShift action_93-action_299 (69) = happyShift action_119-action_299 (72) = happyShift action_95-action_299 (79) = happyShift action_120-action_299 (81) = happyShift action_121-action_299 (89) = happyShift action_122-action_299 (90) = happyShift action_123-action_299 (91) = happyShift action_96-action_299 (92) = happyShift action_97-action_299 (93) = happyShift action_124-action_299 (94) = happyShift action_99-action_299 (97) = happyShift action_100-action_299 (99) = happyShift action_125-action_299 (101) = happyShift action_126-action_299 (103) = happyShift action_127-action_299 (105) = happyShift action_128-action_299 (109) = happyShift action_57-action_299 (113) = happyShift action_58-action_299 (114) = happyShift action_59-action_299 (115) = happyShift action_60-action_299 (117) = happyShift action_61-action_299 (118) = happyShift action_62-action_299 (120) = happyShift action_129-action_299 (121) = happyShift action_103-action_299 (23) = happyGoto action_104-action_299 (26) = happyGoto action_105-action_299 (27) = happyGoto action_106-action_299 (29) = happyGoto action_107-action_299 (31) = happyGoto action_108-action_299 (32) = happyGoto action_109-action_299 (33) = happyGoto action_110-action_299 (34) = happyGoto action_111-action_299 (39) = happyGoto action_112-action_299 (40) = happyGoto action_310-action_299 (41) = happyGoto action_200-action_299 (42) = happyGoto action_157-action_299 (43) = happyGoto action_114-action_299 (44) = happyGoto action_115-action_299 (45) = happyGoto action_116-action_299 (46) = happyGoto action_117-action_299 (47) = happyGoto action_118-action_299 (48) = happyGoto action_87-action_299 _ = happyReduce_60--action_300 (67) = happyShift action_39-action_300 (68) = happyShift action_93-action_300 (69) = happyShift action_119-action_300 (72) = happyShift action_95-action_300 (79) = happyShift action_120-action_300 (81) = happyShift action_121-action_300 (89) = happyShift action_122-action_300 (90) = happyShift action_123-action_300 (91) = happyShift action_96-action_300 (92) = happyShift action_97-action_300 (93) = happyShift action_124-action_300 (94) = happyShift action_99-action_300 (97) = happyShift action_100-action_300 (99) = happyShift action_125-action_300 (101) = happyShift action_126-action_300 (103) = happyShift action_127-action_300 (105) = happyShift action_128-action_300 (109) = happyShift action_57-action_300 (113) = happyShift action_58-action_300 (114) = happyShift action_59-action_300 (115) = happyShift action_60-action_300 (117) = happyShift action_61-action_300 (118) = happyShift action_62-action_300 (120) = happyShift action_129-action_300 (121) = happyShift action_103-action_300 (23) = happyGoto action_104-action_300 (26) = happyGoto action_105-action_300 (27) = happyGoto action_106-action_300 (29) = happyGoto action_107-action_300 (31) = happyGoto action_108-action_300 (32) = happyGoto action_109-action_300 (33) = happyGoto action_110-action_300 (34) = happyGoto action_111-action_300 (39) = happyGoto action_112-action_300 (42) = happyGoto action_309-action_300 (43) = happyGoto action_114-action_300 (44) = happyGoto action_115-action_300 (45) = happyGoto action_116-action_300 (46) = happyGoto action_117-action_300 (47) = happyGoto action_118-action_300 (48) = happyGoto action_87-action_300 _ = happyReduce_60--action_301 (67) = happyShift action_39-action_301 (68) = happyShift action_93-action_301 (69) = happyShift action_119-action_301 (72) = happyShift action_95-action_301 (79) = happyShift action_120-action_301 (81) = happyShift action_121-action_301 (89) = happyShift action_122-action_301 (90) = happyShift action_123-action_301 (91) = happyShift action_96-action_301 (92) = happyShift action_97-action_301 (93) = happyShift action_124-action_301 (94) = happyShift action_99-action_301 (97) = happyShift action_100-action_301 (99) = happyShift action_125-action_301 (101) = happyShift action_126-action_301 (103) = happyShift action_127-action_301 (105) = happyShift action_128-action_301 (109) = happyShift action_57-action_301 (113) = happyShift action_58-action_301 (114) = happyShift action_59-action_301 (115) = happyShift action_60-action_301 (117) = happyShift action_61-action_301 (118) = happyShift action_62-action_301 (120) = happyShift action_129-action_301 (121) = happyShift action_103-action_301 (23) = happyGoto action_104-action_301 (26) = happyGoto action_105-action_301 (27) = happyGoto action_106-action_301 (29) = happyGoto action_107-action_301 (31) = happyGoto action_108-action_301 (32) = happyGoto action_109-action_301 (33) = happyGoto action_110-action_301 (34) = happyGoto action_111-action_301 (39) = happyGoto action_112-action_301 (41) = happyGoto action_308-action_301 (42) = happyGoto action_157-action_301 (43) = happyGoto action_114-action_301 (44) = happyGoto action_115-action_301 (45) = happyGoto action_116-action_301 (46) = happyGoto action_117-action_301 (47) = happyGoto action_118-action_301 (48) = happyGoto action_87-action_301 _ = happyReduce_60--action_302 (67) = happyShift action_39-action_302 (68) = happyShift action_93-action_302 (69) = happyShift action_119-action_302 (72) = happyShift action_95-action_302 (79) = happyShift action_120-action_302 (81) = happyShift action_121-action_302 (89) = happyShift action_122-action_302 (90) = happyShift action_123-action_302 (91) = happyShift action_96-action_302 (92) = happyShift action_97-action_302 (93) = happyShift action_124-action_302 (94) = happyShift action_99-action_302 (97) = happyShift action_100-action_302 (99) = happyShift action_125-action_302 (101) = happyShift action_126-action_302 (103) = happyShift action_127-action_302 (105) = happyShift action_128-action_302 (109) = happyShift action_57-action_302 (113) = happyShift action_58-action_302 (114) = happyShift action_59-action_302 (115) = happyShift action_60-action_302 (117) = happyShift action_61-action_302 (118) = happyShift action_62-action_302 (120) = happyShift action_129-action_302 (121) = happyShift action_103-action_302 (23) = happyGoto action_104-action_302 (26) = happyGoto action_105-action_302 (27) = happyGoto action_106-action_302 (29) = happyGoto action_107-action_302 (31) = happyGoto action_108-action_302 (32) = happyGoto action_109-action_302 (33) = happyGoto action_110-action_302 (34) = happyGoto action_111-action_302 (39) = happyGoto action_112-action_302 (42) = happyGoto action_307-action_302 (43) = happyGoto action_114-action_302 (44) = happyGoto action_115-action_302 (45) = happyGoto action_116-action_302 (46) = happyGoto action_117-action_302 (47) = happyGoto action_118-action_302 (48) = happyGoto action_87-action_302 _ = happyReduce_60--action_303 (67) = happyShift action_39-action_303 (68) = happyShift action_93-action_303 (69) = happyShift action_119-action_303 (72) = happyShift action_95-action_303 (79) = happyShift action_120-action_303 (81) = happyShift action_121-action_303 (89) = happyShift action_122-action_303 (90) = happyShift action_123-action_303 (91) = happyShift action_96-action_303 (92) = happyShift action_97-action_303 (93) = happyShift action_124-action_303 (94) = happyShift action_99-action_303 (97) = happyShift action_100-action_303 (99) = happyShift action_125-action_303 (101) = happyShift action_126-action_303 (103) = happyShift action_127-action_303 (105) = happyShift action_128-action_303 (109) = happyShift action_57-action_303 (113) = happyShift action_58-action_303 (114) = happyShift action_59-action_303 (115) = happyShift action_60-action_303 (117) = happyShift action_61-action_303 (118) = happyShift action_62-action_303 (120) = happyShift action_129-action_303 (121) = happyShift action_103-action_303 (23) = happyGoto action_104-action_303 (26) = happyGoto action_105-action_303 (27) = happyGoto action_106-action_303 (29) = happyGoto action_107-action_303 (31) = happyGoto action_108-action_303 (32) = happyGoto action_109-action_303 (33) = happyGoto action_110-action_303 (34) = happyGoto action_111-action_303 (39) = happyGoto action_112-action_303 (42) = happyGoto action_306-action_303 (43) = happyGoto action_114-action_303 (44) = happyGoto action_115-action_303 (45) = happyGoto action_116-action_303 (46) = happyGoto action_117-action_303 (47) = happyGoto action_118-action_303 (48) = happyGoto action_87-action_303 _ = happyReduce_60--action_304 (67) = happyShift action_39-action_304 (68) = happyShift action_93-action_304 (69) = happyShift action_119-action_304 (72) = happyShift action_95-action_304 (79) = happyShift action_120-action_304 (81) = happyShift action_121-action_304 (89) = happyShift action_122-action_304 (90) = happyShift action_123-action_304 (91) = happyShift action_96-action_304 (92) = happyShift action_97-action_304 (93) = happyShift action_124-action_304 (94) = happyShift action_99-action_304 (97) = happyShift action_100-action_304 (99) = happyShift action_125-action_304 (101) = happyShift action_126-action_304 (103) = happyShift action_127-action_304 (105) = happyShift action_128-action_304 (109) = happyShift action_57-action_304 (113) = happyShift action_58-action_304 (114) = happyShift action_59-action_304 (115) = happyShift action_60-action_304 (117) = happyShift action_61-action_304 (118) = happyShift action_62-action_304 (120) = happyShift action_129-action_304 (121) = happyShift action_103-action_304 (23) = happyGoto action_104-action_304 (26) = happyGoto action_105-action_304 (27) = happyGoto action_106-action_304 (29) = happyGoto action_107-action_304 (31) = happyGoto action_108-action_304 (32) = happyGoto action_109-action_304 (33) = happyGoto action_110-action_304 (34) = happyGoto action_111-action_304 (39) = happyGoto action_112-action_304 (42) = happyGoto action_305-action_304 (43) = happyGoto action_114-action_304 (44) = happyGoto action_115-action_304 (45) = happyGoto action_116-action_304 (46) = happyGoto action_117-action_304 (47) = happyGoto action_118-action_304 (48) = happyGoto action_87-action_304 _ = happyReduce_60--action_305 (104) = happyShift action_375-action_305 _ = happyFail--action_306 (104) = happyShift action_374-action_306 _ = happyFail--action_307 (104) = happyShift action_373-action_307 _ = happyFail--action_308 _ = happyReduce_101--action_309 (102) = happyShift action_372-action_309 _ = happyFail--action_310 _ = happyReduce_35--action_311 (67) = happyShift action_39-action_311 (68) = happyShift action_93-action_311 (69) = happyShift action_119-action_311 (72) = happyShift action_95-action_311 (79) = happyShift action_120-action_311 (81) = happyShift action_121-action_311 (89) = happyShift action_122-action_311 (90) = happyShift action_123-action_311 (91) = happyShift action_96-action_311 (92) = happyShift action_97-action_311 (93) = happyShift action_124-action_311 (94) = happyShift action_99-action_311 (97) = happyShift action_100-action_311 (99) = happyShift action_125-action_311 (101) = happyShift action_126-action_311 (103) = happyShift action_127-action_311 (105) = happyShift action_128-action_311 (109) = happyShift action_57-action_311 (113) = happyShift action_58-action_311 (114) = happyShift action_59-action_311 (115) = happyShift action_60-action_311 (117) = happyShift action_61-action_311 (118) = happyShift action_62-action_311 (120) = happyShift action_129-action_311 (121) = happyShift action_103-action_311 (23) = happyGoto action_104-action_311 (26) = happyGoto action_105-action_311 (27) = happyGoto action_106-action_311 (29) = happyGoto action_107-action_311 (31) = happyGoto action_108-action_311 (32) = happyGoto action_109-action_311 (33) = happyGoto action_110-action_311 (34) = happyGoto action_111-action_311 (39) = happyGoto action_112-action_311 (42) = happyGoto action_371-action_311 (43) = happyGoto action_114-action_311 (44) = happyGoto action_115-action_311 (45) = happyGoto action_116-action_311 (46) = happyGoto action_117-action_311 (47) = happyGoto action_118-action_311 (48) = happyGoto action_87-action_311 _ = happyReduce_60--action_312 (67) = happyShift action_39-action_312 (68) = happyShift action_93-action_312 (69) = happyShift action_119-action_312 (72) = happyShift action_95-action_312 (79) = happyShift action_120-action_312 (81) = happyShift action_121-action_312 (89) = happyShift action_122-action_312 (90) = happyShift action_123-action_312 (91) = happyShift action_96-action_312 (92) = happyShift action_97-action_312 (93) = happyShift action_124-action_312 (94) = happyShift action_99-action_312 (97) = happyShift action_100-action_312 (99) = happyShift action_125-action_312 (101) = happyShift action_126-action_312 (103) = happyShift action_127-action_312 (105) = happyShift action_128-action_312 (109) = happyShift action_57-action_312 (113) = happyShift action_58-action_312 (114) = happyShift action_59-action_312 (115) = happyShift action_60-action_312 (117) = happyShift action_61-action_312 (118) = happyShift action_62-action_312 (120) = happyShift action_129-action_312 (121) = happyShift action_103-action_312 (23) = happyGoto action_104-action_312 (26) = happyGoto action_105-action_312 (27) = happyGoto action_106-action_312 (29) = happyGoto action_107-action_312 (31) = happyGoto action_108-action_312 (32) = happyGoto action_109-action_312 (33) = happyGoto action_110-action_312 (34) = happyGoto action_111-action_312 (39) = happyGoto action_112-action_312 (42) = happyGoto action_370-action_312 (43) = happyGoto action_114-action_312 (44) = happyGoto action_115-action_312 (45) = happyGoto action_116-action_312 (46) = happyGoto action_117-action_312 (47) = happyGoto action_118-action_312 (48) = happyGoto action_87-action_312 _ = happyReduce_60--action_313 (67) = happyShift action_39-action_313 (68) = happyShift action_93-action_313 (69) = happyShift action_119-action_313 (72) = happyShift action_95-action_313 (79) = happyShift action_120-action_313 (81) = happyShift action_121-action_313 (89) = happyShift action_122-action_313 (90) = happyShift action_123-action_313 (91) = happyShift action_96-action_313 (92) = happyShift action_97-action_313 (93) = happyShift action_124-action_313 (94) = happyShift action_99-action_313 (97) = happyShift action_100-action_313 (99) = happyShift action_125-action_313 (101) = happyShift action_126-action_313 (103) = happyShift action_127-action_313 (105) = happyShift action_128-action_313 (109) = happyShift action_57-action_313 (113) = happyShift action_58-action_313 (114) = happyShift action_59-action_313 (115) = happyShift action_60-action_313 (117) = happyShift action_61-action_313 (118) = happyShift action_62-action_313 (120) = happyShift action_129-action_313 (121) = happyShift action_103-action_313 (23) = happyGoto action_104-action_313 (26) = happyGoto action_105-action_313 (27) = happyGoto action_106-action_313 (29) = happyGoto action_107-action_313 (31) = happyGoto action_108-action_313 (32) = happyGoto action_109-action_313 (33) = happyGoto action_110-action_313 (34) = happyGoto action_111-action_313 (39) = happyGoto action_112-action_313 (42) = happyGoto action_369-action_313 (43) = happyGoto action_114-action_313 (44) = happyGoto action_115-action_313 (45) = happyGoto action_116-action_313 (46) = happyGoto action_117-action_313 (47) = happyGoto action_118-action_313 (48) = happyGoto action_87-action_313 _ = happyReduce_60--action_314 (104) = happyShift action_368-action_314 _ = happyFail--action_315 (100) = happyShift action_367-action_315 (107) = happyShift action_292-action_315 _ = happyFail--action_316 (67) = happyShift action_39-action_316 (68) = happyShift action_93-action_316 (69) = happyShift action_119-action_316 (72) = happyShift action_95-action_316 (79) = happyShift action_120-action_316 (81) = happyShift action_121-action_316 (89) = happyShift action_122-action_316 (90) = happyShift action_123-action_316 (91) = happyShift action_96-action_316 (92) = happyShift action_97-action_316 (93) = happyShift action_124-action_316 (94) = happyShift action_99-action_316 (97) = happyShift action_100-action_316 (99) = happyShift action_125-action_316 (101) = happyShift action_126-action_316 (103) = happyShift action_127-action_316 (105) = happyShift action_128-action_316 (109) = happyShift action_57-action_316 (113) = happyShift action_58-action_316 (114) = happyShift action_59-action_316 (115) = happyShift action_60-action_316 (117) = happyShift action_61-action_316 (118) = happyShift action_62-action_316 (120) = happyShift action_129-action_316 (121) = happyShift action_103-action_316 (23) = happyGoto action_104-action_316 (26) = happyGoto action_105-action_316 (27) = happyGoto action_106-action_316 (29) = happyGoto action_107-action_316 (31) = happyGoto action_108-action_316 (32) = happyGoto action_109-action_316 (33) = happyGoto action_110-action_316 (34) = happyGoto action_111-action_316 (39) = happyGoto action_112-action_316 (42) = happyGoto action_366-action_316 (43) = happyGoto action_114-action_316 (44) = happyGoto action_115-action_316 (45) = happyGoto action_116-action_316 (46) = happyGoto action_117-action_316 (47) = happyGoto action_118-action_316 (48) = happyGoto action_87-action_316 _ = happyReduce_60--action_317 _ = happyReduce_146--action_318 _ = happyReduce_28--action_319 (67) = happyShift action_39-action_319 (23) = happyGoto action_138-action_319 (25) = happyGoto action_365-action_319 _ = happyFail--action_320 _ = happyReduce_184--action_321 (104) = happyShift action_364-action_321 _ = happyFail--action_322 _ = happyReduce_183--action_323 (100) = happyShift action_363-action_323 _ = happyFail--action_324 _ = happyReduce_30--action_325 _ = happyReduce_155--action_326 _ = happyReduce_160--action_327 _ = happyReduce_103--action_328 _ = happyReduce_56--action_329 (102) = happyShift action_362-action_329 _ = happyFail--action_330 (102) = happyShift action_361-action_330 _ = happyFail--action_331 (100) = happyShift action_360-action_331 _ = happyFail--action_332 (100) = happyShift action_359-action_332 _ = happyFail--action_333 (100) = happyShift action_358-action_333 _ = happyFail--action_334 (108) = happyShift action_357-action_334 _ = happyFail--action_335 _ = happyReduce_104--action_336 (67) = happyShift action_39-action_336 (68) = happyShift action_93-action_336 (69) = happyShift action_119-action_336 (72) = happyShift action_95-action_336 (79) = happyShift action_120-action_336 (81) = happyShift action_121-action_336 (89) = happyShift action_122-action_336 (90) = happyShift action_123-action_336 (91) = happyShift action_96-action_336 (92) = happyShift action_97-action_336 (93) = happyShift action_124-action_336 (94) = happyShift action_99-action_336 (97) = happyShift action_100-action_336 (99) = happyShift action_125-action_336 (101) = happyShift action_126-action_336 (103) = happyShift action_127-action_336 (105) = happyShift action_128-action_336 (109) = happyShift action_57-action_336 (113) = happyShift action_58-action_336 (114) = happyShift action_59-action_336 (115) = happyShift action_60-action_336 (117) = happyShift action_61-action_336 (118) = happyShift action_62-action_336 (120) = happyShift action_129-action_336 (121) = happyShift action_103-action_336 (23) = happyGoto action_104-action_336 (26) = happyGoto action_105-action_336 (27) = happyGoto action_106-action_336 (29) = happyGoto action_107-action_336 (31) = happyGoto action_108-action_336 (32) = happyGoto action_109-action_336 (33) = happyGoto action_110-action_336 (34) = happyGoto action_111-action_336 (39) = happyGoto action_112-action_336 (42) = happyGoto action_356-action_336 (43) = happyGoto action_114-action_336 (44) = happyGoto action_115-action_336 (45) = happyGoto action_116-action_336 (46) = happyGoto action_117-action_336 (47) = happyGoto action_118-action_336 (48) = happyGoto action_87-action_336 _ = happyReduce_60--action_337 (67) = happyShift action_39-action_337 (93) = happyShift action_235-action_337 (103) = happyShift action_236-action_337 (109) = happyShift action_102-action_337 (23) = happyGoto action_233-action_337 (54) = happyGoto action_354-action_337 (58) = happyGoto action_355-action_337 (62) = happyGoto action_231-action_337 _ = happyReduce_154--action_338 _ = happyReduce_113--action_339 (67) = happyShift action_39-action_339 (68) = happyShift action_93-action_339 (69) = happyShift action_119-action_339 (72) = happyShift action_95-action_339 (79) = happyShift action_120-action_339 (81) = happyShift action_121-action_339 (89) = happyShift action_122-action_339 (90) = happyShift action_123-action_339 (91) = happyShift action_96-action_339 (92) = happyShift action_97-action_339 (93) = happyShift action_124-action_339 (94) = happyShift action_99-action_339 (97) = happyShift action_100-action_339 (99) = happyShift action_125-action_339 (101) = happyShift action_126-action_339 (103) = happyShift action_127-action_339 (105) = happyShift action_128-action_339 (109) = happyShift action_57-action_339 (113) = happyShift action_58-action_339 (114) = happyShift action_59-action_339 (115) = happyShift action_60-action_339 (117) = happyShift action_61-action_339 (118) = happyShift action_62-action_339 (120) = happyShift action_129-action_339 (121) = happyShift action_103-action_339 (23) = happyGoto action_104-action_339 (26) = happyGoto action_105-action_339 (27) = happyGoto action_106-action_339 (29) = happyGoto action_107-action_339 (31) = happyGoto action_108-action_339 (32) = happyGoto action_109-action_339 (33) = happyGoto action_110-action_339 (34) = happyGoto action_111-action_339 (39) = happyGoto action_112-action_339 (42) = happyGoto action_353-action_339 (43) = happyGoto action_114-action_339 (44) = happyGoto action_115-action_339 (45) = happyGoto action_116-action_339 (46) = happyGoto action_117-action_339 (47) = happyGoto action_118-action_339 (48) = happyGoto action_87-action_339 _ = happyReduce_60--action_340 (67) = happyShift action_39-action_340 (68) = happyShift action_93-action_340 (69) = happyShift action_119-action_340 (72) = happyShift action_95-action_340 (79) = happyShift action_120-action_340 (81) = happyShift action_121-action_340 (89) = happyShift action_122-action_340 (90) = happyShift action_123-action_340 (91) = happyShift action_96-action_340 (92) = happyShift action_97-action_340 (93) = happyShift action_124-action_340 (94) = happyShift action_99-action_340 (97) = happyShift action_100-action_340 (99) = happyShift action_125-action_340 (101) = happyShift action_126-action_340 (103) = happyShift action_127-action_340 (105) = happyShift action_128-action_340 (109) = happyShift action_57-action_340 (113) = happyShift action_58-action_340 (114) = happyShift action_59-action_340 (115) = happyShift action_60-action_340 (117) = happyShift action_61-action_340 (118) = happyShift action_62-action_340 (120) = happyShift action_129-action_340 (121) = happyShift action_103-action_340 (23) = happyGoto action_104-action_340 (26) = happyGoto action_105-action_340 (27) = happyGoto action_106-action_340 (29) = happyGoto action_107-action_340 (31) = happyGoto action_108-action_340 (32) = happyGoto action_109-action_340 (33) = happyGoto action_110-action_340 (34) = happyGoto action_111-action_340 (39) = happyGoto action_112-action_340 (42) = happyGoto action_352-action_340 (43) = happyGoto action_114-action_340 (44) = happyGoto action_115-action_340 (45) = happyGoto action_116-action_340 (46) = happyGoto action_117-action_340 (47) = happyGoto action_118-action_340 (48) = happyGoto action_87-action_340 _ = happyReduce_60--action_341 (67) = happyShift action_39-action_341 (68) = happyShift action_93-action_341 (69) = happyShift action_119-action_341 (72) = happyShift action_95-action_341 (79) = happyShift action_120-action_341 (81) = happyShift action_121-action_341 (89) = happyShift action_122-action_341 (90) = happyShift action_123-action_341 (91) = happyShift action_96-action_341 (92) = happyShift action_97-action_341 (93) = happyShift action_124-action_341 (94) = happyShift action_99-action_341 (97) = happyShift action_100-action_341 (99) = happyShift action_125-action_341 (101) = happyShift action_126-action_341 (103) = happyShift action_127-action_341 (105) = happyShift action_128-action_341 (109) = happyShift action_57-action_341 (113) = happyShift action_58-action_341 (114) = happyShift action_59-action_341 (115) = happyShift action_60-action_341 (117) = happyShift action_61-action_341 (118) = happyShift action_62-action_341 (120) = happyShift action_129-action_341 (121) = happyShift action_103-action_341 (23) = happyGoto action_104-action_341 (26) = happyGoto action_105-action_341 (27) = happyGoto action_106-action_341 (29) = happyGoto action_107-action_341 (31) = happyGoto action_108-action_341 (32) = happyGoto action_109-action_341 (33) = happyGoto action_110-action_341 (34) = happyGoto action_111-action_341 (39) = happyGoto action_112-action_341 (42) = happyGoto action_351-action_341 (43) = happyGoto action_114-action_341 (44) = happyGoto action_115-action_341 (45) = happyGoto action_116-action_341 (46) = happyGoto action_117-action_341 (47) = happyGoto action_118-action_341 (48) = happyGoto action_87-action_341 _ = happyReduce_60--action_342 (67) = happyShift action_39-action_342 (68) = happyShift action_93-action_342 (69) = happyShift action_119-action_342 (72) = happyShift action_95-action_342 (79) = happyShift action_120-action_342 (81) = happyShift action_121-action_342 (89) = happyShift action_122-action_342 (90) = happyShift action_123-action_342 (91) = happyShift action_96-action_342 (92) = happyShift action_97-action_342 (93) = happyShift action_124-action_342 (94) = happyShift action_99-action_342 (97) = happyShift action_100-action_342 (99) = happyShift action_125-action_342 (101) = happyShift action_126-action_342 (103) = happyShift action_127-action_342 (105) = happyShift action_128-action_342 (109) = happyShift action_57-action_342 (113) = happyShift action_58-action_342 (114) = happyShift action_59-action_342 (115) = happyShift action_60-action_342 (117) = happyShift action_61-action_342 (118) = happyShift action_62-action_342 (120) = happyShift action_129-action_342 (121) = happyShift action_103-action_342 (23) = happyGoto action_104-action_342 (26) = happyGoto action_105-action_342 (27) = happyGoto action_106-action_342 (29) = happyGoto action_107-action_342 (31) = happyGoto action_108-action_342 (32) = happyGoto action_109-action_342 (33) = happyGoto action_110-action_342 (34) = happyGoto action_111-action_342 (39) = happyGoto action_112-action_342 (42) = happyGoto action_306-action_342 (43) = happyGoto action_114-action_342 (44) = happyGoto action_115-action_342 (45) = happyGoto action_116-action_342 (46) = happyGoto action_117-action_342 (47) = happyGoto action_350-action_342 (48) = happyGoto action_87-action_342 _ = happyReduce_60--action_343 (98) = happyShift action_349-action_343 _ = happyFail--action_344 (67) = happyShift action_39-action_344 (23) = happyGoto action_37-action_344 (24) = happyGoto action_246-action_344 (49) = happyGoto action_348-action_344 (50) = happyGoto action_248-action_344 _ = happyReduce_141--action_345 _ = happyReduce_136--action_346 (67) = happyShift action_39-action_346 (68) = happyShift action_93-action_346 (69) = happyShift action_119-action_346 (72) = happyShift action_95-action_346 (79) = happyShift action_120-action_346 (81) = happyShift action_121-action_346 (89) = happyShift action_122-action_346 (90) = happyShift action_123-action_346 (91) = happyShift action_96-action_346 (92) = happyShift action_97-action_346 (93) = happyShift action_124-action_346 (94) = happyShift action_99-action_346 (97) = happyShift action_100-action_346 (99) = happyShift action_125-action_346 (101) = happyShift action_126-action_346 (103) = happyShift action_127-action_346 (105) = happyShift action_128-action_346 (109) = happyShift action_57-action_346 (113) = happyShift action_58-action_346 (114) = happyShift action_59-action_346 (115) = happyShift action_60-action_346 (117) = happyShift action_61-action_346 (118) = happyShift action_62-action_346 (120) = happyShift action_129-action_346 (121) = happyShift action_103-action_346 (23) = happyGoto action_104-action_346 (26) = happyGoto action_105-action_346 (27) = happyGoto action_106-action_346 (29) = happyGoto action_107-action_346 (31) = happyGoto action_108-action_346 (32) = happyGoto action_109-action_346 (33) = happyGoto action_110-action_346 (34) = happyGoto action_111-action_346 (39) = happyGoto action_112-action_346 (40) = happyGoto action_347-action_346 (41) = happyGoto action_200-action_346 (42) = happyGoto action_157-action_346 (43) = happyGoto action_114-action_346 (44) = happyGoto action_115-action_346 (45) = happyGoto action_116-action_346 (46) = happyGoto action_117-action_346 (47) = happyGoto action_118-action_346 (48) = happyGoto action_87-action_346 _ = happyReduce_60--action_347 _ = happyReduce_142--action_348 _ = happyReduce_139--action_349 _ = happyReduce_131--action_350 (104) = happyReduce_171-action_350 (106) = happyReduce_171-action_350 _ = happyReduce_123--action_351 (104) = happyShift action_388-action_351 _ = happyFail--action_352 (104) = happyShift action_387-action_352 _ = happyFail--action_353 (104) = happyShift action_386-action_353 _ = happyFail--action_354 (100) = happyShift action_385-action_354 _ = happyFail--action_355 (107) = happyShift action_383-action_355 (110) = happyShift action_384-action_355 _ = happyReduce_153--action_356 (102) = happyShift action_382-action_356 _ = happyFail--action_357 (67) = happyShift action_39-action_357 (68) = happyShift action_93-action_357 (69) = happyShift action_119-action_357 (72) = happyShift action_95-action_357 (79) = happyShift action_120-action_357 (81) = happyShift action_121-action_357 (89) = happyShift action_122-action_357 (90) = happyShift action_123-action_357 (91) = happyShift action_96-action_357 (92) = happyShift action_97-action_357 (93) = happyShift action_124-action_357 (94) = happyShift action_99-action_357 (97) = happyShift action_100-action_357 (99) = happyShift action_125-action_357 (101) = happyShift action_126-action_357 (103) = happyShift action_127-action_357 (105) = happyShift action_128-action_357 (109) = happyShift action_57-action_357 (113) = happyShift action_58-action_357 (114) = happyShift action_59-action_357 (115) = happyShift action_60-action_357 (117) = happyShift action_61-action_357 (118) = happyShift action_62-action_357 (120) = happyShift action_129-action_357 (121) = happyShift action_103-action_357 (23) = happyGoto action_104-action_357 (26) = happyGoto action_105-action_357 (27) = happyGoto action_106-action_357 (29) = happyGoto action_107-action_357 (31) = happyGoto action_108-action_357 (32) = happyGoto action_109-action_357 (33) = happyGoto action_110-action_357 (34) = happyGoto action_111-action_357 (39) = happyGoto action_112-action_357 (42) = happyGoto action_381-action_357 (43) = happyGoto action_114-action_357 (44) = happyGoto action_115-action_357 (45) = happyGoto action_116-action_357 (46) = happyGoto action_117-action_357 (47) = happyGoto action_118-action_357 (48) = happyGoto action_87-action_357 _ = happyReduce_60--action_358 _ = happyReduce_74--action_359 _ = happyReduce_75--action_360 _ = happyReduce_76--action_361 _ = happyReduce_72--action_362 _ = happyReduce_73--action_363 (74) = happyShift action_319-action_363 (22) = happyGoto action_380-action_363 _ = happyReduce_41--action_364 _ = happyReduce_186--action_365 _ = happyReduce_42--action_366 _ = happyReduce_144--action_367 (74) = happyShift action_319-action_367 (22) = happyGoto action_379-action_367 _ = happyReduce_41--action_368 _ = happyReduce_185--action_369 (104) = happyShift action_378-action_369 _ = happyFail--action_370 (104) = happyShift action_377-action_370 _ = happyFail--action_371 (104) = happyShift action_376-action_371 _ = happyFail--action_372 _ = happyReduce_71--action_373 _ = happyReduce_63--action_374 _ = happyReduce_64--action_375 _ = happyReduce_65--action_376 _ = happyReduce_66--action_377 _ = happyReduce_67--action_378 _ = happyReduce_68--action_379 _ = happyReduce_27--action_380 _ = happyReduce_29--action_381 (104) = happyShift action_392-action_381 _ = happyFail--action_382 (112) = happyShift action_391-action_382 _ = happyFail--action_383 (67) = happyShift action_39-action_383 (93) = happyShift action_235-action_383 (103) = happyShift action_236-action_383 (109) = happyShift action_102-action_383 (23) = happyGoto action_233-action_383 (54) = happyGoto action_390-action_383 (58) = happyGoto action_355-action_383 (62) = happyGoto action_231-action_383 _ = happyReduce_154--action_384 (67) = happyShift action_39-action_384 (68) = happyShift action_93-action_384 (69) = happyShift action_119-action_384 (72) = happyShift action_95-action_384 (79) = happyShift action_120-action_384 (81) = happyShift action_121-action_384 (89) = happyShift action_122-action_384 (90) = happyShift action_123-action_384 (91) = happyShift action_96-action_384 (92) = happyShift action_97-action_384 (93) = happyShift action_124-action_384 (94) = happyShift action_99-action_384 (97) = happyShift action_100-action_384 (99) = happyShift action_125-action_384 (101) = happyShift action_126-action_384 (103) = happyShift action_127-action_384 (105) = happyShift action_128-action_384 (109) = happyShift action_57-action_384 (113) = happyShift action_58-action_384 (114) = happyShift action_59-action_384 (115) = happyShift action_60-action_384 (117) = happyShift action_61-action_384 (118) = happyShift action_62-action_384 (120) = happyShift action_129-action_384 (121) = happyShift action_103-action_384 (23) = happyGoto action_104-action_384 (26) = happyGoto action_105-action_384 (27) = happyGoto action_106-action_384 (29) = happyGoto action_107-action_384 (31) = happyGoto action_108-action_384 (32) = happyGoto action_109-action_384 (33) = happyGoto action_110-action_384 (34) = happyGoto action_111-action_384 (39) = happyGoto action_112-action_384 (40) = happyGoto action_389-action_384 (41) = happyGoto action_200-action_384 (42) = happyGoto action_157-action_384 (43) = happyGoto action_114-action_384 (44) = happyGoto action_115-action_384 (45) = happyGoto action_116-action_384 (46) = happyGoto action_117-action_384 (47) = happyGoto action_118-action_384 (48) = happyGoto action_87-action_384 _ = happyReduce_60--action_385 _ = happyReduce_105--action_386 (119) = happyReduce_66-action_386 _ = happyReduce_66--action_387 (119) = happyReduce_67-action_387 _ = happyReduce_67--action_388 (119) = happyReduce_68-action_388 _ = happyReduce_68--action_389 (107) = happyShift action_395-action_389 _ = happyReduce_151--action_390 _ = happyReduce_152--action_391 (67) = happyShift action_39-action_391 (68) = happyShift action_93-action_391 (69) = happyShift action_119-action_391 (72) = happyShift action_95-action_391 (79) = happyShift action_120-action_391 (81) = happyShift action_121-action_391 (89) = happyShift action_122-action_391 (90) = happyShift action_123-action_391 (91) = happyShift action_96-action_391 (92) = happyShift action_97-action_391 (93) = happyShift action_124-action_391 (94) = happyShift action_99-action_391 (97) = happyShift action_100-action_391 (99) = happyShift action_125-action_391 (101) = happyShift action_126-action_391 (103) = happyShift action_127-action_391 (105) = happyShift action_128-action_391 (109) = happyShift action_57-action_391 (113) = happyShift action_58-action_391 (114) = happyShift action_59-action_391 (115) = happyShift action_60-action_391 (117) = happyShift action_61-action_391 (118) = happyShift action_62-action_391 (120) = happyShift action_129-action_391 (121) = happyShift action_103-action_391 (23) = happyGoto action_104-action_391 (26) = happyGoto action_105-action_391 (27) = happyGoto action_106-action_391 (29) = happyGoto action_107-action_391 (31) = happyGoto action_108-action_391 (32) = happyGoto action_109-action_391 (33) = happyGoto action_110-action_391 (34) = happyGoto action_111-action_391 (39) = happyGoto action_112-action_391 (42) = happyGoto action_394-action_391 (43) = happyGoto action_114-action_391 (44) = happyGoto action_115-action_391 (45) = happyGoto action_116-action_391 (46) = happyGoto action_117-action_391 (47) = happyGoto action_118-action_391 (48) = happyGoto action_87-action_391 _ = happyReduce_60--action_392 (112) = happyShift action_393-action_392 _ = happyFail--action_393 (67) = happyShift action_39-action_393 (68) = happyShift action_93-action_393 (69) = happyShift action_119-action_393 (72) = happyShift action_95-action_393 (79) = happyShift action_120-action_393 (81) = happyShift action_121-action_393 (89) = happyShift action_122-action_393 (90) = happyShift action_123-action_393 (91) = happyShift action_96-action_393 (92) = happyShift action_97-action_393 (93) = happyShift action_124-action_393 (94) = happyShift action_99-action_393 (97) = happyShift action_100-action_393 (99) = happyShift action_125-action_393 (101) = happyShift action_126-action_393 (103) = happyShift action_127-action_393 (105) = happyShift action_128-action_393 (109) = happyShift action_57-action_393 (113) = happyShift action_58-action_393 (114) = happyShift action_59-action_393 (115) = happyShift action_60-action_393 (117) = happyShift action_61-action_393 (118) = happyShift action_62-action_393 (120) = happyShift action_129-action_393 (121) = happyShift action_103-action_393 (23) = happyGoto action_104-action_393 (26) = happyGoto action_105-action_393 (27) = happyGoto action_106-action_393 (29) = happyGoto action_107-action_393 (31) = happyGoto action_108-action_393 (32) = happyGoto action_109-action_393 (33) = happyGoto action_110-action_393 (34) = happyGoto action_111-action_393 (39) = happyGoto action_112-action_393 (42) = happyGoto action_397-action_393 (43) = happyGoto action_114-action_393 (44) = happyGoto action_115-action_393 (45) = happyGoto action_116-action_393 (46) = happyGoto action_117-action_393 (47) = happyGoto action_118-action_393 (48) = happyGoto action_87-action_393 _ = happyReduce_60--action_394 _ = happyReduce_85--action_395 (67) = happyShift action_39-action_395 (93) = happyShift action_235-action_395 (103) = happyShift action_236-action_395 (109) = happyShift action_102-action_395 (23) = happyGoto action_233-action_395 (54) = happyGoto action_396-action_395 (58) = happyGoto action_355-action_395 (62) = happyGoto action_231-action_395 _ = happyReduce_154--action_396 _ = happyReduce_150--action_397 _ = happyReduce_86--happyReduce_1 = happySpecReduce_1 4 happyReduction_1-happyReduction_1 (HappyAbsSyn4 happy_var_1)- = HappyAbsSyn4- (reverse happy_var_1- )-happyReduction_1 _ = notHappyAtAll --happyReduce_2 = happySpecReduce_0 5 happyReduction_2-happyReduction_2 = HappyAbsSyn4- ([]- )--happyReduce_3 = happySpecReduce_2 5 happyReduction_3-happyReduction_3 (HappyAbsSyn6 happy_var_2)- (HappyAbsSyn4 happy_var_1)- = HappyAbsSyn4- (happy_var_2 : happy_var_1- )-happyReduction_3 _ _ = notHappyAtAll --happyReduce_4 = happySpecReduce_1 6 happyReduction_4-happyReduction_4 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_4 _ = notHappyAtAll --happyReduce_5 = happySpecReduce_1 6 happyReduction_5-happyReduction_5 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_5 _ = notHappyAtAll --happyReduce_6 = happySpecReduce_1 6 happyReduction_6-happyReduction_6 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_6 _ = notHappyAtAll --happyReduce_7 = happySpecReduce_1 6 happyReduction_7-happyReduction_7 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_7 _ = notHappyAtAll --happyReduce_8 = happySpecReduce_1 6 happyReduction_8-happyReduction_8 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_8 _ = notHappyAtAll --happyReduce_9 = happySpecReduce_1 6 happyReduction_9-happyReduction_9 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_9 _ = notHappyAtAll --happyReduce_10 = happySpecReduce_1 6 happyReduction_10-happyReduction_10 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_10 _ = notHappyAtAll --happyReduce_11 = happySpecReduce_1 6 happyReduction_11-happyReduction_11 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_11 _ = notHappyAtAll --happyReduce_12 = happySpecReduce_1 6 happyReduction_12-happyReduction_12 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_12 _ = notHappyAtAll --happyReduce_13 = happySpecReduce_1 6 happyReduction_13-happyReduction_13 (HappyAbsSyn6 happy_var_1)- = HappyAbsSyn6- (happy_var_1- )-happyReduction_13 _ = notHappyAtAll --happyReduce_14 = happySpecReduce_2 6 happyReduction_14-happyReduction_14 (HappyAbsSyn6 happy_var_2)- _- = HappyAbsSyn6- (C.OverrideDecl Impredicative [happy_var_2]- )-happyReduction_14 _ _ = notHappyAtAll --happyReduce_15 = happyReduce 4 6 happyReduction_15-happyReduction_15 (_ `HappyStk`- (HappyAbsSyn4 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.OverrideDecl Impredicative happy_var_3- ) `HappyStk` happyRest--happyReduce_16 = happySpecReduce_2 6 happyReduction_16-happyReduction_16 (HappyAbsSyn6 happy_var_2)- _- = HappyAbsSyn6- (C.OverrideDecl Fail [happy_var_2]- )-happyReduction_16 _ _ = notHappyAtAll --happyReduce_17 = happyReduce 4 6 happyReduction_17-happyReduction_17 (_ `HappyStk`- (HappyAbsSyn4 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.OverrideDecl Fail happy_var_3- ) `HappyStk` happyRest--happyReduce_18 = happySpecReduce_2 6 happyReduction_18-happyReduction_18 (HappyAbsSyn6 happy_var_2)- _- = HappyAbsSyn6- (C.OverrideDecl Check [happy_var_2]- )-happyReduction_18 _ _ = notHappyAtAll --happyReduce_19 = happyReduce 4 6 happyReduction_19-happyReduction_19 (_ `HappyStk`- (HappyAbsSyn4 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.OverrideDecl Check happy_var_3- ) `HappyStk` happyRest--happyReduce_20 = happySpecReduce_2 6 happyReduction_20-happyReduction_20 (HappyAbsSyn6 happy_var_2)- _- = HappyAbsSyn6- (C.OverrideDecl TrustMe [happy_var_2]- )-happyReduction_20 _ _ = notHappyAtAll --happyReduce_21 = happyReduce 4 6 happyReduction_21-happyReduction_21 (_ `HappyStk`- (HappyAbsSyn4 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.OverrideDecl TrustMe happy_var_3- ) `HappyStk` happyRest--happyReduce_22 = happySpecReduce_2 7 happyReduction_22-happyReduction_22 (HappyAbsSyn12 happy_var_2)- _- = HappyAbsSyn6- (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.Ind tel t cs fs- )-happyReduction_22 _ _ = notHappyAtAll --happyReduce_23 = happySpecReduce_3 8 happyReduction_23-happyReduction_23 (HappyAbsSyn12 happy_var_3)- _- _- = HappyAbsSyn6- (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.Ind tel t cs fs- )-happyReduction_23 _ _ _ = notHappyAtAll --happyReduce_24 = happySpecReduce_2 9 happyReduction_24-happyReduction_24 (HappyAbsSyn12 happy_var_2)- _- = HappyAbsSyn6- (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.CoInd tel t cs fs- )-happyReduction_24 _ _ = notHappyAtAll --happyReduce_25 = happySpecReduce_3 10 happyReduction_25-happyReduction_25 (HappyAbsSyn12 happy_var_3)- _- _- = HappyAbsSyn6- (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.CoInd tel t cs fs- )-happyReduction_25 _ _ _ = notHappyAtAll --happyReduce_26 = happySpecReduce_2 11 happyReduction_26-happyReduction_26 (HappyAbsSyn13 happy_var_2)- _- = HappyAbsSyn6- (let (n,tel,t,c,fs) = happy_var_2 in C.RecordDecl n tel t c fs- )-happyReduction_26 _ _ = notHappyAtAll --happyReduce_27 = happyReduce 8 12 happyReduction_27-happyReduction_27 ((HappyAbsSyn22 happy_var_8) `HappyStk`- _ `HappyStk`- (HappyAbsSyn53 happy_var_6) `HappyStk`- _ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn31 happy_var_2) `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn12- ((happy_var_1, happy_var_2, happy_var_4, reverse happy_var_6, happy_var_8)- ) `HappyStk` happyRest--happyReduce_28 = happyReduce 6 12 happyReduction_28-happyReduction_28 ((HappyAbsSyn22 happy_var_6) `HappyStk`- _ `HappyStk`- (HappyAbsSyn53 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn31 happy_var_2) `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn12- ((happy_var_1, happy_var_2, C.set0, reverse happy_var_4, happy_var_6)- ) `HappyStk` happyRest--happyReduce_29 = happyReduce 8 13 happyReduction_29-happyReduction_29 ((HappyAbsSyn22 happy_var_8) `HappyStk`- _ `HappyStk`- (HappyAbsSyn52 happy_var_6) `HappyStk`- _ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn31 happy_var_2) `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn13- ((happy_var_1, happy_var_2, happy_var_4, happy_var_6, happy_var_8)- ) `HappyStk` happyRest--happyReduce_30 = happyReduce 6 13 happyReduction_30-happyReduction_30 ((HappyAbsSyn22 happy_var_6) `HappyStk`- _ `HappyStk`- (HappyAbsSyn52 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn31 happy_var_2) `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn13- ((happy_var_1, happy_var_2, C.set0, happy_var_4, happy_var_6)- ) `HappyStk` happyRest--happyReduce_31 = happyReduce 5 14 happyReduction_31-happyReduction_31 (_ `HappyStk`- (HappyAbsSyn54 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn51 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.FunDecl A.Ind happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_32 = happyReduce 5 15 happyReduction_32-happyReduction_32 (_ `HappyStk`- (HappyAbsSyn54 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn51 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.FunDecl A.CoInd happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_33 = happyReduce 4 16 happyReduction_33-happyReduction_33 (_ `HappyStk`- (HappyAbsSyn4 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.MutualDecl (reverse happy_var_3)- ) `HappyStk` happyRest--happyReduce_34 = happySpecReduce_3 17 happyReduction_34-happyReduction_34 (HappyAbsSyn18 happy_var_3)- _- (HappyAbsSyn19 happy_var_1)- = HappyAbsSyn6- (C.LetDecl happy_var_1 happy_var_3- )-happyReduction_34 _ _ _ = notHappyAtAll --happyReduce_35 = happyReduce 5 18 happyReduction_35-happyReduction_35 ((HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn20 happy_var_3) `HappyStk`- (HappyAbsSyn31 happy_var_2) `HappyStk`- (HappyAbsSyn36 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn18- (let (dec,n) = happy_var_1 in C.LetDef dec n happy_var_2 happy_var_3 happy_var_5- ) `HappyStk` happyRest--happyReduce_36 = happySpecReduce_0 19 happyReduction_36-happyReduction_36 = HappyAbsSyn19- (False- )--happyReduce_37 = happySpecReduce_1 19 happyReduction_37-happyReduction_37 _- = HappyAbsSyn19- (True- )--happyReduce_38 = happySpecReduce_0 20 happyReduction_38-happyReduction_38 = HappyAbsSyn20- (Nothing- )--happyReduce_39 = happySpecReduce_2 20 happyReduction_39-happyReduction_39 (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn20- (Just happy_var_2- )-happyReduction_39 _ _ = notHappyAtAll --happyReduce_40 = happyReduce 4 21 happyReduction_40-happyReduction_40 ((HappyAbsSyn58 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn6- (C.PatternDecl (head happy_var_2) (tail happy_var_2) happy_var_4- ) `HappyStk` happyRest--happyReduce_41 = happySpecReduce_0 22 happyReduction_41-happyReduction_41 = HappyAbsSyn22- ([]- )--happyReduce_42 = happySpecReduce_2 22 happyReduction_42-happyReduction_42 (HappyAbsSyn22 happy_var_2)- _- = HappyAbsSyn22- (happy_var_2- )-happyReduction_42 _ _ = notHappyAtAll --happyReduce_43 = happySpecReduce_1 23 happyReduction_43-happyReduction_43 (HappyTerminal (T.Id happy_var_1 _))- = HappyAbsSyn23- (C.Name happy_var_1- )-happyReduction_43 _ = notHappyAtAll --happyReduce_44 = happySpecReduce_1 24 happyReduction_44-happyReduction_44 (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn22- ([happy_var_1]- )-happyReduction_44 _ = notHappyAtAll --happyReduce_45 = happySpecReduce_2 24 happyReduction_45-happyReduction_45 (HappyAbsSyn22 happy_var_2)- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn22- (happy_var_1 : happy_var_2- )-happyReduction_45 _ _ = notHappyAtAll --happyReduce_46 = happySpecReduce_1 25 happyReduction_46-happyReduction_46 (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn22- ([happy_var_1]- )-happyReduction_46 _ = notHappyAtAll --happyReduce_47 = happySpecReduce_3 25 happyReduction_47-happyReduction_47 (HappyAbsSyn22 happy_var_3)- _- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn22- (happy_var_1 : happy_var_3- )-happyReduction_47 _ _ _ = notHappyAtAll --happyReduce_48 = happySpecReduce_1 26 happyReduction_48-happyReduction_48 _- = HappyAbsSyn26- (SPos- )--happyReduce_49 = happySpecReduce_1 26 happyReduction_49-happyReduction_49 _- = HappyAbsSyn26- (Pos- )--happyReduce_50 = happySpecReduce_1 26 happyReduction_50-happyReduction_50 _- = HappyAbsSyn26- (Neg- )--happyReduce_51 = happySpecReduce_1 26 happyReduction_51-happyReduction_51 _- = HappyAbsSyn26- (Const- )--happyReduce_52 = happySpecReduce_1 26 happyReduction_52-happyReduction_52 _- = HappyAbsSyn26- (Param- )--happyReduce_53 = happySpecReduce_1 26 happyReduction_53-happyReduction_53 _- = HappyAbsSyn26- (Rec- )--happyReduce_54 = happySpecReduce_2 27 happyReduction_54-happyReduction_54 (HappyAbsSyn28 happy_var_2)- _- = HappyAbsSyn27- (A.Measure happy_var_2- )-happyReduction_54 _ _ = notHappyAtAll --happyReduce_55 = happySpecReduce_2 28 happyReduction_55-happyReduction_55 _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn28- ([happy_var_1]- )-happyReduction_55 _ _ = notHappyAtAll --happyReduce_56 = happySpecReduce_3 28 happyReduction_56-happyReduction_56 (HappyAbsSyn28 happy_var_3)- _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn28- (happy_var_1 : happy_var_3- )-happyReduction_56 _ _ _ = notHappyAtAll --happyReduce_57 = happySpecReduce_3 29 happyReduction_57-happyReduction_57 (HappyAbsSyn27 happy_var_3)- _- (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn29- (A.Bound A.Lt happy_var_1 happy_var_3- )-happyReduction_57 _ _ _ = notHappyAtAll --happyReduce_58 = happySpecReduce_3 29 happyReduction_58-happyReduction_58 (HappyAbsSyn27 happy_var_3)- _- (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn29- (A.Bound A.Le happy_var_1 happy_var_3- )-happyReduction_58 _ _ _ = notHappyAtAll --happyReduce_59 = happySpecReduce_1 30 happyReduction_59-happyReduction_59 (HappyAbsSyn28 happy_var_1)- = HappyAbsSyn22- (let { f (C.Ident (C.QName x)) = x- ; f e = error ("not an identifier: " ++ C.prettyExpr e)- } in map f happy_var_1- )-happyReduction_59 _ = notHappyAtAll --happyReduce_60 = happySpecReduce_0 31 happyReduction_60-happyReduction_60 = HappyAbsSyn31- ([]- )--happyReduce_61 = happySpecReduce_2 31 happyReduction_61-happyReduction_61 (HappyAbsSyn31 happy_var_2)- (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn31- (happy_var_1 : happy_var_2- )-happyReduction_61 _ _ = notHappyAtAll --happyReduce_62 = happySpecReduce_2 31 happyReduction_62-happyReduction_62 (HappyAbsSyn31 happy_var_2)- (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn31- (C.TMeasure happy_var_1 : happy_var_2- )-happyReduction_62 _ _ = notHappyAtAll --happyReduce_63 = happyReduce 5 32 happyReduction_63-happyReduction_63 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind (Dec Default) happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_64 = happyReduce 5 32 happyReduction_64-happyReduction_64 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded A.defaultDec happy_var_2 A.Lt happy_var_4- ) `HappyStk` happyRest--happyReduce_65 = happyReduce 5 32 happyReduction_65-happyReduction_65 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded A.defaultDec happy_var_2 A.Le happy_var_4- ) `HappyStk` happyRest--happyReduce_66 = happyReduce 6 32 happyReduction_66-happyReduction_66 (_ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5- ) `HappyStk` happyRest--happyReduce_67 = happyReduce 6 32 happyReduction_67-happyReduction_67 (_ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded (Dec happy_var_1) happy_var_3 A.Lt happy_var_5- ) `HappyStk` happyRest--happyReduce_68 = happyReduce 6 32 happyReduction_68-happyReduction_68 (_ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded (Dec happy_var_1) happy_var_3 A.Le happy_var_5- ) `HappyStk` happyRest--happyReduce_69 = happySpecReduce_1 32 happyReduction_69-happyReduction_69 (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn32- (happy_var_1- )-happyReduction_69 _ = notHappyAtAll --happyReduce_70 = happySpecReduce_1 32 happyReduction_70-happyReduction_70 (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn32- (happy_var_1- )-happyReduction_70 _ = notHappyAtAll --happyReduce_71 = happyReduce 5 33 happyReduction_71-happyReduction_71 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind A.irrelevantDec happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_72 = happyReduce 5 33 happyReduction_72-happyReduction_72 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded A.irrelevantDec happy_var_2 A.Lt happy_var_4- ) `HappyStk` happyRest--happyReduce_73 = happyReduce 5 33 happyReduction_73-happyReduction_73 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded A.irrelevantDec happy_var_2 A.Le happy_var_4- ) `HappyStk` happyRest--happyReduce_74 = happyReduce 5 34 happyReduction_74-happyReduction_74 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind A.Hidden happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_75 = happyReduce 5 34 happyReduction_75-happyReduction_75 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded A.Hidden happy_var_2 A.Lt happy_var_4- ) `HappyStk` happyRest--happyReduce_76 = happyReduce 5 34 happyReduction_76-happyReduction_76 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBounded A.Hidden happy_var_2 A.Le happy_var_4- ) `HappyStk` happyRest--happyReduce_77 = happySpecReduce_1 35 happyReduction_77-happyReduction_77 (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn35- (C.TBind A.defaultDec [happy_var_1] Nothing- )-happyReduction_77 _ = notHappyAtAll --happyReduce_78 = happySpecReduce_3 35 happyReduction_78-happyReduction_78 _- (HappyAbsSyn23 happy_var_2)- _- = HappyAbsSyn35- (C.TBind A.irrelevantDec [happy_var_2] Nothing- )-happyReduction_78 _ _ _ = notHappyAtAll --happyReduce_79 = happySpecReduce_2 35 happyReduction_79-happyReduction_79 (HappyAbsSyn23 happy_var_2)- (HappyAbsSyn26 happy_var_1)- = HappyAbsSyn35- (C.TBind (Dec happy_var_1) [happy_var_2] Nothing- )-happyReduction_79 _ _ = notHappyAtAll --happyReduce_80 = happyReduce 4 35 happyReduction_80-happyReduction_80 (_ `HappyStk`- (HappyAbsSyn23 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn35- (C.TBind (Dec happy_var_1) [happy_var_3] Nothing- ) `HappyStk` happyRest--happyReduce_81 = happySpecReduce_1 36 happyReduction_81-happyReduction_81 (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn36- ((A.defaultDec , happy_var_1)- )-happyReduction_81 _ = notHappyAtAll --happyReduce_82 = happySpecReduce_3 36 happyReduction_82-happyReduction_82 _- (HappyAbsSyn23 happy_var_2)- _- = HappyAbsSyn36- ((A.irrelevantDec, happy_var_2)- )-happyReduction_82 _ _ _ = notHappyAtAll --happyReduce_83 = happySpecReduce_2 36 happyReduction_83-happyReduction_83 (HappyAbsSyn23 happy_var_2)- (HappyAbsSyn26 happy_var_1)- = HappyAbsSyn36- ((Dec happy_var_1 , happy_var_2)- )-happyReduction_83 _ _ = notHappyAtAll --happyReduce_84 = happySpecReduce_1 37 happyReduction_84-happyReduction_84 (HappyAbsSyn18 happy_var_1)- = HappyAbsSyn18- (happy_var_1- )-happyReduction_84 _ = notHappyAtAll --happyReduce_85 = happyReduce 7 37 happyReduction_85-happyReduction_85 ((HappyAbsSyn40 happy_var_7) `HappyStk`- _ `HappyStk`- _ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn18- (C.LetDef A.irrelevantDec happy_var_2 [] (Just happy_var_4) happy_var_7- ) `HappyStk` happyRest--happyReduce_86 = happyReduce 8 37 happyReduction_86-happyReduction_86 ((HappyAbsSyn40 happy_var_8) `HappyStk`- _ `HappyStk`- _ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn18- (C.LetDef (Dec happy_var_1) happy_var_3 [] (Just happy_var_5) happy_var_8- ) `HappyStk` happyRest--happyReduce_87 = happySpecReduce_1 38 happyReduction_87-happyReduction_87 (HappyAbsSyn35 happy_var_1)- = HappyAbsSyn35- (happy_var_1- )-happyReduction_87 _ = notHappyAtAll --happyReduce_88 = happySpecReduce_3 38 happyReduction_88-happyReduction_88 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn35- (C.TBind A.defaultDec [happy_var_1] (Just happy_var_3)- )-happyReduction_88 _ _ _ = notHappyAtAll --happyReduce_89 = happyReduce 5 38 happyReduction_89-happyReduction_89 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn35- (C.TBind A.defaultDec [happy_var_2] (Just happy_var_4)- ) `HappyStk` happyRest--happyReduce_90 = happyReduce 5 38 happyReduction_90-happyReduction_90 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn35- (C.TBind A.irrelevantDec [happy_var_2] (Just happy_var_4)- ) `HappyStk` happyRest--happyReduce_91 = happyReduce 6 38 happyReduction_91-happyReduction_91 (_ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn35- (C.TBind (Dec happy_var_1) [happy_var_3] (Just happy_var_5)- ) `HappyStk` happyRest--happyReduce_92 = happySpecReduce_1 39 happyReduction_92-happyReduction_92 (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn31- ([C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1]- )-happyReduction_92 _ = notHappyAtAll --happyReduce_93 = happySpecReduce_3 39 happyReduction_93-happyReduction_93 _- (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn31- ([C.TBind A.irrelevantDec [] happy_var_2]- )-happyReduction_93 _ _ _ = notHappyAtAll --happyReduce_94 = happySpecReduce_2 39 happyReduction_94-happyReduction_94 (HappyAbsSyn40 happy_var_2)- (HappyAbsSyn26 happy_var_1)- = HappyAbsSyn31- ([C.TBind (Dec happy_var_1) [] happy_var_2]- )-happyReduction_94 _ _ = notHappyAtAll --happyReduce_95 = happySpecReduce_1 39 happyReduction_95-happyReduction_95 (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn31- ([happy_var_1]- )-happyReduction_95 _ = notHappyAtAll --happyReduce_96 = happySpecReduce_1 39 happyReduction_96-happyReduction_96 (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn31- ([C.TMeasure happy_var_1]- )-happyReduction_96 _ = notHappyAtAll --happyReduce_97 = happySpecReduce_1 39 happyReduction_97-happyReduction_97 (HappyAbsSyn29 happy_var_1)- = HappyAbsSyn31- ([C.TBound happy_var_1]- )-happyReduction_97 _ = notHappyAtAll --happyReduce_98 = happySpecReduce_1 39 happyReduction_98-happyReduction_98 (HappyAbsSyn31 happy_var_1)- = HappyAbsSyn31- (happy_var_1- )-happyReduction_98 _ = notHappyAtAll --happyReduce_99 = happySpecReduce_1 40 happyReduction_99-happyReduction_99 (HappyAbsSyn28 happy_var_1)- = HappyAbsSyn40- (foldr1 C.Pair happy_var_1- )-happyReduction_99 _ = notHappyAtAll --happyReduce_100 = happySpecReduce_1 41 happyReduction_100-happyReduction_100 (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn28- ([happy_var_1]- )-happyReduction_100 _ = notHappyAtAll --happyReduce_101 = happySpecReduce_3 41 happyReduction_101-happyReduction_101 (HappyAbsSyn28 happy_var_3)- _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn28- (happy_var_1 : happy_var_3- )-happyReduction_101 _ _ _ = notHappyAtAll --happyReduce_102 = happySpecReduce_3 42 happyReduction_102-happyReduction_102 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn31 happy_var_1)- = HappyAbsSyn40- (C.Quant A.Pi happy_var_1 happy_var_3- )-happyReduction_102 _ _ _ = notHappyAtAll --happyReduce_103 = happyReduce 4 42 happyReduction_103-happyReduction_103 ((HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn40- (foldr C.Lam happy_var_4 happy_var_2- ) `HappyStk` happyRest--happyReduce_104 = happyReduce 4 42 happyReduction_104-happyReduction_104 ((HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn18 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn40- (C.LLet happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_105 = happyReduce 6 42 happyReduction_105-happyReduction_105 (_ `HappyStk`- (HappyAbsSyn54 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn20 happy_var_3) `HappyStk`- (HappyAbsSyn40 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn40- (C.Case happy_var_2 happy_var_3 happy_var_5- ) `HappyStk` happyRest--happyReduce_106 = happySpecReduce_1 42 happyReduction_106-happyReduction_106 (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn40- (happy_var_1- )-happyReduction_106 _ = notHappyAtAll --happyReduce_107 = happySpecReduce_3 42 happyReduction_107-happyReduction_107 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn40- (C.Plus happy_var_1 happy_var_3- )-happyReduction_107 _ _ _ = notHappyAtAll --happyReduce_108 = happySpecReduce_3 42 happyReduction_108-happyReduction_108 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn40- (C.App happy_var_1 [happy_var_3]- )-happyReduction_108 _ _ _ = notHappyAtAll --happyReduce_109 = happySpecReduce_3 42 happyReduction_109-happyReduction_109 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn40- (C.App happy_var_3 [happy_var_1]- )-happyReduction_109 _ _ _ = notHappyAtAll --happyReduce_110 = happySpecReduce_1 43 happyReduction_110-happyReduction_110 (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn40- (happy_var_1- )-happyReduction_110 _ = notHappyAtAll --happyReduce_111 = happySpecReduce_3 43 happyReduction_111-happyReduction_111 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn40- (C.Quant A.Sigma [happy_var_1] happy_var_3- )-happyReduction_111 _ _ _ = notHappyAtAll --happyReduce_112 = happySpecReduce_1 44 happyReduction_112-happyReduction_112 (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn32- (C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1- )-happyReduction_112 _ = notHappyAtAll --happyReduce_113 = happySpecReduce_3 44 happyReduction_113-happyReduction_113 _- (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn32- (C.TBind A.irrelevantDec [] happy_var_2- )-happyReduction_113 _ _ _ = notHappyAtAll --happyReduce_114 = happySpecReduce_2 44 happyReduction_114-happyReduction_114 (HappyAbsSyn40 happy_var_2)- (HappyAbsSyn26 happy_var_1)- = HappyAbsSyn32- (C.TBind (Dec happy_var_1) [] happy_var_2- )-happyReduction_114 _ _ = notHappyAtAll --happyReduce_115 = happySpecReduce_1 44 happyReduction_115-happyReduction_115 (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn32- (happy_var_1- )-happyReduction_115 _ = notHappyAtAll --happyReduce_116 = happySpecReduce_1 44 happyReduction_116-happyReduction_116 (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn32- (C.TMeasure happy_var_1- )-happyReduction_116 _ = notHappyAtAll --happyReduce_117 = happySpecReduce_1 44 happyReduction_117-happyReduction_117 (HappyAbsSyn29 happy_var_1)- = HappyAbsSyn32- (C.TBound happy_var_1- )-happyReduction_117 _ = notHappyAtAll --happyReduce_118 = happySpecReduce_1 45 happyReduction_118-happyReduction_118 (HappyAbsSyn28 happy_var_1)- = HappyAbsSyn40- (let (f : args) = reverse happy_var_1 in- if null args then f else C.App f args- )-happyReduction_118 _ = notHappyAtAll --happyReduce_119 = happySpecReduce_2 45 happyReduction_119-happyReduction_119 (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn40- (C.CoSet happy_var_2- )-happyReduction_119 _ _ = notHappyAtAll --happyReduce_120 = happySpecReduce_1 45 happyReduction_120-happyReduction_120 _- = HappyAbsSyn40- (C.Set C.Zero- )--happyReduce_121 = happySpecReduce_2 45 happyReduction_121-happyReduction_121 (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn40- (C.Set happy_var_2- )-happyReduction_121 _ _ = notHappyAtAll --happyReduce_122 = happySpecReduce_3 45 happyReduction_122-happyReduction_122 (HappyAbsSyn40 happy_var_3)- _- (HappyTerminal (T.Number happy_var_1 _))- = HappyAbsSyn40- (let n = read happy_var_1 in- if n==0 then C.Zero else- iterate (C.Plus happy_var_3) happy_var_3 !! (n-1)- )-happyReduction_122 _ _ _ = notHappyAtAll --happyReduce_123 = happySpecReduce_1 46 happyReduction_123-happyReduction_123 (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn28- ([happy_var_1]- )-happyReduction_123 _ = notHappyAtAll --happyReduce_124 = happySpecReduce_2 46 happyReduction_124-happyReduction_124 (HappyAbsSyn40 happy_var_2)- (HappyAbsSyn28 happy_var_1)- = HappyAbsSyn28- (happy_var_2 : happy_var_1- )-happyReduction_124 _ _ = notHappyAtAll --happyReduce_125 = happySpecReduce_3 46 happyReduction_125-happyReduction_125 (HappyAbsSyn23 happy_var_3)- _- (HappyAbsSyn28 happy_var_1)- = HappyAbsSyn28- (C.Proj happy_var_3 : happy_var_1- )-happyReduction_125 _ _ _ = notHappyAtAll --happyReduce_126 = happySpecReduce_2 46 happyReduction_126-happyReduction_126 _- (HappyAbsSyn28 happy_var_1)- = HappyAbsSyn28- (C.Set C.Zero : happy_var_1- )-happyReduction_126 _ _ = notHappyAtAll --happyReduce_127 = happySpecReduce_1 47 happyReduction_127-happyReduction_127 _- = HappyAbsSyn40- (C.Size- )--happyReduce_128 = happySpecReduce_1 47 happyReduction_128-happyReduction_128 _- = HappyAbsSyn40- (C.Max- )--happyReduce_129 = happySpecReduce_1 47 happyReduction_129-happyReduction_129 _- = HappyAbsSyn40- (C.Infty- )--happyReduce_130 = happySpecReduce_1 47 happyReduction_130-happyReduction_130 (HappyAbsSyn48 happy_var_1)- = HappyAbsSyn40- (C.Ident happy_var_1- )-happyReduction_130 _ = notHappyAtAll --happyReduce_131 = happyReduce 5 47 happyReduction_131-happyReduction_131 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn40 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn40- (C.Sing happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_132 = happySpecReduce_3 47 happyReduction_132-happyReduction_132 _- (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn40- (happy_var_2- )-happyReduction_132 _ _ _ = notHappyAtAll --happyReduce_133 = happySpecReduce_1 47 happyReduction_133-happyReduction_133 _- = HappyAbsSyn40- (C.Unknown- )--happyReduce_134 = happySpecReduce_2 47 happyReduction_134-happyReduction_134 (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn40- (C.Succ happy_var_2- )-happyReduction_134 _ _ = notHappyAtAll --happyReduce_135 = happySpecReduce_1 47 happyReduction_135-happyReduction_135 (HappyTerminal (T.Number happy_var_1 _))- = HappyAbsSyn40- (iterate C.Succ C.Zero !! (read happy_var_1)- )-happyReduction_135 _ = notHappyAtAll --happyReduce_136 = happyReduce 4 47 happyReduction_136-happyReduction_136 (_ `HappyStk`- (HappyAbsSyn49 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn40- (C.Record happy_var_3- ) `HappyStk` happyRest--happyReduce_137 = happySpecReduce_1 48 happyReduction_137-happyReduction_137 (HappyTerminal (T.QualId happy_var_1 _))- = HappyAbsSyn48- (let (m,n) = happy_var_1 in C.Qual (C.Name m) (C.Name n)- )-happyReduction_137 _ = notHappyAtAll --happyReduce_138 = happySpecReduce_1 48 happyReduction_138-happyReduction_138 (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn48- (C.QName happy_var_1- )-happyReduction_138 _ = notHappyAtAll --happyReduce_139 = happySpecReduce_3 49 happyReduction_139-happyReduction_139 (HappyAbsSyn49 happy_var_3)- _- (HappyAbsSyn50 happy_var_1)- = HappyAbsSyn49- (happy_var_1 : happy_var_3- )-happyReduction_139 _ _ _ = notHappyAtAll --happyReduce_140 = happySpecReduce_1 49 happyReduction_140-happyReduction_140 (HappyAbsSyn50 happy_var_1)- = HappyAbsSyn49- ([happy_var_1]- )-happyReduction_140 _ = notHappyAtAll --happyReduce_141 = happySpecReduce_0 49 happyReduction_141-happyReduction_141 = HappyAbsSyn49- ([]- )--happyReduce_142 = happySpecReduce_3 50 happyReduction_142-happyReduction_142 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn22 happy_var_1)- = HappyAbsSyn50- ((happy_var_1,happy_var_3)- )-happyReduction_142 _ _ _ = notHappyAtAll --happyReduce_143 = happySpecReduce_3 51 happyReduction_143-happyReduction_143 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn51- (C.TypeSig happy_var_1 happy_var_3- )-happyReduction_143 _ _ _ = notHappyAtAll --happyReduce_144 = happyReduce 4 52 happyReduction_144-happyReduction_144 ((HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn31 happy_var_2) `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn52- (C.Constructor happy_var_1 happy_var_2 (Just happy_var_4)- ) `HappyStk` happyRest--happyReduce_145 = happySpecReduce_2 52 happyReduction_145-happyReduction_145 (HappyAbsSyn31 happy_var_2)- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn52- (C.Constructor happy_var_1 happy_var_2 Nothing- )-happyReduction_145 _ _ = notHappyAtAll --happyReduce_146 = happySpecReduce_3 53 happyReduction_146-happyReduction_146 (HappyAbsSyn52 happy_var_3)- _- (HappyAbsSyn53 happy_var_1)- = HappyAbsSyn53- (happy_var_3 : happy_var_1- )-happyReduction_146 _ _ _ = notHappyAtAll --happyReduce_147 = happySpecReduce_2 53 happyReduction_147-happyReduction_147 _- (HappyAbsSyn53 happy_var_1)- = HappyAbsSyn53- (happy_var_1- )-happyReduction_147 _ _ = notHappyAtAll --happyReduce_148 = happySpecReduce_1 53 happyReduction_148-happyReduction_148 (HappyAbsSyn52 happy_var_1)- = HappyAbsSyn53- ([happy_var_1]- )-happyReduction_148 _ = notHappyAtAll --happyReduce_149 = happySpecReduce_0 53 happyReduction_149-happyReduction_149 = HappyAbsSyn53- ([]- )--happyReduce_150 = happyReduce 5 54 happyReduction_150-happyReduction_150 ((HappyAbsSyn54 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn40 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn58 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn54- ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : happy_var_5- ) `HappyStk` happyRest--happyReduce_151 = happySpecReduce_3 54 happyReduction_151-happyReduction_151 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn54- ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : []- )-happyReduction_151 _ _ _ = notHappyAtAll --happyReduce_152 = happySpecReduce_3 54 happyReduction_152-happyReduction_152 (HappyAbsSyn54 happy_var_3)- _- (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn54- ((C.Clause Nothing [happy_var_1] Nothing) : happy_var_3- )-happyReduction_152 _ _ _ = notHappyAtAll --happyReduce_153 = happySpecReduce_1 54 happyReduction_153-happyReduction_153 (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn54- ((C.Clause Nothing [happy_var_1] Nothing) : []- )-happyReduction_153 _ = notHappyAtAll --happyReduce_154 = happySpecReduce_0 54 happyReduction_154-happyReduction_154 = HappyAbsSyn54- ([]- )--happyReduce_155 = happyReduce 4 55 happyReduction_155-happyReduction_155 ((HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn56 happy_var_2) `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn55- (C.Clause (Just happy_var_1) happy_var_2 (Just happy_var_4)- ) `HappyStk` happyRest--happyReduce_156 = happySpecReduce_2 55 happyReduction_156-happyReduction_156 (HappyAbsSyn56 happy_var_2)- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn55- (C.Clause (Just happy_var_1) happy_var_2 Nothing- )-happyReduction_156 _ _ = notHappyAtAll --happyReduce_157 = happySpecReduce_1 56 happyReduction_157-happyReduction_157 (HappyAbsSyn56 happy_var_1)- = HappyAbsSyn56- (reverse happy_var_1- )-happyReduction_157 _ = notHappyAtAll --happyReduce_158 = happySpecReduce_0 57 happyReduction_158-happyReduction_158 = HappyAbsSyn56- ([]- )--happyReduce_159 = happySpecReduce_2 57 happyReduction_159-happyReduction_159 (HappyAbsSyn58 happy_var_2)- (HappyAbsSyn56 happy_var_1)- = HappyAbsSyn56- (happy_var_2 : happy_var_1- )-happyReduction_159 _ _ = notHappyAtAll --happyReduce_160 = happySpecReduce_3 57 happyReduction_160-happyReduction_160 (HappyAbsSyn58 happy_var_3)- _- (HappyAbsSyn56 happy_var_1)- = HappyAbsSyn56- (happy_var_3 : happy_var_1- )-happyReduction_160 _ _ _ = notHappyAtAll --happyReduce_161 = happySpecReduce_2 58 happyReduction_161-happyReduction_161 _- _- = HappyAbsSyn58- (C.AbsurdP- )--happyReduce_162 = happySpecReduce_3 58 happyReduction_162-happyReduction_162 _- (HappyAbsSyn58 happy_var_2)- _- = HappyAbsSyn58- (happy_var_2- )-happyReduction_162 _ _ _ = notHappyAtAll --happyReduce_163 = happySpecReduce_1 58 happyReduction_163-happyReduction_163 (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (happy_var_1- )-happyReduction_163 _ = notHappyAtAll --happyReduce_164 = happySpecReduce_2 58 happyReduction_164-happyReduction_164 (HappyAbsSyn58 happy_var_2)- _- = HappyAbsSyn58- (C.SuccP happy_var_2- )-happyReduction_164 _ _ = notHappyAtAll --happyReduce_165 = happySpecReduce_2 58 happyReduction_165-happyReduction_165 _- _- = HappyAbsSyn58- (C.DotP (C.Set C.Zero)- )--happyReduce_166 = happySpecReduce_2 58 happyReduction_166-happyReduction_166 (HappyAbsSyn40 happy_var_2)- _- = HappyAbsSyn58- (C.DotP happy_var_2- )-happyReduction_166 _ _ = notHappyAtAll --happyReduce_167 = happySpecReduce_3 59 happyReduction_167-happyReduction_167 (HappyAbsSyn58 happy_var_3)- _- (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (C.PairP happy_var_1 happy_var_3- )-happyReduction_167 _ _ _ = notHappyAtAll --happyReduce_168 = happySpecReduce_1 59 happyReduction_168-happyReduction_168 (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (happy_var_1- )-happyReduction_168 _ = notHappyAtAll --happyReduce_169 = happySpecReduce_1 60 happyReduction_169-happyReduction_169 (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (happy_var_1- )-happyReduction_169 _ = notHappyAtAll --happyReduce_170 = happySpecReduce_3 60 happyReduction_170-happyReduction_170 (HappyAbsSyn23 happy_var_3)- _- (HappyAbsSyn40 happy_var_1)- = HappyAbsSyn58- (C.SizeP happy_var_1 happy_var_3- )-happyReduction_170 _ _ _ = notHappyAtAll --happyReduce_171 = happySpecReduce_3 60 happyReduction_171-happyReduction_171 (HappyAbsSyn40 happy_var_3)- _- (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn58- (C.SizeP happy_var_3 happy_var_1- )-happyReduction_171 _ _ _ = notHappyAtAll --happyReduce_172 = happySpecReduce_1 60 happyReduction_172-happyReduction_172 (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (happy_var_1- )-happyReduction_172 _ = notHappyAtAll --happyReduce_173 = happySpecReduce_3 60 happyReduction_173-happyReduction_173 (HappyAbsSyn58 happy_var_3)- _- (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (patApp happy_var_1 [happy_var_3]- )-happyReduction_173 _ _ _ = notHappyAtAll --happyReduce_174 = happySpecReduce_2 61 happyReduction_174-happyReduction_174 (HappyAbsSyn58 happy_var_2)- (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (patApp happy_var_1 [happy_var_2]- )-happyReduction_174 _ _ = notHappyAtAll --happyReduce_175 = happySpecReduce_2 61 happyReduction_175-happyReduction_175 (HappyAbsSyn58 happy_var_2)- (HappyAbsSyn58 happy_var_1)- = HappyAbsSyn58- (patApp happy_var_1 [happy_var_2]- )-happyReduction_175 _ _ = notHappyAtAll --happyReduce_176 = happySpecReduce_1 62 happyReduction_176-happyReduction_176 (HappyAbsSyn23 happy_var_1)- = HappyAbsSyn58- (C.IdentP (C.QName happy_var_1)- )-happyReduction_176 _ = notHappyAtAll --happyReduce_177 = happySpecReduce_2 62 happyReduction_177-happyReduction_177 (HappyAbsSyn23 happy_var_2)- _- = HappyAbsSyn58- (C.ConP True (C.QName happy_var_2) []- )-happyReduction_177 _ _ = notHappyAtAll --happyReduce_178 = happySpecReduce_1 63 happyReduction_178-happyReduction_178 (HappyAbsSyn64 happy_var_1)- = HappyAbsSyn54- (reverse happy_var_1- )-happyReduction_178 _ = notHappyAtAll --happyReduce_179 = happySpecReduce_3 64 happyReduction_179-happyReduction_179 (HappyAbsSyn55 happy_var_3)- _- (HappyAbsSyn64 happy_var_1)- = HappyAbsSyn64- (happy_var_3 : happy_var_1- )-happyReduction_179 _ _ _ = notHappyAtAll --happyReduce_180 = happySpecReduce_2 64 happyReduction_180-happyReduction_180 _- (HappyAbsSyn64 happy_var_1)- = HappyAbsSyn64- (happy_var_1- )-happyReduction_180 _ _ = notHappyAtAll --happyReduce_181 = happySpecReduce_1 64 happyReduction_181-happyReduction_181 (HappyAbsSyn55 happy_var_1)- = HappyAbsSyn64- ([happy_var_1]- )-happyReduction_181 _ = notHappyAtAll --happyReduce_182 = happySpecReduce_0 64 happyReduction_182-happyReduction_182 = HappyAbsSyn64- ([]- )--happyReduce_183 = happyReduce 5 65 happyReduction_183-happyReduction_183 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind (Dec Default) happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_184 = happyReduce 5 65 happyReduction_184-happyReduction_184 (_ `HappyStk`- (HappyAbsSyn40 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind A.irrelevantDec happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_185 = happyReduce 6 65 happyReduction_185-happyReduction_185 (_ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5- ) `HappyStk` happyRest--happyReduce_186 = happyReduce 6 65 happyReduction_186-happyReduction_186 (_ `HappyStk`- (HappyAbsSyn40 happy_var_5) `HappyStk`- _ `HappyStk`- (HappyAbsSyn22 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn32- (C.TBind (Dec SPos) happy_var_3 happy_var_5- ) `HappyStk` happyRest--happyReduce_187 = happySpecReduce_0 66 happyReduction_187-happyReduction_187 = HappyAbsSyn31- ([]- )--happyReduce_188 = happySpecReduce_2 66 happyReduction_188-happyReduction_188 (HappyAbsSyn31 happy_var_2)- (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn31- (happy_var_1 : happy_var_2- )-happyReduction_188 _ _ = notHappyAtAll --happyNewToken action sts stk [] =- action 122 122 notHappyAtAll (HappyState action) sts stk []--happyNewToken action sts stk (tk:tks) =- let cont i = action i i tk (HappyState action) sts stk tks in- case tk of {- T.Id happy_dollar_dollar _ -> cont 67;- T.QualId happy_dollar_dollar _ -> cont 68;- T.Number happy_dollar_dollar _ -> cont 69;- T.Data _ -> cont 70;- T.CoData _ -> cont 71;- T.Record _ -> cont 72;- T.Sized _ -> cont 73;- T.Fields _ -> cont 74;- T.Mutual _ -> cont 75;- T.Fun _ -> cont 76;- T.CoFun _ -> cont 77;- T.Pattern _ -> cont 78;- T.Case _ -> cont 79;- T.Def _ -> cont 80;- T.Let _ -> cont 81;- T.In _ -> cont 82;- T.Eval _ -> cont 83;- T.Fail _ -> cont 84;- T.Check _ -> cont 85;- T.TrustMe _ -> cont 86;- T.Impredicative _ -> cont 87;- T.Type _ -> cont 88;- T.Set _ -> cont 89;- T.CoSet _ -> cont 90;- T.Size _ -> cont 91;- T.Infty _ -> cont 92;- T.Succ _ -> cont 93;- T.Max _ -> cont 94;- T.LTri _ -> cont 95;- T.RTri _ -> cont 96;- T.AngleOpen _ -> cont 97;- T.AngleClose _ -> cont 98;- T.BrOpen _ -> cont 99;- T.BrClose _ -> cont 100;- T.BracketOpen _ -> cont 101;- T.BracketClose _ -> cont 102;- T.PrOpen _ -> cont 103;- T.PrClose _ -> cont 104;- T.Bar _ -> cont 105;- T.Comma _ -> cont 106;- T.Sem _ -> cont 107;- T.Col _ -> cont 108;- T.Dot _ -> cont 109;- T.Arrow _ -> cont 110;- T.Leq _ -> cont 111;- T.Eq _ -> cont 112;- T.PlusPlus _ -> cont 113;- T.Plus _ -> cont 114;- T.Minus _ -> cont 115;- T.Slash _ -> cont 116;- T.Times _ -> cont 117;- T.Hat _ -> cont 118;- T.Amp _ -> cont 119;- T.Lam _ -> cont 120;- T.Underscore _ -> cont 121;- _ -> happyError' (tk:tks)- }--happyError_ 122 tk tks = happyError' tks-happyError_ _ tk tks = happyError' (tk:tks)--newtype HappyIdentity a = HappyIdentity a-happyIdentity = HappyIdentity-happyRunIdentity (HappyIdentity a) = a--instance Functor HappyIdentity where- fmap f (HappyIdentity a) = HappyIdentity (f a)--instance Applicative HappyIdentity where- pure = return- (<*>) = ap-instance Monad HappyIdentity where- return = HappyIdentity- (HappyIdentity p) >>= q = q p--happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b-happyThen = (>>=)-happyReturn :: () => a -> HappyIdentity a-happyReturn = (return)-happyThen1 m k tks = (>>=) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> HappyIdentity a-happyReturn1 = \a tks -> (return) a-happyError' :: () => [(T.Token)] -> HappyIdentity a-happyError' = HappyIdentity . parseError--parse tks = happyRunIdentity happySomeParser where- happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn4 z -> happyReturn z; _other -> notHappyAtAll })--happySeq = happyDontSeq---parseError :: [T.Token] -> a-parseError [] = error "Parse error at EOF"-parseError (x : xs) = error ("Parse error at token " ++ T.prettyTok x)-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}--------# 1 "/usr/include/stdc-predef.h" 1 3 4--# 17 "/usr/include/stdc-predef.h" 3 4--------------------------------------------{-# LINE 7 "<command-line>" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp --{-# LINE 13 "templates/GenericTemplate.hs" #-}--{-# LINE 46 "templates/GenericTemplate.hs" #-}---------{-# LINE 67 "templates/GenericTemplate.hs" #-}--{-# LINE 77 "templates/GenericTemplate.hs" #-}--{-# LINE 86 "templates/GenericTemplate.hs" #-}--infixr 9 `HappyStk`-data HappyStk a = HappyStk a (HappyStk a)---------------------------------------------------------------------------------- starting the parse--happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll---------------------------------------------------------------------------------- Accepting the parse---- If the current token is (1), it means we've just accepted a partial--- parse (a %partial parser). We must ignore the saved token on the top of--- the stack in this case.-happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) =- happyReturn1 ans-happyAccept j tk st sts (HappyStk ans _) = - (happyReturn1 ans)---------------------------------------------------------------------------------- Arrays only: do the next action--{-# LINE 155 "templates/GenericTemplate.hs" #-}---------------------------------------------------------------------------------- HappyState data type (not arrays)----newtype HappyState b c = HappyState- (Int -> -- token number- Int -> -- token number (yes, again)- b -> -- token semantic value- HappyState b c -> -- current state- [HappyState b c] -> -- state stack- c)------------------------------------------------------------------------------------ Shifting a token--happyShift new_state (1) tk st sts stk@(x `HappyStk` _) =- let i = (case x of { HappyErrorToken (i) -> i }) in--- trace "shifting the error token" $- new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)--happyShift new_state i tk st sts stk =- happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)---- happyReduce is specialised for the common cases.--happySpecReduce_0 i fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk- = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)--happySpecReduce_1 i fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')- = let r = fn v1 in- happySeq r (action nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_2 i fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')- = let r = fn v1 v2 in- happySeq r (action nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_3 i fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')- = let r = fn v1 v2 v3 in- happySeq r (action nt j tk st sts (r `HappyStk` stk'))--happyReduce k i fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happyReduce k nt fn j tk st sts stk- = case happyDrop (k - ((1) :: Int)) sts of- sts1@(((st1@(HappyState (action))):(_))) ->- let r = fn stk in -- it doesn't hurt to always seq here...- happyDoSeq r (action nt j tk st1 sts1 r)--happyMonadReduce k nt fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happyMonadReduce k nt fn j tk st sts stk =- case happyDrop k ((st):(sts)) of- sts1@(((st1@(HappyState (action))):(_))) ->- let drop_stk = happyDropStk k stk in- happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))--happyMonad2Reduce k nt fn (1) tk st sts stk- = happyFail (1) tk st sts stk-happyMonad2Reduce k nt fn j tk st sts stk =- case happyDrop k ((st):(sts)) of- sts1@(((st1@(HappyState (action))):(_))) ->- let drop_stk = happyDropStk k stk------ new_state = action-- in- happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))--happyDrop (0) l = l-happyDrop n ((_):(t)) = happyDrop (n - ((1) :: Int)) t--happyDropStk (0) l = l-happyDropStk n (x `HappyStk` xs) = happyDropStk (n - ((1)::Int)) xs---------------------------------------------------------------------------------- Moving to a new state after a reduction--{-# LINE 256 "templates/GenericTemplate.hs" #-}-happyGoto action j tk st = action j j tk (HappyState action)----------------------------------------------------------------------------------- Error recovery ((1) is the error token)---- parse error if we are in recovery and we fail again-happyFail (1) tk old_st _ stk@(x `HappyStk` _) =- let i = (case x of { HappyErrorToken (i) -> i }) in--- trace "failing" $ - happyError_ i tk--{- We don't need state discarding for our restricted implementation of- "error". In fact, it can cause some bogus parses, so I've disabled it- for now --SDM---- discard a state-happyFail (1) tk old_st (((HappyState (action))):(sts)) - (saved_tok `HappyStk` _ `HappyStk` stk) =--- trace ("discarding state, depth " ++ show (length stk)) $- action (1) (1) tk (HappyState (action)) sts ((saved_tok`HappyStk`stk))--}---- Enter error recovery: generate an error token,--- save the old token and carry on.-happyFail i tk (HappyState (action)) sts stk =--- trace "entering error recovery" $- action (1) (1) tk (HappyState (action)) sts ( (HappyErrorToken (i)) `HappyStk` stk)---- Internal happy errors:--notHappyAtAll :: a-notHappyAtAll = error "Internal Happy error\n"---------------------------------------------------------------------------------- Hack to get the typechecker to accept our action functions---------------------------------------------------------------------------------------- Seq-ing. If the --strict flag is given, then Happy emits --- happySeq = happyDoSeq--- otherwise it emits--- happySeq = happyDontSeq--happyDoSeq, happyDontSeq :: a -> b -> b-happyDoSeq a b = a `seq` b-happyDontSeq a b = b---------------------------------------------------------------------------------- Don't inline any functions from the template. GHC has a nasty habit--- of deciding to inline happyGoto everywhere, which increases the size of--- the generated parser quite a bit.--{-# LINE 322 "templates/GenericTemplate.hs" #-}+import qualified Data.Array as Happy_Data_Array+import qualified Data.Bits as Bits+import Control.Applicative(Applicative(..))+import Control.Monad (ap)++-- parser produced by Happy Version 1.20.0++data HappyAbsSyn+ = HappyTerminal (T.Token)+ | HappyErrorToken Prelude.Int+ | HappyAbsSyn4 ([C.Declaration])+ | HappyAbsSyn6 (C.Declaration)+ | HappyAbsSyn12 ((C.Name, C.Telescope, C.Type, [C.Constructor], [C.Name]))+ | HappyAbsSyn13 ((C.Name, C.Telescope, C.Type, C.Constructor, [C.Name]))+ | HappyAbsSyn18 (C.LetDef)+ | HappyAbsSyn19 (Bool)+ | HappyAbsSyn20 (Maybe C.Type)+ | HappyAbsSyn22 ([Name])+ | HappyAbsSyn23 (Name)+ | HappyAbsSyn26 (Pol)+ | HappyAbsSyn27 (A.Measure C.Expr)+ | HappyAbsSyn28 ([C.Expr])+ | HappyAbsSyn29 (A.Bound C.Expr)+ | HappyAbsSyn31 (C.Telescope)+ | HappyAbsSyn32 (C.TBind)+ | HappyAbsSyn35 ((Dec, C.Name))+ | HappyAbsSyn38 (C.Expr)+ | HappyAbsSyn46 (C.QName)+ | HappyAbsSyn47 ([([Name],C.Expr)])+ | HappyAbsSyn48 (([Name],C.Expr))+ | HappyAbsSyn49 (C.TypeSig)+ | HappyAbsSyn50 (C.Constructor)+ | HappyAbsSyn51 ([C.Constructor ])+ | HappyAbsSyn52 ([C.Clause])+ | HappyAbsSyn53 (C.Clause)+ | HappyAbsSyn54 ([C.Pattern])+ | HappyAbsSyn56 (C.Pattern)+ | HappyAbsSyn62 ([C.Clause ])++{- to allow type-synonyms as our monads (likely+ - with explicitly-specified bind and return)+ - in Haskell98, it seems that with+ - /type M a = .../, then /(HappyReduction M)/+ - is not allowed. But Happy is a+ - code-generator that can just substitute it.+type HappyReduction m =+ Prelude.Int+ -> (T.Token)+ -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)+ -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> m HappyAbsSyn)]+ -> HappyStk HappyAbsSyn+ -> [(T.Token)] -> m HappyAbsSyn+-}++action_0,+ action_1,+ action_2,+ action_3,+ action_4,+ action_5,+ action_6,+ action_7,+ action_8,+ action_9,+ action_10,+ action_11,+ action_12,+ action_13,+ action_14,+ action_15,+ action_16,+ action_17,+ action_18,+ action_19,+ action_20,+ action_21,+ action_22,+ action_23,+ action_24,+ action_25,+ action_26,+ action_27,+ action_28,+ action_29,+ action_30,+ action_31,+ action_32,+ action_33,+ action_34,+ action_35,+ action_36,+ action_37,+ action_38,+ action_39,+ action_40,+ action_41,+ action_42,+ action_43,+ action_44,+ action_45,+ action_46,+ action_47,+ action_48,+ action_49,+ action_50,+ action_51,+ action_52,+ action_53,+ action_54,+ action_55,+ action_56,+ action_57,+ action_58,+ action_59,+ action_60,+ action_61,+ action_62,+ action_63,+ action_64,+ action_65,+ action_66,+ action_67,+ action_68,+ action_69,+ action_70,+ action_71,+ action_72,+ action_73,+ action_74,+ action_75,+ action_76,+ action_77,+ action_78,+ action_79,+ action_80,+ action_81,+ action_82,+ action_83,+ action_84,+ action_85,+ action_86,+ action_87,+ action_88,+ action_89,+ action_90,+ action_91,+ action_92,+ action_93,+ action_94,+ action_95,+ action_96,+ action_97,+ action_98,+ action_99,+ action_100,+ action_101,+ action_102,+ action_103,+ action_104,+ action_105,+ action_106,+ action_107,+ action_108,+ action_109,+ action_110,+ action_111,+ action_112,+ action_113,+ action_114,+ action_115,+ action_116,+ action_117,+ action_118,+ action_119,+ action_120,+ action_121,+ action_122,+ action_123,+ action_124,+ action_125,+ action_126,+ action_127,+ action_128,+ action_129,+ action_130,+ action_131,+ action_132,+ action_133,+ action_134,+ action_135,+ action_136,+ action_137,+ action_138,+ action_139,+ action_140,+ action_141,+ action_142,+ action_143,+ action_144,+ action_145,+ action_146,+ action_147,+ action_148,+ action_149,+ action_150,+ action_151,+ action_152,+ action_153,+ action_154,+ action_155,+ action_156,+ action_157,+ action_158,+ action_159,+ action_160,+ action_161,+ action_162,+ action_163,+ action_164,+ action_165,+ action_166,+ action_167,+ action_168,+ action_169,+ action_170,+ action_171,+ action_172,+ action_173,+ action_174,+ action_175,+ action_176,+ action_177,+ action_178,+ action_179,+ action_180,+ action_181,+ action_182,+ action_183,+ action_184,+ action_185,+ action_186,+ action_187,+ action_188,+ action_189,+ action_190,+ action_191,+ action_192,+ action_193,+ action_194,+ action_195,+ action_196,+ action_197,+ action_198,+ action_199,+ action_200,+ action_201,+ action_202,+ action_203,+ action_204,+ action_205,+ action_206,+ action_207,+ action_208,+ action_209,+ action_210,+ action_211,+ action_212,+ action_213,+ action_214,+ action_215,+ action_216,+ action_217,+ action_218,+ action_219,+ action_220,+ action_221,+ action_222,+ action_223,+ action_224,+ action_225,+ action_226,+ action_227,+ action_228,+ action_229,+ action_230,+ action_231,+ action_232,+ action_233,+ action_234,+ action_235,+ action_236,+ action_237,+ action_238,+ action_239,+ action_240,+ action_241,+ action_242,+ action_243,+ action_244,+ action_245,+ action_246,+ action_247,+ action_248,+ action_249,+ action_250,+ action_251,+ action_252,+ action_253,+ action_254,+ action_255,+ action_256,+ action_257,+ action_258,+ action_259,+ action_260,+ action_261,+ action_262,+ action_263,+ action_264,+ action_265,+ action_266,+ action_267,+ action_268,+ action_269,+ action_270,+ action_271,+ action_272,+ action_273,+ action_274,+ action_275,+ action_276,+ action_277,+ action_278,+ action_279,+ action_280,+ action_281,+ action_282,+ action_283,+ action_284,+ action_285,+ action_286,+ action_287,+ action_288,+ action_289,+ action_290,+ action_291,+ action_292,+ action_293,+ action_294,+ action_295,+ action_296,+ action_297,+ action_298,+ action_299,+ action_300,+ action_301,+ action_302,+ action_303,+ action_304,+ action_305,+ action_306,+ action_307,+ action_308,+ action_309,+ action_310,+ action_311,+ action_312,+ action_313,+ action_314,+ action_315,+ action_316,+ action_317,+ action_318,+ action_319,+ action_320,+ action_321,+ action_322,+ action_323,+ action_324,+ action_325,+ action_326,+ action_327,+ action_328,+ action_329,+ action_330,+ action_331,+ action_332,+ action_333,+ action_334,+ action_335,+ action_336,+ action_337,+ action_338,+ action_339,+ action_340,+ action_341,+ action_342,+ action_343,+ action_344,+ action_345,+ action_346,+ action_347,+ action_348,+ action_349,+ action_350,+ action_351,+ action_352,+ action_353,+ action_354,+ action_355,+ action_356,+ action_357,+ action_358,+ action_359,+ action_360,+ action_361,+ action_362,+ action_363,+ action_364,+ action_365,+ action_366,+ action_367,+ action_368,+ action_369,+ action_370,+ action_371,+ action_372,+ action_373,+ action_374,+ action_375,+ action_376,+ action_377,+ action_378,+ action_379,+ action_380,+ action_381,+ action_382,+ action_383,+ action_384,+ action_385,+ action_386,+ action_387,+ action_388,+ action_389,+ action_390,+ action_391,+ action_392,+ action_393,+ action_394,+ action_395,+ action_396,+ action_397 :: () => Prelude.Int -> ({-HappyReduction (HappyIdentity) = -}+ Prelude.Int+ -> (T.Token)+ -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)+ -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)]+ -> HappyStk HappyAbsSyn+ -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)++happyReduce_1,+ happyReduce_2,+ happyReduce_3,+ happyReduce_4,+ happyReduce_5,+ happyReduce_6,+ happyReduce_7,+ happyReduce_8,+ happyReduce_9,+ happyReduce_10,+ happyReduce_11,+ happyReduce_12,+ happyReduce_13,+ happyReduce_14,+ happyReduce_15,+ happyReduce_16,+ happyReduce_17,+ happyReduce_18,+ happyReduce_19,+ happyReduce_20,+ happyReduce_21,+ happyReduce_22,+ happyReduce_23,+ happyReduce_24,+ happyReduce_25,+ happyReduce_26,+ happyReduce_27,+ happyReduce_28,+ happyReduce_29,+ happyReduce_30,+ happyReduce_31,+ happyReduce_32,+ happyReduce_33,+ happyReduce_34,+ happyReduce_35,+ happyReduce_36,+ happyReduce_37,+ happyReduce_38,+ happyReduce_39,+ happyReduce_40,+ happyReduce_41,+ happyReduce_42,+ happyReduce_43,+ happyReduce_44,+ happyReduce_45,+ happyReduce_46,+ happyReduce_47,+ happyReduce_48,+ happyReduce_49,+ happyReduce_50,+ happyReduce_51,+ happyReduce_52,+ happyReduce_53,+ happyReduce_54,+ happyReduce_55,+ happyReduce_56,+ happyReduce_57,+ happyReduce_58,+ happyReduce_59,+ happyReduce_60,+ happyReduce_61,+ happyReduce_62,+ happyReduce_63,+ happyReduce_64,+ happyReduce_65,+ happyReduce_66,+ happyReduce_67,+ happyReduce_68,+ happyReduce_69,+ happyReduce_70,+ happyReduce_71,+ happyReduce_72,+ happyReduce_73,+ happyReduce_74,+ happyReduce_75,+ happyReduce_76,+ happyReduce_77,+ happyReduce_78,+ happyReduce_79,+ happyReduce_80,+ happyReduce_81,+ happyReduce_82,+ happyReduce_83,+ happyReduce_84,+ happyReduce_85,+ happyReduce_86,+ happyReduce_87,+ happyReduce_88,+ happyReduce_89,+ happyReduce_90,+ happyReduce_91,+ happyReduce_92,+ happyReduce_93,+ happyReduce_94,+ happyReduce_95,+ happyReduce_96,+ happyReduce_97,+ happyReduce_98,+ happyReduce_99,+ happyReduce_100,+ happyReduce_101,+ happyReduce_102,+ happyReduce_103,+ happyReduce_104,+ happyReduce_105,+ happyReduce_106,+ happyReduce_107,+ happyReduce_108,+ happyReduce_109,+ happyReduce_110,+ happyReduce_111,+ happyReduce_112,+ happyReduce_113,+ happyReduce_114,+ happyReduce_115,+ happyReduce_116,+ happyReduce_117,+ happyReduce_118,+ happyReduce_119,+ happyReduce_120,+ happyReduce_121,+ happyReduce_122,+ happyReduce_123,+ happyReduce_124,+ happyReduce_125,+ happyReduce_126,+ happyReduce_127,+ happyReduce_128,+ happyReduce_129,+ happyReduce_130,+ happyReduce_131,+ happyReduce_132,+ happyReduce_133,+ happyReduce_134,+ happyReduce_135,+ happyReduce_136,+ happyReduce_137,+ happyReduce_138,+ happyReduce_139,+ happyReduce_140,+ happyReduce_141,+ happyReduce_142,+ happyReduce_143,+ happyReduce_144,+ happyReduce_145,+ happyReduce_146,+ happyReduce_147,+ happyReduce_148,+ happyReduce_149,+ happyReduce_150,+ happyReduce_151,+ happyReduce_152,+ happyReduce_153,+ happyReduce_154,+ happyReduce_155,+ happyReduce_156,+ happyReduce_157,+ happyReduce_158,+ happyReduce_159,+ happyReduce_160,+ happyReduce_161,+ happyReduce_162,+ happyReduce_163,+ happyReduce_164,+ happyReduce_165,+ happyReduce_166,+ happyReduce_167,+ happyReduce_168,+ happyReduce_169,+ happyReduce_170,+ happyReduce_171,+ happyReduce_172,+ happyReduce_173,+ happyReduce_174,+ happyReduce_175,+ happyReduce_176,+ happyReduce_177,+ happyReduce_178,+ happyReduce_179 :: () => ({-HappyReduction (HappyIdentity) = -}+ Prelude.Int+ -> (T.Token)+ -> HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)+ -> [HappyState (T.Token) (HappyStk HappyAbsSyn -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)]+ -> HappyStk HappyAbsSyn+ -> [(T.Token)] -> (HappyIdentity) HappyAbsSyn)++happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int+happyExpList = Happy_Data_Array.listArray (0,2376) ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3960,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,1,0,0,0,0,0,0,6144,0,0,0,0,0,0,0,0,0,1,0,0,0,0,256,0,0,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30720,7951,256,0,0,0,0,0,3960,31,1,0,0,0,0,30720,7951,256,0,0,0,0,0,3960,31,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,256,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5120,3524,0,0,0,0,0,0,0,0,0,0,0,0,0,5120,3524,0,0,0,0,0,0,0,0,0,0,0,256,0,1024,3524,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,21760,3524,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,50196,13,0,0,0,0,0,256,2,0,0,0,0,1,0,0,0,0,0,0,256,0,0,128,0,0,0,0,0,0,513,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30720,7951,512,0,0,0,0,0,1,0,0,0,0,0,0,256,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,0,4175,16388,0,0,0,0,0,0,0,0,0,0,0,30720,7951,512,0,0,0,0,0,3960,31,2,0,0,0,0,30720,7951,512,0,0,0,0,0,3960,31,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,20224,1040,64,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,30031,28100,0,0,0,0,39,20288,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9984,49152,21839,19908,0,0,0,0,0,16384,54357,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21760,3524,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,12288,32768,0,0,0,0,1792,16384,4175,16388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,20519,20416,50261,109,0,0,0,256,0,1024,3524,0,0,0,0,7,20224,16,64,0,0,0,9984,0,4175,16384,0,0,0,0,39,20224,16,64,0,0,0,256,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,128,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,50261,13,0,0,0,0,0,0,2,0,0,0,0,0,0,50261,13,0,0,0,256,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,4224,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,256,0,0,0,0,0,0,0,50261,13,0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,512,0,0,0,0,9984,49232,21839,28100,0,0,0,0,1,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,256,0,4116,4,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,16,0,0,0,0,0,0,8,0,0,0,0,0,0,32832,16,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9984,49152,4175,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,39,20416,50261,77,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,64,0,0,0,0,0,0,16384,0,0,0,0,0,39,20416,16,64,0,0,0,0,0,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,32,0,0,0,0,9984,49232,30031,28100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,4100,4,0,0,0,0,39,20224,1072,64,0,0,0,0,0,0,0,0,0,0,0,39,20224,1040,64,0,0,0,9984,0,4175,16388,0,0,0,0,1,0,0,0,0,0,0,9984,0,4175,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,512,0,0,0,0,0,0,0,256,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,2,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,520,0,0,0,0,9984,49232,21839,28100,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,39,20224,1040,64,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,8,0,0,0,0,32768,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,4096,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,8192,0,0,0,0,0,0,0,32,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,32,0,0,0,0,0,0,512,1,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,8,0,0,0,0,0,0,512,0,0,0,0,0,0,0,2,0,0,0,0,0,0,512,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,256,0,4100,4,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,9984,49232,21839,28100,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,128,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,32,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,0,0,0,0,0,0,8,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,32,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,8192,0,0,0,0,256,0,4100,4,0,0,0,0,20519,20416,50261,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,8192,0,0,0,0,9984,49232,21839,28100,0,0,0,0,0,0,0,0,0,0,0,256,0,4100,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+ ])++{-# NOINLINE happyExpListPerState #-}+happyExpListPerState st =+ token_strs_expected+ where token_strs = ["error","%dummy","%start_parse","TopLevel","Declarations","Declaration","Data","SizedData","CoData","SizedCoData","RecordDecl","DataDef","DataDef1","Fun","CoFun","Mutual","Let","LetDef","Eval","TypeOpt","PatternDecl","OptFields","Id","SpcIds","Ids","Pol","Measure","Meas","Bound","EIds","Telescope","TBind","EBind","HBind","PolId","LLetDef","Domain","ExprT","ExprList","Expr","Expr0","SigDom","Expr1","Expr2","Expr3","QName","RecordDefs","RecordDef","TypeSig","Constructor","Constructors","Cases","Clause","LHS","Patterns","Pattern","PairP","ElemP","ConP","DotId","Clauses","RClauses","TBindSP","DataTelescope","id","qualid","number","data","codata","record","sized","fields","mutual","fun","cofun","pattern","case","def","let","in","eval","fail","check","trustme","impredicative","type","set","coset","size","infty","succ","max","'<|'","'|>'","'<'","'>'","'{'","'}'","'['","']'","'('","')'","'|'","','","';'","':'","'.'","'->'","'<='","'='","'++'","'+'","'-'","'/'","'*'","'^'","'&'","'\\\\'","'_'","%eof"]+ bit_start = st Prelude.* 120+ bit_end = (st Prelude.+ 1) Prelude.* 120+ read_bit = readArrayBit happyExpList+ bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]+ bits_indexed = Prelude.zip bits [0..119]+ token_strs_expected = Prelude.concatMap f bits_indexed+ f (Prelude.False, _) = []+ f (Prelude.True, nr) = [token_strs Prelude.!! nr]++action_0 (4) = happyGoto action_3+action_0 (5) = happyGoto action_2+action_0 _ = happyReduce_2++action_1 (5) = happyGoto action_2+action_1 _ = happyFail (happyExpListPerState 1)++action_2 (68) = happyShift action_16+action_2 (69) = happyShift action_17+action_2 (70) = happyShift action_18+action_2 (71) = happyShift action_19+action_2 (73) = happyShift action_20+action_2 (74) = happyShift action_21+action_2 (75) = happyShift action_22+action_2 (76) = happyShift action_23+action_2 (81) = happyShift action_24+action_2 (82) = happyShift action_25+action_2 (83) = happyShift action_26+action_2 (84) = happyShift action_27+action_2 (85) = happyShift action_28+action_2 (120) = happyReduce_1+action_2 (6) = happyGoto action_4+action_2 (7) = happyGoto action_5+action_2 (8) = happyGoto action_6+action_2 (9) = happyGoto action_7+action_2 (10) = happyGoto action_8+action_2 (11) = happyGoto action_9+action_2 (14) = happyGoto action_10+action_2 (15) = happyGoto action_11+action_2 (16) = happyGoto action_12+action_2 (17) = happyGoto action_13+action_2 (19) = happyGoto action_14+action_2 (21) = happyGoto action_15+action_2 _ = happyReduce_36++action_3 (120) = happyAccept+action_3 _ = happyFail (happyExpListPerState 3)++action_4 _ = happyReduce_3++action_5 _ = happyReduce_4++action_6 _ = happyReduce_6++action_7 _ = happyReduce_5++action_8 _ = happyReduce_7++action_9 _ = happyReduce_8++action_10 _ = happyReduce_9++action_11 _ = happyReduce_10++action_12 _ = happyReduce_11++action_13 _ = happyReduce_12++action_14 (79) = happyShift action_51+action_14 _ = happyFail (happyExpListPerState 14)++action_15 _ = happyReduce_13++action_16 (65) = happyShift action_39+action_16 (12) = happyGoto action_50+action_16 (23) = happyGoto action_49+action_16 _ = happyFail (happyExpListPerState 16)++action_17 (65) = happyShift action_39+action_17 (12) = happyGoto action_48+action_17 (23) = happyGoto action_49+action_17 _ = happyFail (happyExpListPerState 17)++action_18 (65) = happyShift action_39+action_18 (13) = happyGoto action_46+action_18 (23) = happyGoto action_47+action_18 _ = happyFail (happyExpListPerState 18)++action_19 (68) = happyShift action_44+action_19 (69) = happyShift action_45+action_19 _ = happyFail (happyExpListPerState 19)++action_20 (97) = happyShift action_43+action_20 _ = happyFail (happyExpListPerState 20)++action_21 (65) = happyShift action_39+action_21 (23) = happyGoto action_40+action_21 (49) = happyGoto action_42+action_21 _ = happyFail (happyExpListPerState 21)++action_22 (65) = happyShift action_39+action_22 (23) = happyGoto action_40+action_22 (49) = happyGoto action_41+action_22 _ = happyFail (happyExpListPerState 22)++action_23 (65) = happyShift action_39+action_23 (23) = happyGoto action_37+action_23 (24) = happyGoto action_38+action_23 _ = happyFail (happyExpListPerState 23)++action_24 _ = happyReduce_37++action_25 (68) = happyShift action_16+action_25 (69) = happyShift action_17+action_25 (70) = happyShift action_18+action_25 (71) = happyShift action_19+action_25 (73) = happyShift action_20+action_25 (74) = happyShift action_21+action_25 (75) = happyShift action_22+action_25 (76) = happyShift action_23+action_25 (81) = happyShift action_24+action_25 (82) = happyShift action_25+action_25 (83) = happyShift action_26+action_25 (84) = happyShift action_27+action_25 (85) = happyShift action_28+action_25 (97) = happyShift action_36+action_25 (6) = happyGoto action_35+action_25 (7) = happyGoto action_5+action_25 (8) = happyGoto action_6+action_25 (9) = happyGoto action_7+action_25 (10) = happyGoto action_8+action_25 (11) = happyGoto action_9+action_25 (14) = happyGoto action_10+action_25 (15) = happyGoto action_11+action_25 (16) = happyGoto action_12+action_25 (17) = happyGoto action_13+action_25 (19) = happyGoto action_14+action_25 (21) = happyGoto action_15+action_25 _ = happyReduce_36++action_26 (68) = happyShift action_16+action_26 (69) = happyShift action_17+action_26 (70) = happyShift action_18+action_26 (71) = happyShift action_19+action_26 (73) = happyShift action_20+action_26 (74) = happyShift action_21+action_26 (75) = happyShift action_22+action_26 (76) = happyShift action_23+action_26 (81) = happyShift action_24+action_26 (82) = happyShift action_25+action_26 (83) = happyShift action_26+action_26 (84) = happyShift action_27+action_26 (85) = happyShift action_28+action_26 (97) = happyShift action_34+action_26 (6) = happyGoto action_33+action_26 (7) = happyGoto action_5+action_26 (8) = happyGoto action_6+action_26 (9) = happyGoto action_7+action_26 (10) = happyGoto action_8+action_26 (11) = happyGoto action_9+action_26 (14) = happyGoto action_10+action_26 (15) = happyGoto action_11+action_26 (16) = happyGoto action_12+action_26 (17) = happyGoto action_13+action_26 (19) = happyGoto action_14+action_26 (21) = happyGoto action_15+action_26 _ = happyReduce_36++action_27 (68) = happyShift action_16+action_27 (69) = happyShift action_17+action_27 (70) = happyShift action_18+action_27 (71) = happyShift action_19+action_27 (73) = happyShift action_20+action_27 (74) = happyShift action_21+action_27 (75) = happyShift action_22+action_27 (76) = happyShift action_23+action_27 (81) = happyShift action_24+action_27 (82) = happyShift action_25+action_27 (83) = happyShift action_26+action_27 (84) = happyShift action_27+action_27 (85) = happyShift action_28+action_27 (97) = happyShift action_32+action_27 (6) = happyGoto action_31+action_27 (7) = happyGoto action_5+action_27 (8) = happyGoto action_6+action_27 (9) = happyGoto action_7+action_27 (10) = happyGoto action_8+action_27 (11) = happyGoto action_9+action_27 (14) = happyGoto action_10+action_27 (15) = happyGoto action_11+action_27 (16) = happyGoto action_12+action_27 (17) = happyGoto action_13+action_27 (19) = happyGoto action_14+action_27 (21) = happyGoto action_15+action_27 _ = happyReduce_36++action_28 (68) = happyShift action_16+action_28 (69) = happyShift action_17+action_28 (70) = happyShift action_18+action_28 (71) = happyShift action_19+action_28 (73) = happyShift action_20+action_28 (74) = happyShift action_21+action_28 (75) = happyShift action_22+action_28 (76) = happyShift action_23+action_28 (81) = happyShift action_24+action_28 (82) = happyShift action_25+action_28 (83) = happyShift action_26+action_28 (84) = happyShift action_27+action_28 (85) = happyShift action_28+action_28 (97) = happyShift action_30+action_28 (6) = happyGoto action_29+action_28 (7) = happyGoto action_5+action_28 (8) = happyGoto action_6+action_28 (9) = happyGoto action_7+action_28 (10) = happyGoto action_8+action_28 (11) = happyGoto action_9+action_28 (14) = happyGoto action_10+action_28 (15) = happyGoto action_11+action_28 (16) = happyGoto action_12+action_28 (17) = happyGoto action_13+action_28 (19) = happyGoto action_14+action_28 (21) = happyGoto action_15+action_28 _ = happyReduce_36++action_29 _ = happyReduce_14++action_30 (5) = happyGoto action_80+action_30 _ = happyReduce_2++action_31 _ = happyReduce_20++action_32 (5) = happyGoto action_79+action_32 _ = happyReduce_2++action_33 _ = happyReduce_18++action_34 (5) = happyGoto action_78+action_34 _ = happyReduce_2++action_35 _ = happyReduce_16++action_36 (5) = happyGoto action_77+action_36 _ = happyReduce_2++action_37 (65) = happyShift action_39+action_37 (23) = happyGoto action_37+action_37 (24) = happyGoto action_76+action_37 _ = happyReduce_44++action_38 (110) = happyShift action_75+action_38 _ = happyFail (happyExpListPerState 38)++action_39 _ = happyReduce_43++action_40 (106) = happyShift action_74+action_40 _ = happyFail (happyExpListPerState 40)++action_41 (97) = happyShift action_73+action_41 _ = happyFail (happyExpListPerState 41)++action_42 (97) = happyShift action_72+action_42 _ = happyFail (happyExpListPerState 42)++action_43 (5) = happyGoto action_71+action_43 _ = happyReduce_2++action_44 (65) = happyShift action_39+action_44 (12) = happyGoto action_70+action_44 (23) = happyGoto action_49+action_44 _ = happyFail (happyExpListPerState 44)++action_45 (65) = happyShift action_39+action_45 (12) = happyGoto action_69+action_45 (23) = happyGoto action_49+action_45 _ = happyFail (happyExpListPerState 45)++action_46 _ = happyReduce_26++action_47 (99) = happyShift action_66+action_47 (101) = happyShift action_67+action_47 (107) = happyShift action_57+action_47 (111) = happyShift action_58+action_47 (112) = happyShift action_59+action_47 (113) = happyShift action_60+action_47 (115) = happyShift action_61+action_47 (116) = happyShift action_62+action_47 (26) = happyGoto action_63+action_47 (63) = happyGoto action_64+action_47 (64) = happyGoto action_68+action_47 _ = happyReduce_178++action_48 _ = happyReduce_24++action_49 (99) = happyShift action_66+action_49 (101) = happyShift action_67+action_49 (107) = happyShift action_57+action_49 (111) = happyShift action_58+action_49 (112) = happyShift action_59+action_49 (113) = happyShift action_60+action_49 (115) = happyShift action_61+action_49 (116) = happyShift action_62+action_49 (26) = happyGoto action_63+action_49 (63) = happyGoto action_64+action_49 (64) = happyGoto action_65+action_49 _ = happyReduce_178++action_50 _ = happyReduce_22++action_51 (65) = happyShift action_39+action_51 (99) = happyShift action_56+action_51 (107) = happyShift action_57+action_51 (111) = happyShift action_58+action_51 (112) = happyShift action_59+action_51 (113) = happyShift action_60+action_51 (115) = happyShift action_61+action_51 (116) = happyShift action_62+action_51 (18) = happyGoto action_52+action_51 (23) = happyGoto action_53+action_51 (26) = happyGoto action_54+action_51 (35) = happyGoto action_55+action_51 _ = happyFail (happyExpListPerState 51)++action_52 _ = happyReduce_34++action_53 _ = happyReduce_77++action_54 (65) = happyShift action_39+action_54 (23) = happyGoto action_153+action_54 _ = happyFail (happyExpListPerState 54)++action_55 (97) = happyShift action_125+action_55 (99) = happyShift action_151+action_55 (101) = happyShift action_152+action_55 (103) = happyShift action_128+action_55 (107) = happyShift action_57+action_55 (111) = happyShift action_58+action_55 (112) = happyShift action_59+action_55 (113) = happyShift action_60+action_55 (115) = happyShift action_61+action_55 (116) = happyShift action_62+action_55 (26) = happyGoto action_147+action_55 (27) = happyGoto action_148+action_55 (31) = happyGoto action_149+action_55 (32) = happyGoto action_150+action_55 (33) = happyGoto action_110+action_55 (34) = happyGoto action_111+action_55 _ = happyReduce_60++action_56 (65) = happyShift action_39+action_56 (23) = happyGoto action_146+action_56 _ = happyFail (happyExpListPerState 56)++action_57 _ = happyReduce_51++action_58 _ = happyReduce_48++action_59 _ = happyReduce_49++action_60 _ = happyReduce_50++action_61 _ = happyReduce_53++action_62 _ = happyReduce_52++action_63 (101) = happyShift action_145+action_63 _ = happyFail (happyExpListPerState 63)++action_64 (99) = happyShift action_66+action_64 (101) = happyShift action_67+action_64 (107) = happyShift action_57+action_64 (111) = happyShift action_58+action_64 (112) = happyShift action_59+action_64 (113) = happyShift action_60+action_64 (115) = happyShift action_61+action_64 (116) = happyShift action_62+action_64 (26) = happyGoto action_63+action_64 (63) = happyGoto action_64+action_64 (64) = happyGoto action_144+action_64 _ = happyReduce_178++action_65 (97) = happyShift action_142+action_65 (106) = happyShift action_143+action_65 _ = happyFail (happyExpListPerState 65)++action_66 (65) = happyShift action_39+action_66 (23) = happyGoto action_138+action_66 (25) = happyGoto action_141+action_66 _ = happyFail (happyExpListPerState 66)++action_67 (65) = happyShift action_39+action_67 (112) = happyShift action_140+action_67 (23) = happyGoto action_138+action_67 (25) = happyGoto action_139+action_67 _ = happyFail (happyExpListPerState 67)++action_68 (97) = happyShift action_136+action_68 (106) = happyShift action_137+action_68 _ = happyFail (happyExpListPerState 68)++action_69 _ = happyReduce_25++action_70 _ = happyReduce_23++action_71 (68) = happyShift action_16+action_71 (69) = happyShift action_17+action_71 (70) = happyShift action_18+action_71 (71) = happyShift action_19+action_71 (73) = happyShift action_20+action_71 (74) = happyShift action_21+action_71 (75) = happyShift action_22+action_71 (76) = happyShift action_23+action_71 (81) = happyShift action_24+action_71 (82) = happyShift action_25+action_71 (83) = happyShift action_26+action_71 (84) = happyShift action_27+action_71 (85) = happyShift action_28+action_71 (98) = happyShift action_135+action_71 (6) = happyGoto action_4+action_71 (7) = happyGoto action_5+action_71 (8) = happyGoto action_6+action_71 (9) = happyGoto action_7+action_71 (10) = happyGoto action_8+action_71 (11) = happyGoto action_9+action_71 (14) = happyGoto action_10+action_71 (15) = happyGoto action_11+action_71 (16) = happyGoto action_12+action_71 (17) = happyGoto action_13+action_71 (19) = happyGoto action_14+action_71 (21) = happyGoto action_15+action_71 _ = happyReduce_36++action_72 (65) = happyShift action_39+action_72 (23) = happyGoto action_130+action_72 (53) = happyGoto action_131+action_72 (61) = happyGoto action_134+action_72 (62) = happyGoto action_133+action_72 _ = happyReduce_173++action_73 (65) = happyShift action_39+action_73 (23) = happyGoto action_130+action_73 (53) = happyGoto action_131+action_73 (61) = happyGoto action_132+action_73 (62) = happyGoto action_133+action_73 _ = happyReduce_173++action_74 (65) = happyShift action_39+action_74 (66) = happyShift action_93+action_74 (67) = happyShift action_119+action_74 (70) = happyShift action_95+action_74 (77) = happyShift action_120+action_74 (79) = happyShift action_121+action_74 (87) = happyShift action_122+action_74 (88) = happyShift action_123+action_74 (89) = happyShift action_96+action_74 (90) = happyShift action_97+action_74 (91) = happyShift action_124+action_74 (92) = happyShift action_99+action_74 (95) = happyShift action_100+action_74 (97) = happyShift action_125+action_74 (99) = happyShift action_126+action_74 (101) = happyShift action_127+action_74 (103) = happyShift action_128+action_74 (107) = happyShift action_57+action_74 (111) = happyShift action_58+action_74 (112) = happyShift action_59+action_74 (113) = happyShift action_60+action_74 (115) = happyShift action_61+action_74 (116) = happyShift action_62+action_74 (118) = happyShift action_129+action_74 (119) = happyShift action_103+action_74 (23) = happyGoto action_104+action_74 (26) = happyGoto action_105+action_74 (27) = happyGoto action_106+action_74 (29) = happyGoto action_107+action_74 (31) = happyGoto action_108+action_74 (32) = happyGoto action_109+action_74 (33) = happyGoto action_110+action_74 (34) = happyGoto action_111+action_74 (37) = happyGoto action_112+action_74 (40) = happyGoto action_113+action_74 (41) = happyGoto action_114+action_74 (42) = happyGoto action_115+action_74 (43) = happyGoto action_116+action_74 (44) = happyGoto action_117+action_74 (45) = happyGoto action_118+action_74 (46) = happyGoto action_87+action_74 _ = happyReduce_60++action_75 (65) = happyShift action_39+action_75 (66) = happyShift action_93+action_75 (67) = happyShift action_94+action_75 (70) = happyShift action_95+action_75 (89) = happyShift action_96+action_75 (90) = happyShift action_97+action_75 (91) = happyShift action_98+action_75 (92) = happyShift action_99+action_75 (95) = happyShift action_100+action_75 (101) = happyShift action_101+action_75 (107) = happyShift action_102+action_75 (119) = happyShift action_103+action_75 (23) = happyGoto action_85+action_75 (45) = happyGoto action_86+action_75 (46) = happyGoto action_87+action_75 (56) = happyGoto action_88+action_75 (57) = happyGoto action_89+action_75 (58) = happyGoto action_90+action_75 (59) = happyGoto action_91+action_75 (60) = happyGoto action_92+action_75 _ = happyFail (happyExpListPerState 75)++action_76 _ = happyReduce_45++action_77 (68) = happyShift action_16+action_77 (69) = happyShift action_17+action_77 (70) = happyShift action_18+action_77 (71) = happyShift action_19+action_77 (73) = happyShift action_20+action_77 (74) = happyShift action_21+action_77 (75) = happyShift action_22+action_77 (76) = happyShift action_23+action_77 (81) = happyShift action_24+action_77 (82) = happyShift action_25+action_77 (83) = happyShift action_26+action_77 (84) = happyShift action_27+action_77 (85) = happyShift action_28+action_77 (98) = happyShift action_84+action_77 (6) = happyGoto action_4+action_77 (7) = happyGoto action_5+action_77 (8) = happyGoto action_6+action_77 (9) = happyGoto action_7+action_77 (10) = happyGoto action_8+action_77 (11) = happyGoto action_9+action_77 (14) = happyGoto action_10+action_77 (15) = happyGoto action_11+action_77 (16) = happyGoto action_12+action_77 (17) = happyGoto action_13+action_77 (19) = happyGoto action_14+action_77 (21) = happyGoto action_15+action_77 _ = happyReduce_36++action_78 (68) = happyShift action_16+action_78 (69) = happyShift action_17+action_78 (70) = happyShift action_18+action_78 (71) = happyShift action_19+action_78 (73) = happyShift action_20+action_78 (74) = happyShift action_21+action_78 (75) = happyShift action_22+action_78 (76) = happyShift action_23+action_78 (81) = happyShift action_24+action_78 (82) = happyShift action_25+action_78 (83) = happyShift action_26+action_78 (84) = happyShift action_27+action_78 (85) = happyShift action_28+action_78 (98) = happyShift action_83+action_78 (6) = happyGoto action_4+action_78 (7) = happyGoto action_5+action_78 (8) = happyGoto action_6+action_78 (9) = happyGoto action_7+action_78 (10) = happyGoto action_8+action_78 (11) = happyGoto action_9+action_78 (14) = happyGoto action_10+action_78 (15) = happyGoto action_11+action_78 (16) = happyGoto action_12+action_78 (17) = happyGoto action_13+action_78 (19) = happyGoto action_14+action_78 (21) = happyGoto action_15+action_78 _ = happyReduce_36++action_79 (68) = happyShift action_16+action_79 (69) = happyShift action_17+action_79 (70) = happyShift action_18+action_79 (71) = happyShift action_19+action_79 (73) = happyShift action_20+action_79 (74) = happyShift action_21+action_79 (75) = happyShift action_22+action_79 (76) = happyShift action_23+action_79 (81) = happyShift action_24+action_79 (82) = happyShift action_25+action_79 (83) = happyShift action_26+action_79 (84) = happyShift action_27+action_79 (85) = happyShift action_28+action_79 (98) = happyShift action_82+action_79 (6) = happyGoto action_4+action_79 (7) = happyGoto action_5+action_79 (8) = happyGoto action_6+action_79 (9) = happyGoto action_7+action_79 (10) = happyGoto action_8+action_79 (11) = happyGoto action_9+action_79 (14) = happyGoto action_10+action_79 (15) = happyGoto action_11+action_79 (16) = happyGoto action_12+action_79 (17) = happyGoto action_13+action_79 (19) = happyGoto action_14+action_79 (21) = happyGoto action_15+action_79 _ = happyReduce_36++action_80 (68) = happyShift action_16+action_80 (69) = happyShift action_17+action_80 (70) = happyShift action_18+action_80 (71) = happyShift action_19+action_80 (73) = happyShift action_20+action_80 (74) = happyShift action_21+action_80 (75) = happyShift action_22+action_80 (76) = happyShift action_23+action_80 (81) = happyShift action_24+action_80 (82) = happyShift action_25+action_80 (83) = happyShift action_26+action_80 (84) = happyShift action_27+action_80 (85) = happyShift action_28+action_80 (98) = happyShift action_81+action_80 (6) = happyGoto action_4+action_80 (7) = happyGoto action_5+action_80 (8) = happyGoto action_6+action_80 (9) = happyGoto action_7+action_80 (10) = happyGoto action_8+action_80 (11) = happyGoto action_9+action_80 (14) = happyGoto action_10+action_80 (15) = happyGoto action_11+action_80 (16) = happyGoto action_12+action_80 (17) = happyGoto action_13+action_80 (19) = happyGoto action_14+action_80 (21) = happyGoto action_15+action_80 _ = happyReduce_36++action_81 _ = happyReduce_15++action_82 _ = happyReduce_21++action_83 _ = happyReduce_19++action_84 _ = happyReduce_17++action_85 (65) = happyReduce_167+action_85 (68) = happyReduce_167+action_85 (69) = happyReduce_167+action_85 (70) = happyReduce_167+action_85 (71) = happyReduce_167+action_85 (73) = happyReduce_167+action_85 (74) = happyReduce_167+action_85 (75) = happyReduce_167+action_85 (76) = happyReduce_167+action_85 (79) = happyReduce_167+action_85 (81) = happyReduce_167+action_85 (82) = happyReduce_167+action_85 (83) = happyReduce_167+action_85 (84) = happyReduce_167+action_85 (85) = happyReduce_167+action_85 (91) = happyReduce_167+action_85 (93) = happyReduce_167+action_85 (95) = happyShift action_241+action_85 (98) = happyReduce_167+action_85 (101) = happyReduce_167+action_85 (102) = happyReduce_167+action_85 (104) = happyReduce_167+action_85 (105) = happyReduce_167+action_85 (107) = happyReduce_167+action_85 (110) = happyReduce_167+action_85 (120) = happyReduce_167+action_85 _ = happyReduce_129++action_86 (96) = happyShift action_240+action_86 _ = happyFail (happyExpListPerState 86)++action_87 _ = happyReduce_121++action_88 _ = happyReduce_163++action_89 _ = happyReduce_40++action_90 (104) = happyShift action_239+action_90 _ = happyReduce_159++action_91 (65) = happyShift action_39+action_91 (91) = happyShift action_235+action_91 (93) = happyShift action_238+action_91 (101) = happyShift action_236+action_91 (107) = happyShift action_102+action_91 (23) = happyGoto action_233+action_91 (56) = happyGoto action_237+action_91 (60) = happyGoto action_231+action_91 _ = happyReduce_160++action_92 (65) = happyShift action_39+action_92 (91) = happyShift action_235+action_92 (101) = happyShift action_236+action_92 (107) = happyShift action_102+action_92 (23) = happyGoto action_233+action_92 (56) = happyGoto action_234+action_92 (60) = happyGoto action_231+action_92 _ = happyReduce_154++action_93 _ = happyReduce_128++action_94 _ = happyReduce_126++action_95 (97) = happyShift action_232+action_95 _ = happyFail (happyExpListPerState 95)++action_96 _ = happyReduce_118++action_97 _ = happyReduce_120++action_98 (65) = happyShift action_39+action_98 (66) = happyShift action_93+action_98 (67) = happyShift action_94+action_98 (70) = happyShift action_95+action_98 (89) = happyShift action_96+action_98 (90) = happyShift action_97+action_98 (91) = happyShift action_98+action_98 (92) = happyShift action_99+action_98 (95) = happyShift action_100+action_98 (101) = happyShift action_101+action_98 (107) = happyShift action_102+action_98 (119) = happyShift action_103+action_98 (23) = happyGoto action_229+action_98 (45) = happyGoto action_191+action_98 (46) = happyGoto action_87+action_98 (56) = happyGoto action_230+action_98 (60) = happyGoto action_231+action_98 _ = happyFail (happyExpListPerState 98)++action_99 _ = happyReduce_119++action_100 (65) = happyShift action_39+action_100 (66) = happyShift action_93+action_100 (67) = happyShift action_119+action_100 (70) = happyShift action_95+action_100 (77) = happyShift action_120+action_100 (79) = happyShift action_121+action_100 (87) = happyShift action_122+action_100 (88) = happyShift action_123+action_100 (89) = happyShift action_96+action_100 (90) = happyShift action_97+action_100 (91) = happyShift action_124+action_100 (92) = happyShift action_99+action_100 (95) = happyShift action_100+action_100 (97) = happyShift action_125+action_100 (99) = happyShift action_126+action_100 (101) = happyShift action_127+action_100 (103) = happyShift action_128+action_100 (107) = happyShift action_57+action_100 (111) = happyShift action_58+action_100 (112) = happyShift action_59+action_100 (113) = happyShift action_60+action_100 (115) = happyShift action_61+action_100 (116) = happyShift action_62+action_100 (118) = happyShift action_129+action_100 (119) = happyShift action_103+action_100 (23) = happyGoto action_104+action_100 (26) = happyGoto action_105+action_100 (27) = happyGoto action_106+action_100 (29) = happyGoto action_107+action_100 (31) = happyGoto action_108+action_100 (32) = happyGoto action_109+action_100 (33) = happyGoto action_110+action_100 (34) = happyGoto action_111+action_100 (37) = happyGoto action_112+action_100 (38) = happyGoto action_228+action_100 (39) = happyGoto action_200+action_100 (40) = happyGoto action_157+action_100 (41) = happyGoto action_114+action_100 (42) = happyGoto action_115+action_100 (43) = happyGoto action_116+action_100 (44) = happyGoto action_117+action_100 (45) = happyGoto action_118+action_100 (46) = happyGoto action_87+action_100 _ = happyReduce_60++action_101 (65) = happyShift action_39+action_101 (66) = happyShift action_93+action_101 (67) = happyShift action_119+action_101 (70) = happyShift action_95+action_101 (77) = happyShift action_120+action_101 (79) = happyShift action_121+action_101 (87) = happyShift action_122+action_101 (88) = happyShift action_123+action_101 (89) = happyShift action_96+action_101 (90) = happyShift action_97+action_101 (91) = happyShift action_98+action_101 (92) = happyShift action_99+action_101 (95) = happyShift action_100+action_101 (97) = happyShift action_125+action_101 (99) = happyShift action_126+action_101 (101) = happyShift action_225+action_101 (102) = happyShift action_226+action_101 (103) = happyShift action_128+action_101 (107) = happyShift action_227+action_101 (111) = happyShift action_58+action_101 (112) = happyShift action_59+action_101 (113) = happyShift action_60+action_101 (115) = happyShift action_61+action_101 (116) = happyShift action_62+action_101 (118) = happyShift action_129+action_101 (119) = happyShift action_103+action_101 (23) = happyGoto action_85+action_101 (26) = happyGoto action_105+action_101 (27) = happyGoto action_106+action_101 (29) = happyGoto action_107+action_101 (31) = happyGoto action_108+action_101 (32) = happyGoto action_109+action_101 (33) = happyGoto action_110+action_101 (34) = happyGoto action_111+action_101 (37) = happyGoto action_112+action_101 (38) = happyGoto action_185+action_101 (39) = happyGoto action_200+action_101 (40) = happyGoto action_157+action_101 (41) = happyGoto action_114+action_101 (42) = happyGoto action_115+action_101 (43) = happyGoto action_116+action_101 (44) = happyGoto action_117+action_101 (45) = happyGoto action_223+action_101 (46) = happyGoto action_87+action_101 (56) = happyGoto action_88+action_101 (57) = happyGoto action_224+action_101 (58) = happyGoto action_90+action_101 (59) = happyGoto action_91+action_101 (60) = happyGoto action_92+action_101 _ = happyReduce_60++action_102 (65) = happyShift action_39+action_102 (66) = happyShift action_93+action_102 (67) = happyShift action_94+action_102 (70) = happyShift action_95+action_102 (87) = happyShift action_222+action_102 (89) = happyShift action_96+action_102 (90) = happyShift action_97+action_102 (91) = happyShift action_124+action_102 (92) = happyShift action_99+action_102 (95) = happyShift action_100+action_102 (101) = happyShift action_192+action_102 (119) = happyShift action_103+action_102 (23) = happyGoto action_220+action_102 (45) = happyGoto action_221+action_102 (46) = happyGoto action_87+action_102 _ = happyFail (happyExpListPerState 102)++action_103 _ = happyReduce_124++action_104 _ = happyReduce_129++action_105 (65) = happyShift action_39+action_105 (66) = happyShift action_93+action_105 (67) = happyShift action_119+action_105 (70) = happyShift action_95+action_105 (87) = happyShift action_122+action_105 (88) = happyShift action_123+action_105 (89) = happyShift action_96+action_105 (90) = happyShift action_97+action_105 (91) = happyShift action_124+action_105 (92) = happyShift action_99+action_105 (95) = happyShift action_100+action_105 (97) = happyShift action_125+action_105 (99) = happyShift action_218+action_105 (101) = happyShift action_219+action_105 (103) = happyShift action_128+action_105 (107) = happyShift action_57+action_105 (111) = happyShift action_58+action_105 (112) = happyShift action_59+action_105 (113) = happyShift action_60+action_105 (115) = happyShift action_61+action_105 (116) = happyShift action_62+action_105 (119) = happyShift action_103+action_105 (23) = happyGoto action_104+action_105 (26) = happyGoto action_212+action_105 (27) = happyGoto action_213+action_105 (29) = happyGoto action_214+action_105 (32) = happyGoto action_215+action_105 (33) = happyGoto action_110+action_105 (34) = happyGoto action_111+action_105 (41) = happyGoto action_216+action_105 (42) = happyGoto action_115+action_105 (43) = happyGoto action_217+action_105 (44) = happyGoto action_117+action_105 (45) = happyGoto action_118+action_105 (46) = happyGoto action_87+action_105 _ = happyFail (happyExpListPerState 105)++action_106 (95) = happyShift action_210+action_106 (97) = happyShift action_125+action_106 (99) = happyShift action_151+action_106 (101) = happyShift action_152+action_106 (103) = happyShift action_128+action_106 (107) = happyShift action_57+action_106 (108) = happyReduce_87+action_106 (109) = happyShift action_211+action_106 (111) = happyShift action_58+action_106 (112) = happyShift action_59+action_106 (113) = happyShift action_60+action_106 (115) = happyShift action_61+action_106 (116) = happyShift action_62+action_106 (26) = happyGoto action_147+action_106 (27) = happyGoto action_148+action_106 (31) = happyGoto action_163+action_106 (32) = happyGoto action_150+action_106 (33) = happyGoto action_110+action_106 (34) = happyGoto action_111+action_106 _ = happyReduce_107++action_107 (117) = happyReduce_108+action_107 _ = happyReduce_88++action_108 _ = happyReduce_89++action_109 (97) = happyShift action_125+action_109 (99) = happyShift action_151+action_109 (101) = happyShift action_152+action_109 (103) = happyShift action_128+action_109 (107) = happyShift action_57+action_109 (108) = happyReduce_86+action_109 (111) = happyShift action_58+action_109 (112) = happyShift action_59+action_109 (113) = happyShift action_60+action_109 (115) = happyShift action_61+action_109 (116) = happyShift action_62+action_109 (26) = happyGoto action_147+action_109 (27) = happyGoto action_148+action_109 (31) = happyGoto action_160+action_109 (32) = happyGoto action_150+action_109 (33) = happyGoto action_110+action_109 (34) = happyGoto action_111+action_109 _ = happyReduce_106++action_110 _ = happyReduce_69++action_111 _ = happyReduce_70++action_112 (108) = happyShift action_209+action_112 _ = happyFail (happyExpListPerState 112)++action_113 _ = happyReduce_134++action_114 (108) = happyReduce_83+action_114 _ = happyReduce_97++action_115 (117) = happyShift action_208+action_115 _ = happyFail (happyExpListPerState 115)++action_116 (93) = happyShift action_205+action_116 (94) = happyShift action_206+action_116 (112) = happyShift action_207+action_116 (117) = happyReduce_103+action_116 _ = happyReduce_101++action_117 (65) = happyShift action_39+action_117 (66) = happyShift action_93+action_117 (67) = happyShift action_94+action_117 (70) = happyShift action_95+action_117 (87) = happyShift action_203+action_117 (89) = happyShift action_96+action_117 (90) = happyShift action_97+action_117 (91) = happyShift action_124+action_117 (92) = happyShift action_99+action_117 (95) = happyShift action_100+action_117 (101) = happyShift action_192+action_117 (107) = happyShift action_204+action_117 (119) = happyShift action_103+action_117 (23) = happyGoto action_104+action_117 (45) = happyGoto action_202+action_117 (46) = happyGoto action_87+action_117 _ = happyReduce_109++action_118 _ = happyReduce_114++action_119 (115) = happyShift action_201+action_119 _ = happyReduce_126++action_120 (65) = happyShift action_39+action_120 (66) = happyShift action_93+action_120 (67) = happyShift action_119+action_120 (70) = happyShift action_95+action_120 (77) = happyShift action_120+action_120 (79) = happyShift action_121+action_120 (87) = happyShift action_122+action_120 (88) = happyShift action_123+action_120 (89) = happyShift action_96+action_120 (90) = happyShift action_97+action_120 (91) = happyShift action_124+action_120 (92) = happyShift action_99+action_120 (95) = happyShift action_100+action_120 (97) = happyShift action_125+action_120 (99) = happyShift action_126+action_120 (101) = happyShift action_127+action_120 (103) = happyShift action_128+action_120 (107) = happyShift action_57+action_120 (111) = happyShift action_58+action_120 (112) = happyShift action_59+action_120 (113) = happyShift action_60+action_120 (115) = happyShift action_61+action_120 (116) = happyShift action_62+action_120 (118) = happyShift action_129+action_120 (119) = happyShift action_103+action_120 (23) = happyGoto action_104+action_120 (26) = happyGoto action_105+action_120 (27) = happyGoto action_106+action_120 (29) = happyGoto action_107+action_120 (31) = happyGoto action_108+action_120 (32) = happyGoto action_109+action_120 (33) = happyGoto action_110+action_120 (34) = happyGoto action_111+action_120 (37) = happyGoto action_112+action_120 (38) = happyGoto action_199+action_120 (39) = happyGoto action_200+action_120 (40) = happyGoto action_157+action_120 (41) = happyGoto action_114+action_120 (42) = happyGoto action_115+action_120 (43) = happyGoto action_116+action_120 (44) = happyGoto action_117+action_120 (45) = happyGoto action_118+action_120 (46) = happyGoto action_87+action_120 _ = happyReduce_60++action_121 (65) = happyShift action_39+action_121 (99) = happyShift action_198+action_121 (107) = happyShift action_57+action_121 (111) = happyShift action_58+action_121 (112) = happyShift action_59+action_121 (113) = happyShift action_60+action_121 (115) = happyShift action_61+action_121 (116) = happyShift action_62+action_121 (18) = happyGoto action_195+action_121 (23) = happyGoto action_53+action_121 (26) = happyGoto action_196+action_121 (35) = happyGoto action_55+action_121 (36) = happyGoto action_197+action_121 _ = happyFail (happyExpListPerState 121)++action_122 (65) = happyShift action_39+action_122 (66) = happyShift action_93+action_122 (67) = happyShift action_94+action_122 (70) = happyShift action_95+action_122 (89) = happyShift action_96+action_122 (90) = happyShift action_97+action_122 (91) = happyShift action_124+action_122 (92) = happyShift action_99+action_122 (95) = happyShift action_100+action_122 (101) = happyShift action_192+action_122 (119) = happyShift action_103+action_122 (23) = happyGoto action_104+action_122 (45) = happyGoto action_194+action_122 (46) = happyGoto action_87+action_122 _ = happyReduce_111++action_123 (65) = happyShift action_39+action_123 (66) = happyShift action_93+action_123 (67) = happyShift action_94+action_123 (70) = happyShift action_95+action_123 (89) = happyShift action_96+action_123 (90) = happyShift action_97+action_123 (91) = happyShift action_124+action_123 (92) = happyShift action_99+action_123 (95) = happyShift action_100+action_123 (101) = happyShift action_192+action_123 (119) = happyShift action_103+action_123 (23) = happyGoto action_104+action_123 (45) = happyGoto action_193+action_123 (46) = happyGoto action_87+action_123 _ = happyFail (happyExpListPerState 123)++action_124 (65) = happyShift action_39+action_124 (66) = happyShift action_93+action_124 (67) = happyShift action_94+action_124 (70) = happyShift action_95+action_124 (89) = happyShift action_96+action_124 (90) = happyShift action_97+action_124 (91) = happyShift action_124+action_124 (92) = happyShift action_99+action_124 (95) = happyShift action_100+action_124 (101) = happyShift action_192+action_124 (119) = happyShift action_103+action_124 (23) = happyGoto action_104+action_124 (45) = happyGoto action_191+action_124 (46) = happyGoto action_87+action_124 _ = happyFail (happyExpListPerState 124)++action_125 (65) = happyShift action_39+action_125 (23) = happyGoto action_189+action_125 (25) = happyGoto action_190+action_125 _ = happyFail (happyExpListPerState 125)++action_126 (65) = happyShift action_39+action_126 (66) = happyShift action_93+action_126 (67) = happyShift action_119+action_126 (70) = happyShift action_95+action_126 (77) = happyShift action_120+action_126 (79) = happyShift action_121+action_126 (87) = happyShift action_122+action_126 (88) = happyShift action_123+action_126 (89) = happyShift action_96+action_126 (90) = happyShift action_97+action_126 (91) = happyShift action_124+action_126 (92) = happyShift action_99+action_126 (95) = happyShift action_100+action_126 (97) = happyShift action_125+action_126 (99) = happyShift action_126+action_126 (101) = happyShift action_127+action_126 (103) = happyShift action_128+action_126 (107) = happyShift action_57+action_126 (111) = happyShift action_58+action_126 (112) = happyShift action_59+action_126 (113) = happyShift action_60+action_126 (115) = happyShift action_61+action_126 (116) = happyShift action_62+action_126 (118) = happyShift action_129+action_126 (119) = happyShift action_103+action_126 (23) = happyGoto action_187+action_126 (25) = happyGoto action_159+action_126 (26) = happyGoto action_105+action_126 (27) = happyGoto action_106+action_126 (29) = happyGoto action_107+action_126 (31) = happyGoto action_108+action_126 (32) = happyGoto action_109+action_126 (33) = happyGoto action_110+action_126 (34) = happyGoto action_111+action_126 (37) = happyGoto action_112+action_126 (40) = happyGoto action_188+action_126 (41) = happyGoto action_114+action_126 (42) = happyGoto action_115+action_126 (43) = happyGoto action_116+action_126 (44) = happyGoto action_117+action_126 (45) = happyGoto action_118+action_126 (46) = happyGoto action_87+action_126 _ = happyReduce_60++action_127 (65) = happyShift action_39+action_127 (66) = happyShift action_93+action_127 (67) = happyShift action_119+action_127 (70) = happyShift action_95+action_127 (77) = happyShift action_120+action_127 (79) = happyShift action_121+action_127 (87) = happyShift action_122+action_127 (88) = happyShift action_123+action_127 (89) = happyShift action_96+action_127 (90) = happyShift action_97+action_127 (91) = happyShift action_124+action_127 (92) = happyShift action_99+action_127 (95) = happyShift action_100+action_127 (97) = happyShift action_125+action_127 (99) = happyShift action_126+action_127 (101) = happyShift action_127+action_127 (103) = happyShift action_128+action_127 (107) = happyShift action_57+action_127 (111) = happyShift action_58+action_127 (112) = happyShift action_59+action_127 (113) = happyShift action_60+action_127 (115) = happyShift action_61+action_127 (116) = happyShift action_62+action_127 (118) = happyShift action_129+action_127 (119) = happyShift action_103+action_127 (23) = happyGoto action_154+action_127 (26) = happyGoto action_105+action_127 (27) = happyGoto action_106+action_127 (29) = happyGoto action_107+action_127 (30) = happyGoto action_155+action_127 (31) = happyGoto action_108+action_127 (32) = happyGoto action_109+action_127 (33) = happyGoto action_110+action_127 (34) = happyGoto action_111+action_127 (37) = happyGoto action_112+action_127 (38) = happyGoto action_185+action_127 (39) = happyGoto action_186+action_127 (40) = happyGoto action_157+action_127 (41) = happyGoto action_114+action_127 (42) = happyGoto action_115+action_127 (43) = happyGoto action_116+action_127 (44) = happyGoto action_117+action_127 (45) = happyGoto action_118+action_127 (46) = happyGoto action_87+action_127 _ = happyReduce_60++action_128 (65) = happyShift action_39+action_128 (66) = happyShift action_93+action_128 (67) = happyShift action_119+action_128 (70) = happyShift action_95+action_128 (77) = happyShift action_120+action_128 (79) = happyShift action_121+action_128 (87) = happyShift action_122+action_128 (88) = happyShift action_123+action_128 (89) = happyShift action_96+action_128 (90) = happyShift action_97+action_128 (91) = happyShift action_124+action_128 (92) = happyShift action_99+action_128 (95) = happyShift action_100+action_128 (97) = happyShift action_125+action_128 (99) = happyShift action_126+action_128 (101) = happyShift action_127+action_128 (103) = happyShift action_128+action_128 (107) = happyShift action_57+action_128 (111) = happyShift action_58+action_128 (112) = happyShift action_59+action_128 (113) = happyShift action_60+action_128 (115) = happyShift action_61+action_128 (116) = happyShift action_62+action_128 (118) = happyShift action_129+action_128 (119) = happyShift action_103+action_128 (23) = happyGoto action_104+action_128 (26) = happyGoto action_105+action_128 (27) = happyGoto action_106+action_128 (28) = happyGoto action_183+action_128 (29) = happyGoto action_107+action_128 (31) = happyGoto action_108+action_128 (32) = happyGoto action_109+action_128 (33) = happyGoto action_110+action_128 (34) = happyGoto action_111+action_128 (37) = happyGoto action_112+action_128 (40) = happyGoto action_184+action_128 (41) = happyGoto action_114+action_128 (42) = happyGoto action_115+action_128 (43) = happyGoto action_116+action_128 (44) = happyGoto action_117+action_128 (45) = happyGoto action_118+action_128 (46) = happyGoto action_87+action_128 _ = happyReduce_60++action_129 (65) = happyShift action_39+action_129 (23) = happyGoto action_37+action_129 (24) = happyGoto action_182+action_129 _ = happyFail (happyExpListPerState 129)++action_130 (54) = happyGoto action_180+action_130 (55) = happyGoto action_181+action_130 _ = happyReduce_149++action_131 _ = happyReduce_172++action_132 (98) = happyShift action_179+action_132 _ = happyFail (happyExpListPerState 132)++action_133 (105) = happyShift action_178+action_133 _ = happyReduce_169++action_134 (98) = happyShift action_177+action_134 _ = happyFail (happyExpListPerState 134)++action_135 _ = happyReduce_33++action_136 (65) = happyShift action_39+action_136 (23) = happyGoto action_168+action_136 (50) = happyGoto action_176+action_136 _ = happyFail (happyExpListPerState 136)++action_137 (65) = happyShift action_39+action_137 (66) = happyShift action_93+action_137 (67) = happyShift action_119+action_137 (70) = happyShift action_95+action_137 (77) = happyShift action_120+action_137 (79) = happyShift action_121+action_137 (87) = happyShift action_122+action_137 (88) = happyShift action_123+action_137 (89) = happyShift action_96+action_137 (90) = happyShift action_97+action_137 (91) = happyShift action_124+action_137 (92) = happyShift action_99+action_137 (95) = happyShift action_100+action_137 (97) = happyShift action_125+action_137 (99) = happyShift action_126+action_137 (101) = happyShift action_127+action_137 (103) = happyShift action_128+action_137 (107) = happyShift action_57+action_137 (111) = happyShift action_58+action_137 (112) = happyShift action_59+action_137 (113) = happyShift action_60+action_137 (115) = happyShift action_61+action_137 (116) = happyShift action_62+action_137 (118) = happyShift action_129+action_137 (119) = happyShift action_103+action_137 (23) = happyGoto action_104+action_137 (26) = happyGoto action_105+action_137 (27) = happyGoto action_106+action_137 (29) = happyGoto action_107+action_137 (31) = happyGoto action_108+action_137 (32) = happyGoto action_109+action_137 (33) = happyGoto action_110+action_137 (34) = happyGoto action_111+action_137 (37) = happyGoto action_112+action_137 (40) = happyGoto action_175+action_137 (41) = happyGoto action_114+action_137 (42) = happyGoto action_115+action_137 (43) = happyGoto action_116+action_137 (44) = happyGoto action_117+action_137 (45) = happyGoto action_118+action_137 (46) = happyGoto action_87+action_137 _ = happyReduce_60++action_138 (104) = happyShift action_174+action_138 _ = happyReduce_46++action_139 (106) = happyShift action_173+action_139 _ = happyFail (happyExpListPerState 139)++action_140 (65) = happyShift action_39+action_140 (23) = happyGoto action_138+action_140 (25) = happyGoto action_172+action_140 _ = happyFail (happyExpListPerState 140)++action_141 (106) = happyShift action_171+action_141 _ = happyFail (happyExpListPerState 141)++action_142 (65) = happyShift action_39+action_142 (23) = happyGoto action_168+action_142 (50) = happyGoto action_169+action_142 (51) = happyGoto action_170+action_142 _ = happyReduce_140++action_143 (65) = happyShift action_39+action_143 (66) = happyShift action_93+action_143 (67) = happyShift action_119+action_143 (70) = happyShift action_95+action_143 (77) = happyShift action_120+action_143 (79) = happyShift action_121+action_143 (87) = happyShift action_122+action_143 (88) = happyShift action_123+action_143 (89) = happyShift action_96+action_143 (90) = happyShift action_97+action_143 (91) = happyShift action_124+action_143 (92) = happyShift action_99+action_143 (95) = happyShift action_100+action_143 (97) = happyShift action_125+action_143 (99) = happyShift action_126+action_143 (101) = happyShift action_127+action_143 (103) = happyShift action_128+action_143 (107) = happyShift action_57+action_143 (111) = happyShift action_58+action_143 (112) = happyShift action_59+action_143 (113) = happyShift action_60+action_143 (115) = happyShift action_61+action_143 (116) = happyShift action_62+action_143 (118) = happyShift action_129+action_143 (119) = happyShift action_103+action_143 (23) = happyGoto action_104+action_143 (26) = happyGoto action_105+action_143 (27) = happyGoto action_106+action_143 (29) = happyGoto action_107+action_143 (31) = happyGoto action_108+action_143 (32) = happyGoto action_109+action_143 (33) = happyGoto action_110+action_143 (34) = happyGoto action_111+action_143 (37) = happyGoto action_112+action_143 (40) = happyGoto action_167+action_143 (41) = happyGoto action_114+action_143 (42) = happyGoto action_115+action_143 (43) = happyGoto action_116+action_143 (44) = happyGoto action_117+action_143 (45) = happyGoto action_118+action_143 (46) = happyGoto action_87+action_143 _ = happyReduce_60++action_144 _ = happyReduce_179++action_145 (65) = happyShift action_39+action_145 (23) = happyGoto action_138+action_145 (25) = happyGoto action_166+action_145 _ = happyFail (happyExpListPerState 145)++action_146 (100) = happyShift action_165+action_146 _ = happyFail (happyExpListPerState 146)++action_147 (101) = happyShift action_164+action_147 _ = happyFail (happyExpListPerState 147)++action_148 (97) = happyShift action_125+action_148 (99) = happyShift action_151+action_148 (101) = happyShift action_152+action_148 (103) = happyShift action_128+action_148 (107) = happyShift action_57+action_148 (111) = happyShift action_58+action_148 (112) = happyShift action_59+action_148 (113) = happyShift action_60+action_148 (115) = happyShift action_61+action_148 (116) = happyShift action_62+action_148 (26) = happyGoto action_147+action_148 (27) = happyGoto action_148+action_148 (31) = happyGoto action_163+action_148 (32) = happyGoto action_150+action_148 (33) = happyGoto action_110+action_148 (34) = happyGoto action_111+action_148 _ = happyReduce_60++action_149 (106) = happyShift action_162+action_149 (20) = happyGoto action_161+action_149 _ = happyReduce_38++action_150 (97) = happyShift action_125+action_150 (99) = happyShift action_151+action_150 (101) = happyShift action_152+action_150 (103) = happyShift action_128+action_150 (107) = happyShift action_57+action_150 (111) = happyShift action_58+action_150 (112) = happyShift action_59+action_150 (113) = happyShift action_60+action_150 (115) = happyShift action_61+action_150 (116) = happyShift action_62+action_150 (26) = happyGoto action_147+action_150 (27) = happyGoto action_148+action_150 (31) = happyGoto action_160+action_150 (32) = happyGoto action_150+action_150 (33) = happyGoto action_110+action_150 (34) = happyGoto action_111+action_150 _ = happyReduce_60++action_151 (65) = happyShift action_39+action_151 (23) = happyGoto action_158+action_151 (25) = happyGoto action_159+action_151 _ = happyFail (happyExpListPerState 151)++action_152 (65) = happyShift action_39+action_152 (66) = happyShift action_93+action_152 (67) = happyShift action_119+action_152 (70) = happyShift action_95+action_152 (77) = happyShift action_120+action_152 (79) = happyShift action_121+action_152 (87) = happyShift action_122+action_152 (88) = happyShift action_123+action_152 (89) = happyShift action_96+action_152 (90) = happyShift action_97+action_152 (91) = happyShift action_124+action_152 (92) = happyShift action_99+action_152 (95) = happyShift action_100+action_152 (97) = happyShift action_125+action_152 (99) = happyShift action_126+action_152 (101) = happyShift action_127+action_152 (103) = happyShift action_128+action_152 (107) = happyShift action_57+action_152 (111) = happyShift action_58+action_152 (112) = happyShift action_59+action_152 (113) = happyShift action_60+action_152 (115) = happyShift action_61+action_152 (116) = happyShift action_62+action_152 (118) = happyShift action_129+action_152 (119) = happyShift action_103+action_152 (23) = happyGoto action_154+action_152 (26) = happyGoto action_105+action_152 (27) = happyGoto action_106+action_152 (29) = happyGoto action_107+action_152 (30) = happyGoto action_155+action_152 (31) = happyGoto action_108+action_152 (32) = happyGoto action_109+action_152 (33) = happyGoto action_110+action_152 (34) = happyGoto action_111+action_152 (37) = happyGoto action_112+action_152 (39) = happyGoto action_156+action_152 (40) = happyGoto action_157+action_152 (41) = happyGoto action_114+action_152 (42) = happyGoto action_115+action_152 (43) = happyGoto action_116+action_152 (44) = happyGoto action_117+action_152 (45) = happyGoto action_118+action_152 (46) = happyGoto action_87+action_152 _ = happyReduce_60++action_153 _ = happyReduce_79++action_154 (95) = happyShift action_303+action_154 (109) = happyShift action_304+action_154 _ = happyReduce_129++action_155 (106) = happyShift action_302+action_155 _ = happyFail (happyExpListPerState 155)++action_156 _ = happyReduce_59++action_157 (104) = happyShift action_301+action_157 _ = happyReduce_91++action_158 (95) = happyShift action_275+action_158 (104) = happyShift action_174+action_158 (109) = happyShift action_276+action_158 _ = happyReduce_46++action_159 (106) = happyShift action_300+action_159 _ = happyFail (happyExpListPerState 159)++action_160 _ = happyReduce_61++action_161 (110) = happyShift action_299+action_161 _ = happyFail (happyExpListPerState 161)++action_162 (65) = happyShift action_39+action_162 (66) = happyShift action_93+action_162 (67) = happyShift action_119+action_162 (70) = happyShift action_95+action_162 (77) = happyShift action_120+action_162 (79) = happyShift action_121+action_162 (87) = happyShift action_122+action_162 (88) = happyShift action_123+action_162 (89) = happyShift action_96+action_162 (90) = happyShift action_97+action_162 (91) = happyShift action_124+action_162 (92) = happyShift action_99+action_162 (95) = happyShift action_100+action_162 (97) = happyShift action_125+action_162 (99) = happyShift action_126+action_162 (101) = happyShift action_127+action_162 (103) = happyShift action_128+action_162 (107) = happyShift action_57+action_162 (111) = happyShift action_58+action_162 (112) = happyShift action_59+action_162 (113) = happyShift action_60+action_162 (115) = happyShift action_61+action_162 (116) = happyShift action_62+action_162 (118) = happyShift action_129+action_162 (119) = happyShift action_103+action_162 (23) = happyGoto action_104+action_162 (26) = happyGoto action_105+action_162 (27) = happyGoto action_106+action_162 (29) = happyGoto action_107+action_162 (31) = happyGoto action_108+action_162 (32) = happyGoto action_109+action_162 (33) = happyGoto action_110+action_162 (34) = happyGoto action_111+action_162 (37) = happyGoto action_112+action_162 (40) = happyGoto action_298+action_162 (41) = happyGoto action_114+action_162 (42) = happyGoto action_115+action_162 (43) = happyGoto action_116+action_162 (44) = happyGoto action_117+action_162 (45) = happyGoto action_118+action_162 (46) = happyGoto action_87+action_162 _ = happyReduce_60++action_163 _ = happyReduce_62++action_164 (65) = happyShift action_39+action_164 (66) = happyShift action_93+action_164 (67) = happyShift action_119+action_164 (70) = happyShift action_95+action_164 (77) = happyShift action_120+action_164 (79) = happyShift action_121+action_164 (87) = happyShift action_122+action_164 (88) = happyShift action_123+action_164 (89) = happyShift action_96+action_164 (90) = happyShift action_97+action_164 (91) = happyShift action_124+action_164 (92) = happyShift action_99+action_164 (95) = happyShift action_100+action_164 (97) = happyShift action_125+action_164 (99) = happyShift action_126+action_164 (101) = happyShift action_127+action_164 (103) = happyShift action_128+action_164 (107) = happyShift action_57+action_164 (111) = happyShift action_58+action_164 (112) = happyShift action_59+action_164 (113) = happyShift action_60+action_164 (115) = happyShift action_61+action_164 (116) = happyShift action_62+action_164 (118) = happyShift action_129+action_164 (119) = happyShift action_103+action_164 (23) = happyGoto action_296+action_164 (26) = happyGoto action_105+action_164 (27) = happyGoto action_106+action_164 (29) = happyGoto action_107+action_164 (30) = happyGoto action_297+action_164 (31) = happyGoto action_108+action_164 (32) = happyGoto action_109+action_164 (33) = happyGoto action_110+action_164 (34) = happyGoto action_111+action_164 (37) = happyGoto action_112+action_164 (39) = happyGoto action_156+action_164 (40) = happyGoto action_157+action_164 (41) = happyGoto action_114+action_164 (42) = happyGoto action_115+action_164 (43) = happyGoto action_116+action_164 (44) = happyGoto action_117+action_164 (45) = happyGoto action_118+action_164 (46) = happyGoto action_87+action_164 _ = happyReduce_60++action_165 _ = happyReduce_78++action_166 (106) = happyShift action_295+action_166 _ = happyFail (happyExpListPerState 166)++action_167 (97) = happyShift action_294+action_167 _ = happyFail (happyExpListPerState 167)++action_168 (97) = happyShift action_125+action_168 (99) = happyShift action_151+action_168 (101) = happyShift action_152+action_168 (103) = happyShift action_128+action_168 (107) = happyShift action_57+action_168 (111) = happyShift action_58+action_168 (112) = happyShift action_59+action_168 (113) = happyShift action_60+action_168 (115) = happyShift action_61+action_168 (116) = happyShift action_62+action_168 (26) = happyGoto action_147+action_168 (27) = happyGoto action_148+action_168 (31) = happyGoto action_293+action_168 (32) = happyGoto action_150+action_168 (33) = happyGoto action_110+action_168 (34) = happyGoto action_111+action_168 _ = happyReduce_60++action_169 _ = happyReduce_139++action_170 (98) = happyShift action_291+action_170 (105) = happyShift action_292+action_170 _ = happyFail (happyExpListPerState 170)++action_171 (65) = happyShift action_39+action_171 (66) = happyShift action_93+action_171 (67) = happyShift action_119+action_171 (70) = happyShift action_95+action_171 (77) = happyShift action_120+action_171 (79) = happyShift action_121+action_171 (87) = happyShift action_122+action_171 (88) = happyShift action_123+action_171 (89) = happyShift action_96+action_171 (90) = happyShift action_97+action_171 (91) = happyShift action_124+action_171 (92) = happyShift action_99+action_171 (95) = happyShift action_100+action_171 (97) = happyShift action_125+action_171 (99) = happyShift action_126+action_171 (101) = happyShift action_127+action_171 (103) = happyShift action_128+action_171 (107) = happyShift action_57+action_171 (111) = happyShift action_58+action_171 (112) = happyShift action_59+action_171 (113) = happyShift action_60+action_171 (115) = happyShift action_61+action_171 (116) = happyShift action_62+action_171 (118) = happyShift action_129+action_171 (119) = happyShift action_103+action_171 (23) = happyGoto action_104+action_171 (26) = happyGoto action_105+action_171 (27) = happyGoto action_106+action_171 (29) = happyGoto action_107+action_171 (31) = happyGoto action_108+action_171 (32) = happyGoto action_109+action_171 (33) = happyGoto action_110+action_171 (34) = happyGoto action_111+action_171 (37) = happyGoto action_112+action_171 (40) = happyGoto action_290+action_171 (41) = happyGoto action_114+action_171 (42) = happyGoto action_115+action_171 (43) = happyGoto action_116+action_171 (44) = happyGoto action_117+action_171 (45) = happyGoto action_118+action_171 (46) = happyGoto action_87+action_171 _ = happyReduce_60++action_172 (106) = happyShift action_289+action_172 _ = happyFail (happyExpListPerState 172)++action_173 (65) = happyShift action_39+action_173 (66) = happyShift action_93+action_173 (67) = happyShift action_119+action_173 (70) = happyShift action_95+action_173 (77) = happyShift action_120+action_173 (79) = happyShift action_121+action_173 (87) = happyShift action_122+action_173 (88) = happyShift action_123+action_173 (89) = happyShift action_96+action_173 (90) = happyShift action_97+action_173 (91) = happyShift action_124+action_173 (92) = happyShift action_99+action_173 (95) = happyShift action_100+action_173 (97) = happyShift action_125+action_173 (99) = happyShift action_126+action_173 (101) = happyShift action_127+action_173 (103) = happyShift action_128+action_173 (107) = happyShift action_57+action_173 (111) = happyShift action_58+action_173 (112) = happyShift action_59+action_173 (113) = happyShift action_60+action_173 (115) = happyShift action_61+action_173 (116) = happyShift action_62+action_173 (118) = happyShift action_129+action_173 (119) = happyShift action_103+action_173 (23) = happyGoto action_104+action_173 (26) = happyGoto action_105+action_173 (27) = happyGoto action_106+action_173 (29) = happyGoto action_107+action_173 (31) = happyGoto action_108+action_173 (32) = happyGoto action_109+action_173 (33) = happyGoto action_110+action_173 (34) = happyGoto action_111+action_173 (37) = happyGoto action_112+action_173 (40) = happyGoto action_288+action_173 (41) = happyGoto action_114+action_173 (42) = happyGoto action_115+action_173 (43) = happyGoto action_116+action_173 (44) = happyGoto action_117+action_173 (45) = happyGoto action_118+action_173 (46) = happyGoto action_87+action_173 _ = happyReduce_60++action_174 (65) = happyShift action_39+action_174 (23) = happyGoto action_138+action_174 (25) = happyGoto action_287+action_174 _ = happyFail (happyExpListPerState 174)++action_175 (97) = happyShift action_286+action_175 _ = happyFail (happyExpListPerState 175)++action_176 (98) = happyShift action_285+action_176 _ = happyFail (happyExpListPerState 176)++action_177 _ = happyReduce_31++action_178 (65) = happyShift action_39+action_178 (23) = happyGoto action_130+action_178 (53) = happyGoto action_284+action_178 _ = happyReduce_171++action_179 _ = happyReduce_32++action_180 (110) = happyShift action_283+action_180 _ = happyReduce_147++action_181 (65) = happyShift action_39+action_181 (91) = happyShift action_235+action_181 (93) = happyShift action_282+action_181 (101) = happyShift action_236+action_181 (107) = happyShift action_102+action_181 (23) = happyGoto action_233+action_181 (56) = happyGoto action_281+action_181 (60) = happyGoto action_231+action_181 _ = happyReduce_148++action_182 (108) = happyShift action_280+action_182 _ = happyFail (happyExpListPerState 182)++action_183 _ = happyReduce_54++action_184 (103) = happyShift action_278+action_184 (104) = happyShift action_279+action_184 _ = happyFail (happyExpListPerState 184)++action_185 (102) = happyShift action_277+action_185 _ = happyFail (happyExpListPerState 185)++action_186 (106) = happyReduce_59+action_186 _ = happyReduce_90++action_187 (95) = happyShift action_275+action_187 (104) = happyShift action_174+action_187 (106) = happyReduce_46+action_187 (109) = happyShift action_276+action_187 _ = happyReduce_129++action_188 (100) = happyShift action_274+action_188 _ = happyFail (happyExpListPerState 188)++action_189 (95) = happyShift action_272+action_189 (104) = happyShift action_174+action_189 (109) = happyShift action_273+action_189 _ = happyReduce_46++action_190 (106) = happyShift action_271+action_190 _ = happyFail (happyExpListPerState 190)++action_191 _ = happyReduce_125++action_192 (65) = happyShift action_39+action_192 (66) = happyShift action_93+action_192 (67) = happyShift action_119+action_192 (70) = happyShift action_95+action_192 (77) = happyShift action_120+action_192 (79) = happyShift action_121+action_192 (87) = happyShift action_122+action_192 (88) = happyShift action_123+action_192 (89) = happyShift action_96+action_192 (90) = happyShift action_97+action_192 (91) = happyShift action_124+action_192 (92) = happyShift action_99+action_192 (95) = happyShift action_100+action_192 (97) = happyShift action_125+action_192 (99) = happyShift action_126+action_192 (101) = happyShift action_127+action_192 (103) = happyShift action_128+action_192 (107) = happyShift action_57+action_192 (111) = happyShift action_58+action_192 (112) = happyShift action_59+action_192 (113) = happyShift action_60+action_192 (115) = happyShift action_61+action_192 (116) = happyShift action_62+action_192 (118) = happyShift action_129+action_192 (119) = happyShift action_103+action_192 (23) = happyGoto action_104+action_192 (26) = happyGoto action_105+action_192 (27) = happyGoto action_106+action_192 (29) = happyGoto action_107+action_192 (31) = happyGoto action_108+action_192 (32) = happyGoto action_109+action_192 (33) = happyGoto action_110+action_192 (34) = happyGoto action_111+action_192 (37) = happyGoto action_112+action_192 (38) = happyGoto action_185+action_192 (39) = happyGoto action_200+action_192 (40) = happyGoto action_157+action_192 (41) = happyGoto action_114+action_192 (42) = happyGoto action_115+action_192 (43) = happyGoto action_116+action_192 (44) = happyGoto action_117+action_192 (45) = happyGoto action_118+action_192 (46) = happyGoto action_87+action_192 _ = happyReduce_60++action_193 _ = happyReduce_110++action_194 _ = happyReduce_112++action_195 _ = happyReduce_80++action_196 (65) = happyShift action_39+action_196 (101) = happyShift action_270+action_196 (23) = happyGoto action_153+action_196 _ = happyFail (happyExpListPerState 196)++action_197 (80) = happyShift action_269+action_197 _ = happyFail (happyExpListPerState 197)++action_198 (65) = happyShift action_39+action_198 (23) = happyGoto action_268+action_198 _ = happyFail (happyExpListPerState 198)++action_199 (106) = happyShift action_162+action_199 (20) = happyGoto action_267+action_199 _ = happyReduce_38++action_200 _ = happyReduce_90++action_201 (65) = happyShift action_39+action_201 (66) = happyShift action_93+action_201 (67) = happyShift action_119+action_201 (70) = happyShift action_95+action_201 (87) = happyShift action_122+action_201 (88) = happyShift action_123+action_201 (89) = happyShift action_96+action_201 (90) = happyShift action_97+action_201 (91) = happyShift action_124+action_201 (92) = happyShift action_99+action_201 (95) = happyShift action_100+action_201 (101) = happyShift action_192+action_201 (119) = happyShift action_103+action_201 (23) = happyGoto action_104+action_201 (43) = happyGoto action_266+action_201 (44) = happyGoto action_117+action_201 (45) = happyGoto action_118+action_201 (46) = happyGoto action_87+action_201 _ = happyFail (happyExpListPerState 201)++action_202 _ = happyReduce_115++action_203 _ = happyReduce_117++action_204 (65) = happyShift action_39+action_204 (23) = happyGoto action_265+action_204 _ = happyFail (happyExpListPerState 204)++action_205 (65) = happyShift action_39+action_205 (66) = happyShift action_93+action_205 (67) = happyShift action_119+action_205 (70) = happyShift action_95+action_205 (77) = happyShift action_120+action_205 (79) = happyShift action_121+action_205 (87) = happyShift action_122+action_205 (88) = happyShift action_123+action_205 (89) = happyShift action_96+action_205 (90) = happyShift action_97+action_205 (91) = happyShift action_124+action_205 (92) = happyShift action_99+action_205 (95) = happyShift action_100+action_205 (97) = happyShift action_125+action_205 (99) = happyShift action_126+action_205 (101) = happyShift action_127+action_205 (103) = happyShift action_128+action_205 (107) = happyShift action_57+action_205 (111) = happyShift action_58+action_205 (112) = happyShift action_59+action_205 (113) = happyShift action_60+action_205 (115) = happyShift action_61+action_205 (116) = happyShift action_62+action_205 (118) = happyShift action_129+action_205 (119) = happyShift action_103+action_205 (23) = happyGoto action_104+action_205 (26) = happyGoto action_105+action_205 (27) = happyGoto action_106+action_205 (29) = happyGoto action_107+action_205 (31) = happyGoto action_108+action_205 (32) = happyGoto action_109+action_205 (33) = happyGoto action_110+action_205 (34) = happyGoto action_111+action_205 (37) = happyGoto action_112+action_205 (40) = happyGoto action_264+action_205 (41) = happyGoto action_114+action_205 (42) = happyGoto action_115+action_205 (43) = happyGoto action_116+action_205 (44) = happyGoto action_117+action_205 (45) = happyGoto action_118+action_205 (46) = happyGoto action_87+action_205 _ = happyReduce_60++action_206 (65) = happyShift action_39+action_206 (66) = happyShift action_93+action_206 (67) = happyShift action_119+action_206 (70) = happyShift action_95+action_206 (77) = happyShift action_120+action_206 (79) = happyShift action_121+action_206 (87) = happyShift action_122+action_206 (88) = happyShift action_123+action_206 (89) = happyShift action_96+action_206 (90) = happyShift action_97+action_206 (91) = happyShift action_124+action_206 (92) = happyShift action_99+action_206 (95) = happyShift action_100+action_206 (97) = happyShift action_125+action_206 (99) = happyShift action_126+action_206 (101) = happyShift action_127+action_206 (103) = happyShift action_128+action_206 (107) = happyShift action_57+action_206 (111) = happyShift action_58+action_206 (112) = happyShift action_59+action_206 (113) = happyShift action_60+action_206 (115) = happyShift action_61+action_206 (116) = happyShift action_62+action_206 (118) = happyShift action_129+action_206 (119) = happyShift action_103+action_206 (23) = happyGoto action_104+action_206 (26) = happyGoto action_105+action_206 (27) = happyGoto action_106+action_206 (29) = happyGoto action_107+action_206 (31) = happyGoto action_108+action_206 (32) = happyGoto action_109+action_206 (33) = happyGoto action_110+action_206 (34) = happyGoto action_111+action_206 (37) = happyGoto action_112+action_206 (40) = happyGoto action_263+action_206 (41) = happyGoto action_114+action_206 (42) = happyGoto action_115+action_206 (43) = happyGoto action_116+action_206 (44) = happyGoto action_117+action_206 (45) = happyGoto action_118+action_206 (46) = happyGoto action_87+action_206 _ = happyReduce_60++action_207 (65) = happyShift action_39+action_207 (66) = happyShift action_93+action_207 (67) = happyShift action_119+action_207 (70) = happyShift action_95+action_207 (77) = happyShift action_120+action_207 (79) = happyShift action_121+action_207 (87) = happyShift action_122+action_207 (88) = happyShift action_123+action_207 (89) = happyShift action_96+action_207 (90) = happyShift action_97+action_207 (91) = happyShift action_124+action_207 (92) = happyShift action_99+action_207 (95) = happyShift action_100+action_207 (97) = happyShift action_125+action_207 (99) = happyShift action_126+action_207 (101) = happyShift action_127+action_207 (103) = happyShift action_128+action_207 (107) = happyShift action_57+action_207 (111) = happyShift action_58+action_207 (112) = happyShift action_59+action_207 (113) = happyShift action_60+action_207 (115) = happyShift action_61+action_207 (116) = happyShift action_62+action_207 (118) = happyShift action_129+action_207 (119) = happyShift action_103+action_207 (23) = happyGoto action_104+action_207 (26) = happyGoto action_105+action_207 (27) = happyGoto action_106+action_207 (29) = happyGoto action_107+action_207 (31) = happyGoto action_108+action_207 (32) = happyGoto action_109+action_207 (33) = happyGoto action_110+action_207 (34) = happyGoto action_111+action_207 (37) = happyGoto action_112+action_207 (40) = happyGoto action_262+action_207 (41) = happyGoto action_114+action_207 (42) = happyGoto action_115+action_207 (43) = happyGoto action_116+action_207 (44) = happyGoto action_117+action_207 (45) = happyGoto action_118+action_207 (46) = happyGoto action_87+action_207 _ = happyReduce_60++action_208 (65) = happyShift action_39+action_208 (66) = happyShift action_93+action_208 (67) = happyShift action_119+action_208 (70) = happyShift action_95+action_208 (87) = happyShift action_122+action_208 (88) = happyShift action_123+action_208 (89) = happyShift action_96+action_208 (90) = happyShift action_97+action_208 (91) = happyShift action_124+action_208 (92) = happyShift action_99+action_208 (95) = happyShift action_100+action_208 (97) = happyShift action_125+action_208 (99) = happyShift action_218+action_208 (101) = happyShift action_127+action_208 (103) = happyShift action_128+action_208 (107) = happyShift action_57+action_208 (111) = happyShift action_58+action_208 (112) = happyShift action_59+action_208 (113) = happyShift action_60+action_208 (115) = happyShift action_61+action_208 (116) = happyShift action_62+action_208 (119) = happyShift action_103+action_208 (23) = happyGoto action_104+action_208 (26) = happyGoto action_212+action_208 (27) = happyGoto action_213+action_208 (29) = happyGoto action_214+action_208 (32) = happyGoto action_215+action_208 (33) = happyGoto action_110+action_208 (34) = happyGoto action_111+action_208 (41) = happyGoto action_260+action_208 (42) = happyGoto action_115+action_208 (43) = happyGoto action_261+action_208 (44) = happyGoto action_117+action_208 (45) = happyGoto action_118+action_208 (46) = happyGoto action_87+action_208 _ = happyFail (happyExpListPerState 208)++action_209 (65) = happyShift action_39+action_209 (66) = happyShift action_93+action_209 (67) = happyShift action_119+action_209 (70) = happyShift action_95+action_209 (77) = happyShift action_120+action_209 (79) = happyShift action_121+action_209 (87) = happyShift action_122+action_209 (88) = happyShift action_123+action_209 (89) = happyShift action_96+action_209 (90) = happyShift action_97+action_209 (91) = happyShift action_124+action_209 (92) = happyShift action_99+action_209 (95) = happyShift action_100+action_209 (97) = happyShift action_125+action_209 (99) = happyShift action_126+action_209 (101) = happyShift action_127+action_209 (103) = happyShift action_128+action_209 (107) = happyShift action_57+action_209 (111) = happyShift action_58+action_209 (112) = happyShift action_59+action_209 (113) = happyShift action_60+action_209 (115) = happyShift action_61+action_209 (116) = happyShift action_62+action_209 (118) = happyShift action_129+action_209 (119) = happyShift action_103+action_209 (23) = happyGoto action_104+action_209 (26) = happyGoto action_105+action_209 (27) = happyGoto action_106+action_209 (29) = happyGoto action_107+action_209 (31) = happyGoto action_108+action_209 (32) = happyGoto action_109+action_209 (33) = happyGoto action_110+action_209 (34) = happyGoto action_111+action_209 (37) = happyGoto action_112+action_209 (40) = happyGoto action_259+action_209 (41) = happyGoto action_114+action_209 (42) = happyGoto action_115+action_209 (43) = happyGoto action_116+action_209 (44) = happyGoto action_117+action_209 (45) = happyGoto action_118+action_209 (46) = happyGoto action_87+action_209 _ = happyReduce_60++action_210 (103) = happyShift action_128+action_210 (27) = happyGoto action_258+action_210 _ = happyFail (happyExpListPerState 210)++action_211 (103) = happyShift action_128+action_211 (27) = happyGoto action_257+action_211 _ = happyFail (happyExpListPerState 211)++action_212 (65) = happyShift action_39+action_212 (66) = happyShift action_93+action_212 (67) = happyShift action_119+action_212 (70) = happyShift action_95+action_212 (87) = happyShift action_122+action_212 (88) = happyShift action_123+action_212 (89) = happyShift action_96+action_212 (90) = happyShift action_97+action_212 (91) = happyShift action_124+action_212 (92) = happyShift action_99+action_212 (95) = happyShift action_100+action_212 (101) = happyShift action_256+action_212 (119) = happyShift action_103+action_212 (23) = happyGoto action_104+action_212 (43) = happyGoto action_255+action_212 (44) = happyGoto action_117+action_212 (45) = happyGoto action_118+action_212 (46) = happyGoto action_87+action_212 _ = happyFail (happyExpListPerState 212)++action_213 (95) = happyShift action_210+action_213 (109) = happyShift action_211+action_213 _ = happyReduce_107++action_214 _ = happyReduce_108++action_215 _ = happyReduce_106++action_216 _ = happyReduce_85++action_217 (117) = happyReduce_105+action_217 _ = happyReduce_101++action_218 (65) = happyShift action_39+action_218 (66) = happyShift action_93+action_218 (67) = happyShift action_119+action_218 (70) = happyShift action_95+action_218 (77) = happyShift action_120+action_218 (79) = happyShift action_121+action_218 (87) = happyShift action_122+action_218 (88) = happyShift action_123+action_218 (89) = happyShift action_96+action_218 (90) = happyShift action_97+action_218 (91) = happyShift action_124+action_218 (92) = happyShift action_99+action_218 (95) = happyShift action_100+action_218 (97) = happyShift action_125+action_218 (99) = happyShift action_126+action_218 (101) = happyShift action_127+action_218 (103) = happyShift action_128+action_218 (107) = happyShift action_57+action_218 (111) = happyShift action_58+action_218 (112) = happyShift action_59+action_218 (113) = happyShift action_60+action_218 (115) = happyShift action_61+action_218 (116) = happyShift action_62+action_218 (118) = happyShift action_129+action_218 (119) = happyShift action_103+action_218 (23) = happyGoto action_187+action_218 (25) = happyGoto action_159+action_218 (26) = happyGoto action_105+action_218 (27) = happyGoto action_106+action_218 (29) = happyGoto action_107+action_218 (31) = happyGoto action_108+action_218 (32) = happyGoto action_109+action_218 (33) = happyGoto action_110+action_218 (34) = happyGoto action_111+action_218 (37) = happyGoto action_112+action_218 (40) = happyGoto action_254+action_218 (41) = happyGoto action_114+action_218 (42) = happyGoto action_115+action_218 (43) = happyGoto action_116+action_218 (44) = happyGoto action_117+action_218 (45) = happyGoto action_118+action_218 (46) = happyGoto action_87+action_218 _ = happyReduce_60++action_219 (65) = happyShift action_39+action_219 (66) = happyShift action_93+action_219 (67) = happyShift action_119+action_219 (70) = happyShift action_95+action_219 (77) = happyShift action_120+action_219 (79) = happyShift action_121+action_219 (87) = happyShift action_122+action_219 (88) = happyShift action_123+action_219 (89) = happyShift action_96+action_219 (90) = happyShift action_97+action_219 (91) = happyShift action_124+action_219 (92) = happyShift action_99+action_219 (95) = happyShift action_100+action_219 (97) = happyShift action_125+action_219 (99) = happyShift action_126+action_219 (101) = happyShift action_127+action_219 (103) = happyShift action_128+action_219 (107) = happyShift action_57+action_219 (111) = happyShift action_58+action_219 (112) = happyShift action_59+action_219 (113) = happyShift action_60+action_219 (115) = happyShift action_61+action_219 (116) = happyShift action_62+action_219 (118) = happyShift action_129+action_219 (119) = happyShift action_103+action_219 (23) = happyGoto action_252+action_219 (26) = happyGoto action_105+action_219 (27) = happyGoto action_106+action_219 (29) = happyGoto action_107+action_219 (30) = happyGoto action_253+action_219 (31) = happyGoto action_108+action_219 (32) = happyGoto action_109+action_219 (33) = happyGoto action_110+action_219 (34) = happyGoto action_111+action_219 (37) = happyGoto action_112+action_219 (38) = happyGoto action_185+action_219 (39) = happyGoto action_186+action_219 (40) = happyGoto action_157+action_219 (41) = happyGoto action_114+action_219 (42) = happyGoto action_115+action_219 (43) = happyGoto action_116+action_219 (44) = happyGoto action_117+action_219 (45) = happyGoto action_118+action_219 (46) = happyGoto action_87+action_219 _ = happyReduce_60++action_220 (65) = happyReduce_168+action_220 (68) = happyReduce_168+action_220 (69) = happyReduce_168+action_220 (70) = happyReduce_168+action_220 (71) = happyReduce_168+action_220 (73) = happyReduce_168+action_220 (74) = happyReduce_168+action_220 (75) = happyReduce_168+action_220 (76) = happyReduce_168+action_220 (79) = happyReduce_168+action_220 (81) = happyReduce_168+action_220 (82) = happyReduce_168+action_220 (83) = happyReduce_168+action_220 (84) = happyReduce_168+action_220 (85) = happyReduce_168+action_220 (91) = happyReduce_168+action_220 (93) = happyReduce_168+action_220 (98) = happyReduce_168+action_220 (101) = happyReduce_168+action_220 (102) = happyReduce_168+action_220 (104) = happyReduce_168+action_220 (105) = happyReduce_168+action_220 (107) = happyReduce_168+action_220 (108) = happyReduce_168+action_220 (110) = happyReduce_168+action_220 (120) = happyReduce_168+action_220 _ = happyReduce_168++action_221 _ = happyReduce_157++action_222 _ = happyReduce_156++action_223 (96) = happyShift action_240+action_223 _ = happyReduce_114++action_224 (102) = happyShift action_251+action_224 _ = happyFail (happyExpListPerState 224)++action_225 (65) = happyShift action_39+action_225 (66) = happyShift action_93+action_225 (67) = happyShift action_119+action_225 (70) = happyShift action_95+action_225 (77) = happyShift action_120+action_225 (79) = happyShift action_121+action_225 (87) = happyShift action_122+action_225 (88) = happyShift action_123+action_225 (89) = happyShift action_96+action_225 (90) = happyShift action_97+action_225 (91) = happyShift action_98+action_225 (92) = happyShift action_99+action_225 (95) = happyShift action_100+action_225 (97) = happyShift action_125+action_225 (99) = happyShift action_126+action_225 (101) = happyShift action_225+action_225 (102) = happyShift action_226+action_225 (103) = happyShift action_128+action_225 (107) = happyShift action_227+action_225 (111) = happyShift action_58+action_225 (112) = happyShift action_59+action_225 (113) = happyShift action_60+action_225 (115) = happyShift action_61+action_225 (116) = happyShift action_62+action_225 (118) = happyShift action_129+action_225 (119) = happyShift action_103+action_225 (23) = happyGoto action_250+action_225 (26) = happyGoto action_105+action_225 (27) = happyGoto action_106+action_225 (29) = happyGoto action_107+action_225 (30) = happyGoto action_155+action_225 (31) = happyGoto action_108+action_225 (32) = happyGoto action_109+action_225 (33) = happyGoto action_110+action_225 (34) = happyGoto action_111+action_225 (37) = happyGoto action_112+action_225 (38) = happyGoto action_185+action_225 (39) = happyGoto action_186+action_225 (40) = happyGoto action_157+action_225 (41) = happyGoto action_114+action_225 (42) = happyGoto action_115+action_225 (43) = happyGoto action_116+action_225 (44) = happyGoto action_117+action_225 (45) = happyGoto action_223+action_225 (46) = happyGoto action_87+action_225 (56) = happyGoto action_88+action_225 (57) = happyGoto action_224+action_225 (58) = happyGoto action_90+action_225 (59) = happyGoto action_91+action_225 (60) = happyGoto action_92+action_225 _ = happyReduce_60++action_226 _ = happyReduce_152++action_227 (65) = happyShift action_39+action_227 (66) = happyShift action_93+action_227 (67) = happyShift action_94+action_227 (70) = happyShift action_95+action_227 (87) = happyShift action_222+action_227 (89) = happyShift action_96+action_227 (90) = happyShift action_97+action_227 (91) = happyShift action_124+action_227 (92) = happyShift action_99+action_227 (95) = happyShift action_100+action_227 (101) = happyShift action_192+action_227 (119) = happyShift action_103+action_227 (23) = happyGoto action_220+action_227 (45) = happyGoto action_221+action_227 (46) = happyGoto action_87+action_227 _ = happyReduce_51++action_228 (106) = happyShift action_249+action_228 _ = happyFail (happyExpListPerState 228)++action_229 (65) = happyReduce_167+action_229 (68) = happyReduce_167+action_229 (69) = happyReduce_167+action_229 (70) = happyReduce_167+action_229 (71) = happyReduce_167+action_229 (73) = happyReduce_167+action_229 (74) = happyReduce_167+action_229 (75) = happyReduce_167+action_229 (76) = happyReduce_167+action_229 (79) = happyReduce_167+action_229 (81) = happyReduce_167+action_229 (82) = happyReduce_167+action_229 (83) = happyReduce_167+action_229 (84) = happyReduce_167+action_229 (85) = happyReduce_167+action_229 (91) = happyReduce_167+action_229 (93) = happyReduce_167+action_229 (98) = happyReduce_167+action_229 (101) = happyReduce_167+action_229 (102) = happyReduce_167+action_229 (104) = happyReduce_167+action_229 (105) = happyReduce_167+action_229 (107) = happyReduce_167+action_229 (110) = happyReduce_167+action_229 (120) = happyReduce_167+action_229 _ = happyReduce_129++action_230 _ = happyReduce_155++action_231 _ = happyReduce_154++action_232 (65) = happyShift action_39+action_232 (23) = happyGoto action_37+action_232 (24) = happyGoto action_246+action_232 (47) = happyGoto action_247+action_232 (48) = happyGoto action_248+action_232 _ = happyReduce_132++action_233 _ = happyReduce_167++action_234 _ = happyReduce_165++action_235 (65) = happyShift action_39+action_235 (91) = happyShift action_235+action_235 (101) = happyShift action_236+action_235 (107) = happyShift action_102+action_235 (23) = happyGoto action_233+action_235 (56) = happyGoto action_230+action_235 (60) = happyGoto action_231+action_235 _ = happyFail (happyExpListPerState 235)++action_236 (65) = happyShift action_39+action_236 (66) = happyShift action_93+action_236 (67) = happyShift action_94+action_236 (70) = happyShift action_95+action_236 (89) = happyShift action_96+action_236 (90) = happyShift action_97+action_236 (91) = happyShift action_98+action_236 (92) = happyShift action_99+action_236 (95) = happyShift action_100+action_236 (101) = happyShift action_101+action_236 (102) = happyShift action_226+action_236 (107) = happyShift action_102+action_236 (119) = happyShift action_103+action_236 (23) = happyGoto action_85+action_236 (45) = happyGoto action_86+action_236 (46) = happyGoto action_87+action_236 (56) = happyGoto action_88+action_236 (57) = happyGoto action_224+action_236 (58) = happyGoto action_90+action_236 (59) = happyGoto action_91+action_236 (60) = happyGoto action_92+action_236 _ = happyFail (happyExpListPerState 236)++action_237 _ = happyReduce_166++action_238 (65) = happyShift action_39+action_238 (66) = happyShift action_93+action_238 (67) = happyShift action_94+action_238 (70) = happyShift action_95+action_238 (89) = happyShift action_96+action_238 (90) = happyShift action_97+action_238 (91) = happyShift action_98+action_238 (92) = happyShift action_99+action_238 (95) = happyShift action_100+action_238 (101) = happyShift action_101+action_238 (107) = happyShift action_102+action_238 (119) = happyShift action_103+action_238 (23) = happyGoto action_85+action_238 (45) = happyGoto action_86+action_238 (46) = happyGoto action_87+action_238 (56) = happyGoto action_88+action_238 (58) = happyGoto action_245+action_238 (59) = happyGoto action_91+action_238 (60) = happyGoto action_92+action_238 _ = happyFail (happyExpListPerState 238)++action_239 (65) = happyShift action_39+action_239 (66) = happyShift action_93+action_239 (67) = happyShift action_94+action_239 (70) = happyShift action_95+action_239 (89) = happyShift action_96+action_239 (90) = happyShift action_97+action_239 (91) = happyShift action_98+action_239 (92) = happyShift action_99+action_239 (95) = happyShift action_100+action_239 (101) = happyShift action_101+action_239 (107) = happyShift action_102+action_239 (119) = happyShift action_103+action_239 (23) = happyGoto action_85+action_239 (45) = happyGoto action_86+action_239 (46) = happyGoto action_87+action_239 (56) = happyGoto action_88+action_239 (57) = happyGoto action_244+action_239 (58) = happyGoto action_90+action_239 (59) = happyGoto action_91+action_239 (60) = happyGoto action_92+action_239 _ = happyFail (happyExpListPerState 239)++action_240 (65) = happyShift action_39+action_240 (23) = happyGoto action_243+action_240 _ = happyFail (happyExpListPerState 240)++action_241 (65) = happyShift action_39+action_241 (66) = happyShift action_93+action_241 (67) = happyShift action_94+action_241 (70) = happyShift action_95+action_241 (89) = happyShift action_96+action_241 (90) = happyShift action_97+action_241 (91) = happyShift action_124+action_241 (92) = happyShift action_99+action_241 (95) = happyShift action_100+action_241 (101) = happyShift action_192+action_241 (119) = happyShift action_103+action_241 (23) = happyGoto action_104+action_241 (45) = happyGoto action_242+action_241 (46) = happyGoto action_87+action_241 _ = happyFail (happyExpListPerState 241)++action_242 _ = happyReduce_162++action_243 _ = happyReduce_161++action_244 _ = happyReduce_158++action_245 _ = happyReduce_164++action_246 (110) = happyShift action_346+action_246 _ = happyFail (happyExpListPerState 246)++action_247 (98) = happyShift action_345+action_247 _ = happyFail (happyExpListPerState 247)++action_248 (105) = happyShift action_344+action_248 _ = happyReduce_131++action_249 (65) = happyShift action_39+action_249 (66) = happyShift action_93+action_249 (67) = happyShift action_119+action_249 (70) = happyShift action_95+action_249 (77) = happyShift action_120+action_249 (79) = happyShift action_121+action_249 (87) = happyShift action_122+action_249 (88) = happyShift action_123+action_249 (89) = happyShift action_96+action_249 (90) = happyShift action_97+action_249 (91) = happyShift action_124+action_249 (92) = happyShift action_99+action_249 (95) = happyShift action_100+action_249 (97) = happyShift action_125+action_249 (99) = happyShift action_126+action_249 (101) = happyShift action_127+action_249 (103) = happyShift action_128+action_249 (107) = happyShift action_57+action_249 (111) = happyShift action_58+action_249 (112) = happyShift action_59+action_249 (113) = happyShift action_60+action_249 (115) = happyShift action_61+action_249 (116) = happyShift action_62+action_249 (118) = happyShift action_129+action_249 (119) = happyShift action_103+action_249 (23) = happyGoto action_104+action_249 (26) = happyGoto action_105+action_249 (27) = happyGoto action_106+action_249 (29) = happyGoto action_107+action_249 (31) = happyGoto action_108+action_249 (32) = happyGoto action_109+action_249 (33) = happyGoto action_110+action_249 (34) = happyGoto action_111+action_249 (37) = happyGoto action_112+action_249 (40) = happyGoto action_343+action_249 (41) = happyGoto action_114+action_249 (42) = happyGoto action_115+action_249 (43) = happyGoto action_116+action_249 (44) = happyGoto action_117+action_249 (45) = happyGoto action_118+action_249 (46) = happyGoto action_87+action_249 _ = happyReduce_60++action_250 (65) = happyReduce_167+action_250 (91) = happyReduce_167+action_250 (95) = happyShift action_342+action_250 (101) = happyReduce_167+action_250 (102) = happyReduce_167+action_250 (104) = happyReduce_167+action_250 (107) = happyReduce_167+action_250 (109) = happyShift action_304+action_250 _ = happyReduce_129++action_251 _ = happyReduce_153++action_252 (95) = happyShift action_340+action_252 (109) = happyShift action_341+action_252 _ = happyReduce_129++action_253 (106) = happyShift action_339+action_253 _ = happyFail (happyExpListPerState 253)++action_254 (100) = happyShift action_338+action_254 _ = happyFail (happyExpListPerState 254)++action_255 _ = happyReduce_105++action_256 (65) = happyShift action_39+action_256 (66) = happyShift action_93+action_256 (67) = happyShift action_119+action_256 (70) = happyShift action_95+action_256 (77) = happyShift action_120+action_256 (79) = happyShift action_121+action_256 (87) = happyShift action_122+action_256 (88) = happyShift action_123+action_256 (89) = happyShift action_96+action_256 (90) = happyShift action_97+action_256 (91) = happyShift action_124+action_256 (92) = happyShift action_99+action_256 (95) = happyShift action_100+action_256 (97) = happyShift action_125+action_256 (99) = happyShift action_126+action_256 (101) = happyShift action_127+action_256 (103) = happyShift action_128+action_256 (107) = happyShift action_57+action_256 (111) = happyShift action_58+action_256 (112) = happyShift action_59+action_256 (113) = happyShift action_60+action_256 (115) = happyShift action_61+action_256 (116) = happyShift action_62+action_256 (118) = happyShift action_129+action_256 (119) = happyShift action_103+action_256 (23) = happyGoto action_296+action_256 (26) = happyGoto action_105+action_256 (27) = happyGoto action_106+action_256 (29) = happyGoto action_107+action_256 (30) = happyGoto action_297+action_256 (31) = happyGoto action_108+action_256 (32) = happyGoto action_109+action_256 (33) = happyGoto action_110+action_256 (34) = happyGoto action_111+action_256 (37) = happyGoto action_112+action_256 (38) = happyGoto action_185+action_256 (39) = happyGoto action_186+action_256 (40) = happyGoto action_157+action_256 (41) = happyGoto action_114+action_256 (42) = happyGoto action_115+action_256 (43) = happyGoto action_116+action_256 (44) = happyGoto action_117+action_256 (45) = happyGoto action_118+action_256 (46) = happyGoto action_87+action_256 _ = happyReduce_60++action_257 _ = happyReduce_58++action_258 _ = happyReduce_57++action_259 _ = happyReduce_93++action_260 _ = happyReduce_102++action_261 (117) = happyReduce_103+action_261 _ = happyReduce_101++action_262 _ = happyReduce_98++action_263 _ = happyReduce_100++action_264 _ = happyReduce_99++action_265 _ = happyReduce_116++action_266 _ = happyReduce_113++action_267 (97) = happyShift action_337+action_267 _ = happyFail (happyExpListPerState 267)++action_268 (100) = happyShift action_165+action_268 (106) = happyShift action_336+action_268 _ = happyFail (happyExpListPerState 268)++action_269 (65) = happyShift action_39+action_269 (66) = happyShift action_93+action_269 (67) = happyShift action_119+action_269 (70) = happyShift action_95+action_269 (77) = happyShift action_120+action_269 (79) = happyShift action_121+action_269 (87) = happyShift action_122+action_269 (88) = happyShift action_123+action_269 (89) = happyShift action_96+action_269 (90) = happyShift action_97+action_269 (91) = happyShift action_124+action_269 (92) = happyShift action_99+action_269 (95) = happyShift action_100+action_269 (97) = happyShift action_125+action_269 (99) = happyShift action_126+action_269 (101) = happyShift action_127+action_269 (103) = happyShift action_128+action_269 (107) = happyShift action_57+action_269 (111) = happyShift action_58+action_269 (112) = happyShift action_59+action_269 (113) = happyShift action_60+action_269 (115) = happyShift action_61+action_269 (116) = happyShift action_62+action_269 (118) = happyShift action_129+action_269 (119) = happyShift action_103+action_269 (23) = happyGoto action_104+action_269 (26) = happyGoto action_105+action_269 (27) = happyGoto action_106+action_269 (29) = happyGoto action_107+action_269 (31) = happyGoto action_108+action_269 (32) = happyGoto action_109+action_269 (33) = happyGoto action_110+action_269 (34) = happyGoto action_111+action_269 (37) = happyGoto action_112+action_269 (38) = happyGoto action_335+action_269 (39) = happyGoto action_200+action_269 (40) = happyGoto action_157+action_269 (41) = happyGoto action_114+action_269 (42) = happyGoto action_115+action_269 (43) = happyGoto action_116+action_269 (44) = happyGoto action_117+action_269 (45) = happyGoto action_118+action_269 (46) = happyGoto action_87+action_269 _ = happyReduce_60++action_270 (65) = happyShift action_39+action_270 (23) = happyGoto action_334+action_270 _ = happyFail (happyExpListPerState 270)++action_271 (65) = happyShift action_39+action_271 (66) = happyShift action_93+action_271 (67) = happyShift action_119+action_271 (70) = happyShift action_95+action_271 (77) = happyShift action_120+action_271 (79) = happyShift action_121+action_271 (87) = happyShift action_122+action_271 (88) = happyShift action_123+action_271 (89) = happyShift action_96+action_271 (90) = happyShift action_97+action_271 (91) = happyShift action_124+action_271 (92) = happyShift action_99+action_271 (95) = happyShift action_100+action_271 (97) = happyShift action_125+action_271 (99) = happyShift action_126+action_271 (101) = happyShift action_127+action_271 (103) = happyShift action_128+action_271 (107) = happyShift action_57+action_271 (111) = happyShift action_58+action_271 (112) = happyShift action_59+action_271 (113) = happyShift action_60+action_271 (115) = happyShift action_61+action_271 (116) = happyShift action_62+action_271 (118) = happyShift action_129+action_271 (119) = happyShift action_103+action_271 (23) = happyGoto action_104+action_271 (26) = happyGoto action_105+action_271 (27) = happyGoto action_106+action_271 (29) = happyGoto action_107+action_271 (31) = happyGoto action_108+action_271 (32) = happyGoto action_109+action_271 (33) = happyGoto action_110+action_271 (34) = happyGoto action_111+action_271 (37) = happyGoto action_112+action_271 (40) = happyGoto action_333+action_271 (41) = happyGoto action_114+action_271 (42) = happyGoto action_115+action_271 (43) = happyGoto action_116+action_271 (44) = happyGoto action_117+action_271 (45) = happyGoto action_118+action_271 (46) = happyGoto action_87+action_271 _ = happyReduce_60++action_272 (65) = happyShift action_39+action_272 (66) = happyShift action_93+action_272 (67) = happyShift action_119+action_272 (70) = happyShift action_95+action_272 (77) = happyShift action_120+action_272 (79) = happyShift action_121+action_272 (87) = happyShift action_122+action_272 (88) = happyShift action_123+action_272 (89) = happyShift action_96+action_272 (90) = happyShift action_97+action_272 (91) = happyShift action_124+action_272 (92) = happyShift action_99+action_272 (95) = happyShift action_100+action_272 (97) = happyShift action_125+action_272 (99) = happyShift action_126+action_272 (101) = happyShift action_127+action_272 (103) = happyShift action_128+action_272 (107) = happyShift action_57+action_272 (111) = happyShift action_58+action_272 (112) = happyShift action_59+action_272 (113) = happyShift action_60+action_272 (115) = happyShift action_61+action_272 (116) = happyShift action_62+action_272 (118) = happyShift action_129+action_272 (119) = happyShift action_103+action_272 (23) = happyGoto action_104+action_272 (26) = happyGoto action_105+action_272 (27) = happyGoto action_106+action_272 (29) = happyGoto action_107+action_272 (31) = happyGoto action_108+action_272 (32) = happyGoto action_109+action_272 (33) = happyGoto action_110+action_272 (34) = happyGoto action_111+action_272 (37) = happyGoto action_112+action_272 (40) = happyGoto action_332+action_272 (41) = happyGoto action_114+action_272 (42) = happyGoto action_115+action_272 (43) = happyGoto action_116+action_272 (44) = happyGoto action_117+action_272 (45) = happyGoto action_118+action_272 (46) = happyGoto action_87+action_272 _ = happyReduce_60++action_273 (65) = happyShift action_39+action_273 (66) = happyShift action_93+action_273 (67) = happyShift action_119+action_273 (70) = happyShift action_95+action_273 (77) = happyShift action_120+action_273 (79) = happyShift action_121+action_273 (87) = happyShift action_122+action_273 (88) = happyShift action_123+action_273 (89) = happyShift action_96+action_273 (90) = happyShift action_97+action_273 (91) = happyShift action_124+action_273 (92) = happyShift action_99+action_273 (95) = happyShift action_100+action_273 (97) = happyShift action_125+action_273 (99) = happyShift action_126+action_273 (101) = happyShift action_127+action_273 (103) = happyShift action_128+action_273 (107) = happyShift action_57+action_273 (111) = happyShift action_58+action_273 (112) = happyShift action_59+action_273 (113) = happyShift action_60+action_273 (115) = happyShift action_61+action_273 (116) = happyShift action_62+action_273 (118) = happyShift action_129+action_273 (119) = happyShift action_103+action_273 (23) = happyGoto action_104+action_273 (26) = happyGoto action_105+action_273 (27) = happyGoto action_106+action_273 (29) = happyGoto action_107+action_273 (31) = happyGoto action_108+action_273 (32) = happyGoto action_109+action_273 (33) = happyGoto action_110+action_273 (34) = happyGoto action_111+action_273 (37) = happyGoto action_112+action_273 (40) = happyGoto action_331+action_273 (41) = happyGoto action_114+action_273 (42) = happyGoto action_115+action_273 (43) = happyGoto action_116+action_273 (44) = happyGoto action_117+action_273 (45) = happyGoto action_118+action_273 (46) = happyGoto action_87+action_273 _ = happyReduce_60++action_274 (117) = happyReduce_104+action_274 _ = happyReduce_84++action_275 (65) = happyShift action_39+action_275 (66) = happyShift action_93+action_275 (67) = happyShift action_119+action_275 (70) = happyShift action_95+action_275 (77) = happyShift action_120+action_275 (79) = happyShift action_121+action_275 (87) = happyShift action_122+action_275 (88) = happyShift action_123+action_275 (89) = happyShift action_96+action_275 (90) = happyShift action_97+action_275 (91) = happyShift action_124+action_275 (92) = happyShift action_99+action_275 (95) = happyShift action_100+action_275 (97) = happyShift action_125+action_275 (99) = happyShift action_126+action_275 (101) = happyShift action_127+action_275 (103) = happyShift action_128+action_275 (107) = happyShift action_57+action_275 (111) = happyShift action_58+action_275 (112) = happyShift action_59+action_275 (113) = happyShift action_60+action_275 (115) = happyShift action_61+action_275 (116) = happyShift action_62+action_275 (118) = happyShift action_129+action_275 (119) = happyShift action_103+action_275 (23) = happyGoto action_104+action_275 (26) = happyGoto action_105+action_275 (27) = happyGoto action_106+action_275 (29) = happyGoto action_107+action_275 (31) = happyGoto action_108+action_275 (32) = happyGoto action_109+action_275 (33) = happyGoto action_110+action_275 (34) = happyGoto action_111+action_275 (37) = happyGoto action_112+action_275 (40) = happyGoto action_330+action_275 (41) = happyGoto action_114+action_275 (42) = happyGoto action_115+action_275 (43) = happyGoto action_116+action_275 (44) = happyGoto action_117+action_275 (45) = happyGoto action_118+action_275 (46) = happyGoto action_87+action_275 _ = happyReduce_60++action_276 (65) = happyShift action_39+action_276 (66) = happyShift action_93+action_276 (67) = happyShift action_119+action_276 (70) = happyShift action_95+action_276 (77) = happyShift action_120+action_276 (79) = happyShift action_121+action_276 (87) = happyShift action_122+action_276 (88) = happyShift action_123+action_276 (89) = happyShift action_96+action_276 (90) = happyShift action_97+action_276 (91) = happyShift action_124+action_276 (92) = happyShift action_99+action_276 (95) = happyShift action_100+action_276 (97) = happyShift action_125+action_276 (99) = happyShift action_126+action_276 (101) = happyShift action_127+action_276 (103) = happyShift action_128+action_276 (107) = happyShift action_57+action_276 (111) = happyShift action_58+action_276 (112) = happyShift action_59+action_276 (113) = happyShift action_60+action_276 (115) = happyShift action_61+action_276 (116) = happyShift action_62+action_276 (118) = happyShift action_129+action_276 (119) = happyShift action_103+action_276 (23) = happyGoto action_104+action_276 (26) = happyGoto action_105+action_276 (27) = happyGoto action_106+action_276 (29) = happyGoto action_107+action_276 (31) = happyGoto action_108+action_276 (32) = happyGoto action_109+action_276 (33) = happyGoto action_110+action_276 (34) = happyGoto action_111+action_276 (37) = happyGoto action_112+action_276 (40) = happyGoto action_329+action_276 (41) = happyGoto action_114+action_276 (42) = happyGoto action_115+action_276 (43) = happyGoto action_116+action_276 (44) = happyGoto action_117+action_276 (45) = happyGoto action_118+action_276 (46) = happyGoto action_87+action_276 _ = happyReduce_60++action_277 _ = happyReduce_123++action_278 _ = happyReduce_55++action_279 (65) = happyShift action_39+action_279 (66) = happyShift action_93+action_279 (67) = happyShift action_119+action_279 (70) = happyShift action_95+action_279 (77) = happyShift action_120+action_279 (79) = happyShift action_121+action_279 (87) = happyShift action_122+action_279 (88) = happyShift action_123+action_279 (89) = happyShift action_96+action_279 (90) = happyShift action_97+action_279 (91) = happyShift action_124+action_279 (92) = happyShift action_99+action_279 (95) = happyShift action_100+action_279 (97) = happyShift action_125+action_279 (99) = happyShift action_126+action_279 (101) = happyShift action_127+action_279 (103) = happyShift action_128+action_279 (107) = happyShift action_57+action_279 (111) = happyShift action_58+action_279 (112) = happyShift action_59+action_279 (113) = happyShift action_60+action_279 (115) = happyShift action_61+action_279 (116) = happyShift action_62+action_279 (118) = happyShift action_129+action_279 (119) = happyShift action_103+action_279 (23) = happyGoto action_104+action_279 (26) = happyGoto action_105+action_279 (27) = happyGoto action_106+action_279 (28) = happyGoto action_328+action_279 (29) = happyGoto action_107+action_279 (31) = happyGoto action_108+action_279 (32) = happyGoto action_109+action_279 (33) = happyGoto action_110+action_279 (34) = happyGoto action_111+action_279 (37) = happyGoto action_112+action_279 (40) = happyGoto action_184+action_279 (41) = happyGoto action_114+action_279 (42) = happyGoto action_115+action_279 (43) = happyGoto action_116+action_279 (44) = happyGoto action_117+action_279 (45) = happyGoto action_118+action_279 (46) = happyGoto action_87+action_279 _ = happyReduce_60++action_280 (65) = happyShift action_39+action_280 (66) = happyShift action_93+action_280 (67) = happyShift action_119+action_280 (70) = happyShift action_95+action_280 (77) = happyShift action_120+action_280 (79) = happyShift action_121+action_280 (87) = happyShift action_122+action_280 (88) = happyShift action_123+action_280 (89) = happyShift action_96+action_280 (90) = happyShift action_97+action_280 (91) = happyShift action_124+action_280 (92) = happyShift action_99+action_280 (95) = happyShift action_100+action_280 (97) = happyShift action_125+action_280 (99) = happyShift action_126+action_280 (101) = happyShift action_127+action_280 (103) = happyShift action_128+action_280 (107) = happyShift action_57+action_280 (111) = happyShift action_58+action_280 (112) = happyShift action_59+action_280 (113) = happyShift action_60+action_280 (115) = happyShift action_61+action_280 (116) = happyShift action_62+action_280 (118) = happyShift action_129+action_280 (119) = happyShift action_103+action_280 (23) = happyGoto action_104+action_280 (26) = happyGoto action_105+action_280 (27) = happyGoto action_106+action_280 (29) = happyGoto action_107+action_280 (31) = happyGoto action_108+action_280 (32) = happyGoto action_109+action_280 (33) = happyGoto action_110+action_280 (34) = happyGoto action_111+action_280 (37) = happyGoto action_112+action_280 (38) = happyGoto action_327+action_280 (39) = happyGoto action_200+action_280 (40) = happyGoto action_157+action_280 (41) = happyGoto action_114+action_280 (42) = happyGoto action_115+action_280 (43) = happyGoto action_116+action_280 (44) = happyGoto action_117+action_280 (45) = happyGoto action_118+action_280 (46) = happyGoto action_87+action_280 _ = happyReduce_60++action_281 _ = happyReduce_150++action_282 (65) = happyShift action_39+action_282 (66) = happyShift action_93+action_282 (67) = happyShift action_94+action_282 (70) = happyShift action_95+action_282 (89) = happyShift action_96+action_282 (90) = happyShift action_97+action_282 (91) = happyShift action_98+action_282 (92) = happyShift action_99+action_282 (95) = happyShift action_100+action_282 (101) = happyShift action_101+action_282 (107) = happyShift action_102+action_282 (119) = happyShift action_103+action_282 (23) = happyGoto action_85+action_282 (45) = happyGoto action_86+action_282 (46) = happyGoto action_87+action_282 (56) = happyGoto action_88+action_282 (58) = happyGoto action_326+action_282 (59) = happyGoto action_91+action_282 (60) = happyGoto action_92+action_282 _ = happyFail (happyExpListPerState 282)++action_283 (65) = happyShift action_39+action_283 (66) = happyShift action_93+action_283 (67) = happyShift action_119+action_283 (70) = happyShift action_95+action_283 (77) = happyShift action_120+action_283 (79) = happyShift action_121+action_283 (87) = happyShift action_122+action_283 (88) = happyShift action_123+action_283 (89) = happyShift action_96+action_283 (90) = happyShift action_97+action_283 (91) = happyShift action_124+action_283 (92) = happyShift action_99+action_283 (95) = happyShift action_100+action_283 (97) = happyShift action_125+action_283 (99) = happyShift action_126+action_283 (101) = happyShift action_127+action_283 (103) = happyShift action_128+action_283 (107) = happyShift action_57+action_283 (111) = happyShift action_58+action_283 (112) = happyShift action_59+action_283 (113) = happyShift action_60+action_283 (115) = happyShift action_61+action_283 (116) = happyShift action_62+action_283 (118) = happyShift action_129+action_283 (119) = happyShift action_103+action_283 (23) = happyGoto action_104+action_283 (26) = happyGoto action_105+action_283 (27) = happyGoto action_106+action_283 (29) = happyGoto action_107+action_283 (31) = happyGoto action_108+action_283 (32) = happyGoto action_109+action_283 (33) = happyGoto action_110+action_283 (34) = happyGoto action_111+action_283 (37) = happyGoto action_112+action_283 (38) = happyGoto action_325+action_283 (39) = happyGoto action_200+action_283 (40) = happyGoto action_157+action_283 (41) = happyGoto action_114+action_283 (42) = happyGoto action_115+action_283 (43) = happyGoto action_116+action_283 (44) = happyGoto action_117+action_283 (45) = happyGoto action_118+action_283 (46) = happyGoto action_87+action_283 _ = happyReduce_60++action_284 _ = happyReduce_170++action_285 (72) = happyShift action_319+action_285 (22) = happyGoto action_324+action_285 _ = happyReduce_41++action_286 (65) = happyShift action_39+action_286 (23) = happyGoto action_168+action_286 (50) = happyGoto action_323+action_286 _ = happyFail (happyExpListPerState 286)++action_287 _ = happyReduce_47++action_288 (102) = happyShift action_322+action_288 _ = happyFail (happyExpListPerState 288)++action_289 (65) = happyShift action_39+action_289 (66) = happyShift action_93+action_289 (67) = happyShift action_119+action_289 (70) = happyShift action_95+action_289 (77) = happyShift action_120+action_289 (79) = happyShift action_121+action_289 (87) = happyShift action_122+action_289 (88) = happyShift action_123+action_289 (89) = happyShift action_96+action_289 (90) = happyShift action_97+action_289 (91) = happyShift action_124+action_289 (92) = happyShift action_99+action_289 (95) = happyShift action_100+action_289 (97) = happyShift action_125+action_289 (99) = happyShift action_126+action_289 (101) = happyShift action_127+action_289 (103) = happyShift action_128+action_289 (107) = happyShift action_57+action_289 (111) = happyShift action_58+action_289 (112) = happyShift action_59+action_289 (113) = happyShift action_60+action_289 (115) = happyShift action_61+action_289 (116) = happyShift action_62+action_289 (118) = happyShift action_129+action_289 (119) = happyShift action_103+action_289 (23) = happyGoto action_104+action_289 (26) = happyGoto action_105+action_289 (27) = happyGoto action_106+action_289 (29) = happyGoto action_107+action_289 (31) = happyGoto action_108+action_289 (32) = happyGoto action_109+action_289 (33) = happyGoto action_110+action_289 (34) = happyGoto action_111+action_289 (37) = happyGoto action_112+action_289 (40) = happyGoto action_321+action_289 (41) = happyGoto action_114+action_289 (42) = happyGoto action_115+action_289 (43) = happyGoto action_116+action_289 (44) = happyGoto action_117+action_289 (45) = happyGoto action_118+action_289 (46) = happyGoto action_87+action_289 _ = happyReduce_60++action_290 (100) = happyShift action_320+action_290 _ = happyFail (happyExpListPerState 290)++action_291 (72) = happyShift action_319+action_291 (22) = happyGoto action_318+action_291 _ = happyReduce_41++action_292 (65) = happyShift action_39+action_292 (23) = happyGoto action_168+action_292 (50) = happyGoto action_317+action_292 _ = happyReduce_138++action_293 (106) = happyShift action_316+action_293 _ = happyReduce_136++action_294 (65) = happyShift action_39+action_294 (23) = happyGoto action_168+action_294 (50) = happyGoto action_169+action_294 (51) = happyGoto action_315+action_294 _ = happyReduce_140++action_295 (65) = happyShift action_39+action_295 (66) = happyShift action_93+action_295 (67) = happyShift action_119+action_295 (70) = happyShift action_95+action_295 (77) = happyShift action_120+action_295 (79) = happyShift action_121+action_295 (87) = happyShift action_122+action_295 (88) = happyShift action_123+action_295 (89) = happyShift action_96+action_295 (90) = happyShift action_97+action_295 (91) = happyShift action_124+action_295 (92) = happyShift action_99+action_295 (95) = happyShift action_100+action_295 (97) = happyShift action_125+action_295 (99) = happyShift action_126+action_295 (101) = happyShift action_127+action_295 (103) = happyShift action_128+action_295 (107) = happyShift action_57+action_295 (111) = happyShift action_58+action_295 (112) = happyShift action_59+action_295 (113) = happyShift action_60+action_295 (115) = happyShift action_61+action_295 (116) = happyShift action_62+action_295 (118) = happyShift action_129+action_295 (119) = happyShift action_103+action_295 (23) = happyGoto action_104+action_295 (26) = happyGoto action_105+action_295 (27) = happyGoto action_106+action_295 (29) = happyGoto action_107+action_295 (31) = happyGoto action_108+action_295 (32) = happyGoto action_109+action_295 (33) = happyGoto action_110+action_295 (34) = happyGoto action_111+action_295 (37) = happyGoto action_112+action_295 (40) = happyGoto action_314+action_295 (41) = happyGoto action_114+action_295 (42) = happyGoto action_115+action_295 (43) = happyGoto action_116+action_295 (44) = happyGoto action_117+action_295 (45) = happyGoto action_118+action_295 (46) = happyGoto action_87+action_295 _ = happyReduce_60++action_296 (95) = happyShift action_312+action_296 (109) = happyShift action_313+action_296 _ = happyReduce_129++action_297 (106) = happyShift action_311+action_297 _ = happyFail (happyExpListPerState 297)++action_298 _ = happyReduce_39++action_299 (65) = happyShift action_39+action_299 (66) = happyShift action_93+action_299 (67) = happyShift action_119+action_299 (70) = happyShift action_95+action_299 (77) = happyShift action_120+action_299 (79) = happyShift action_121+action_299 (87) = happyShift action_122+action_299 (88) = happyShift action_123+action_299 (89) = happyShift action_96+action_299 (90) = happyShift action_97+action_299 (91) = happyShift action_124+action_299 (92) = happyShift action_99+action_299 (95) = happyShift action_100+action_299 (97) = happyShift action_125+action_299 (99) = happyShift action_126+action_299 (101) = happyShift action_127+action_299 (103) = happyShift action_128+action_299 (107) = happyShift action_57+action_299 (111) = happyShift action_58+action_299 (112) = happyShift action_59+action_299 (113) = happyShift action_60+action_299 (115) = happyShift action_61+action_299 (116) = happyShift action_62+action_299 (118) = happyShift action_129+action_299 (119) = happyShift action_103+action_299 (23) = happyGoto action_104+action_299 (26) = happyGoto action_105+action_299 (27) = happyGoto action_106+action_299 (29) = happyGoto action_107+action_299 (31) = happyGoto action_108+action_299 (32) = happyGoto action_109+action_299 (33) = happyGoto action_110+action_299 (34) = happyGoto action_111+action_299 (37) = happyGoto action_112+action_299 (38) = happyGoto action_310+action_299 (39) = happyGoto action_200+action_299 (40) = happyGoto action_157+action_299 (41) = happyGoto action_114+action_299 (42) = happyGoto action_115+action_299 (43) = happyGoto action_116+action_299 (44) = happyGoto action_117+action_299 (45) = happyGoto action_118+action_299 (46) = happyGoto action_87+action_299 _ = happyReduce_60++action_300 (65) = happyShift action_39+action_300 (66) = happyShift action_93+action_300 (67) = happyShift action_119+action_300 (70) = happyShift action_95+action_300 (77) = happyShift action_120+action_300 (79) = happyShift action_121+action_300 (87) = happyShift action_122+action_300 (88) = happyShift action_123+action_300 (89) = happyShift action_96+action_300 (90) = happyShift action_97+action_300 (91) = happyShift action_124+action_300 (92) = happyShift action_99+action_300 (95) = happyShift action_100+action_300 (97) = happyShift action_125+action_300 (99) = happyShift action_126+action_300 (101) = happyShift action_127+action_300 (103) = happyShift action_128+action_300 (107) = happyShift action_57+action_300 (111) = happyShift action_58+action_300 (112) = happyShift action_59+action_300 (113) = happyShift action_60+action_300 (115) = happyShift action_61+action_300 (116) = happyShift action_62+action_300 (118) = happyShift action_129+action_300 (119) = happyShift action_103+action_300 (23) = happyGoto action_104+action_300 (26) = happyGoto action_105+action_300 (27) = happyGoto action_106+action_300 (29) = happyGoto action_107+action_300 (31) = happyGoto action_108+action_300 (32) = happyGoto action_109+action_300 (33) = happyGoto action_110+action_300 (34) = happyGoto action_111+action_300 (37) = happyGoto action_112+action_300 (40) = happyGoto action_309+action_300 (41) = happyGoto action_114+action_300 (42) = happyGoto action_115+action_300 (43) = happyGoto action_116+action_300 (44) = happyGoto action_117+action_300 (45) = happyGoto action_118+action_300 (46) = happyGoto action_87+action_300 _ = happyReduce_60++action_301 (65) = happyShift action_39+action_301 (66) = happyShift action_93+action_301 (67) = happyShift action_119+action_301 (70) = happyShift action_95+action_301 (77) = happyShift action_120+action_301 (79) = happyShift action_121+action_301 (87) = happyShift action_122+action_301 (88) = happyShift action_123+action_301 (89) = happyShift action_96+action_301 (90) = happyShift action_97+action_301 (91) = happyShift action_124+action_301 (92) = happyShift action_99+action_301 (95) = happyShift action_100+action_301 (97) = happyShift action_125+action_301 (99) = happyShift action_126+action_301 (101) = happyShift action_127+action_301 (103) = happyShift action_128+action_301 (107) = happyShift action_57+action_301 (111) = happyShift action_58+action_301 (112) = happyShift action_59+action_301 (113) = happyShift action_60+action_301 (115) = happyShift action_61+action_301 (116) = happyShift action_62+action_301 (118) = happyShift action_129+action_301 (119) = happyShift action_103+action_301 (23) = happyGoto action_104+action_301 (26) = happyGoto action_105+action_301 (27) = happyGoto action_106+action_301 (29) = happyGoto action_107+action_301 (31) = happyGoto action_108+action_301 (32) = happyGoto action_109+action_301 (33) = happyGoto action_110+action_301 (34) = happyGoto action_111+action_301 (37) = happyGoto action_112+action_301 (39) = happyGoto action_308+action_301 (40) = happyGoto action_157+action_301 (41) = happyGoto action_114+action_301 (42) = happyGoto action_115+action_301 (43) = happyGoto action_116+action_301 (44) = happyGoto action_117+action_301 (45) = happyGoto action_118+action_301 (46) = happyGoto action_87+action_301 _ = happyReduce_60++action_302 (65) = happyShift action_39+action_302 (66) = happyShift action_93+action_302 (67) = happyShift action_119+action_302 (70) = happyShift action_95+action_302 (77) = happyShift action_120+action_302 (79) = happyShift action_121+action_302 (87) = happyShift action_122+action_302 (88) = happyShift action_123+action_302 (89) = happyShift action_96+action_302 (90) = happyShift action_97+action_302 (91) = happyShift action_124+action_302 (92) = happyShift action_99+action_302 (95) = happyShift action_100+action_302 (97) = happyShift action_125+action_302 (99) = happyShift action_126+action_302 (101) = happyShift action_127+action_302 (103) = happyShift action_128+action_302 (107) = happyShift action_57+action_302 (111) = happyShift action_58+action_302 (112) = happyShift action_59+action_302 (113) = happyShift action_60+action_302 (115) = happyShift action_61+action_302 (116) = happyShift action_62+action_302 (118) = happyShift action_129+action_302 (119) = happyShift action_103+action_302 (23) = happyGoto action_104+action_302 (26) = happyGoto action_105+action_302 (27) = happyGoto action_106+action_302 (29) = happyGoto action_107+action_302 (31) = happyGoto action_108+action_302 (32) = happyGoto action_109+action_302 (33) = happyGoto action_110+action_302 (34) = happyGoto action_111+action_302 (37) = happyGoto action_112+action_302 (40) = happyGoto action_307+action_302 (41) = happyGoto action_114+action_302 (42) = happyGoto action_115+action_302 (43) = happyGoto action_116+action_302 (44) = happyGoto action_117+action_302 (45) = happyGoto action_118+action_302 (46) = happyGoto action_87+action_302 _ = happyReduce_60++action_303 (65) = happyShift action_39+action_303 (66) = happyShift action_93+action_303 (67) = happyShift action_119+action_303 (70) = happyShift action_95+action_303 (77) = happyShift action_120+action_303 (79) = happyShift action_121+action_303 (87) = happyShift action_122+action_303 (88) = happyShift action_123+action_303 (89) = happyShift action_96+action_303 (90) = happyShift action_97+action_303 (91) = happyShift action_124+action_303 (92) = happyShift action_99+action_303 (95) = happyShift action_100+action_303 (97) = happyShift action_125+action_303 (99) = happyShift action_126+action_303 (101) = happyShift action_127+action_303 (103) = happyShift action_128+action_303 (107) = happyShift action_57+action_303 (111) = happyShift action_58+action_303 (112) = happyShift action_59+action_303 (113) = happyShift action_60+action_303 (115) = happyShift action_61+action_303 (116) = happyShift action_62+action_303 (118) = happyShift action_129+action_303 (119) = happyShift action_103+action_303 (23) = happyGoto action_104+action_303 (26) = happyGoto action_105+action_303 (27) = happyGoto action_106+action_303 (29) = happyGoto action_107+action_303 (31) = happyGoto action_108+action_303 (32) = happyGoto action_109+action_303 (33) = happyGoto action_110+action_303 (34) = happyGoto action_111+action_303 (37) = happyGoto action_112+action_303 (40) = happyGoto action_306+action_303 (41) = happyGoto action_114+action_303 (42) = happyGoto action_115+action_303 (43) = happyGoto action_116+action_303 (44) = happyGoto action_117+action_303 (45) = happyGoto action_118+action_303 (46) = happyGoto action_87+action_303 _ = happyReduce_60++action_304 (65) = happyShift action_39+action_304 (66) = happyShift action_93+action_304 (67) = happyShift action_119+action_304 (70) = happyShift action_95+action_304 (77) = happyShift action_120+action_304 (79) = happyShift action_121+action_304 (87) = happyShift action_122+action_304 (88) = happyShift action_123+action_304 (89) = happyShift action_96+action_304 (90) = happyShift action_97+action_304 (91) = happyShift action_124+action_304 (92) = happyShift action_99+action_304 (95) = happyShift action_100+action_304 (97) = happyShift action_125+action_304 (99) = happyShift action_126+action_304 (101) = happyShift action_127+action_304 (103) = happyShift action_128+action_304 (107) = happyShift action_57+action_304 (111) = happyShift action_58+action_304 (112) = happyShift action_59+action_304 (113) = happyShift action_60+action_304 (115) = happyShift action_61+action_304 (116) = happyShift action_62+action_304 (118) = happyShift action_129+action_304 (119) = happyShift action_103+action_304 (23) = happyGoto action_104+action_304 (26) = happyGoto action_105+action_304 (27) = happyGoto action_106+action_304 (29) = happyGoto action_107+action_304 (31) = happyGoto action_108+action_304 (32) = happyGoto action_109+action_304 (33) = happyGoto action_110+action_304 (34) = happyGoto action_111+action_304 (37) = happyGoto action_112+action_304 (40) = happyGoto action_305+action_304 (41) = happyGoto action_114+action_304 (42) = happyGoto action_115+action_304 (43) = happyGoto action_116+action_304 (44) = happyGoto action_117+action_304 (45) = happyGoto action_118+action_304 (46) = happyGoto action_87+action_304 _ = happyReduce_60++action_305 (102) = happyShift action_375+action_305 _ = happyFail (happyExpListPerState 305)++action_306 (102) = happyShift action_374+action_306 _ = happyFail (happyExpListPerState 306)++action_307 (102) = happyShift action_373+action_307 _ = happyFail (happyExpListPerState 307)++action_308 _ = happyReduce_92++action_309 (100) = happyShift action_372+action_309 _ = happyFail (happyExpListPerState 309)++action_310 _ = happyReduce_35++action_311 (65) = happyShift action_39+action_311 (66) = happyShift action_93+action_311 (67) = happyShift action_119+action_311 (70) = happyShift action_95+action_311 (77) = happyShift action_120+action_311 (79) = happyShift action_121+action_311 (87) = happyShift action_122+action_311 (88) = happyShift action_123+action_311 (89) = happyShift action_96+action_311 (90) = happyShift action_97+action_311 (91) = happyShift action_124+action_311 (92) = happyShift action_99+action_311 (95) = happyShift action_100+action_311 (97) = happyShift action_125+action_311 (99) = happyShift action_126+action_311 (101) = happyShift action_127+action_311 (103) = happyShift action_128+action_311 (107) = happyShift action_57+action_311 (111) = happyShift action_58+action_311 (112) = happyShift action_59+action_311 (113) = happyShift action_60+action_311 (115) = happyShift action_61+action_311 (116) = happyShift action_62+action_311 (118) = happyShift action_129+action_311 (119) = happyShift action_103+action_311 (23) = happyGoto action_104+action_311 (26) = happyGoto action_105+action_311 (27) = happyGoto action_106+action_311 (29) = happyGoto action_107+action_311 (31) = happyGoto action_108+action_311 (32) = happyGoto action_109+action_311 (33) = happyGoto action_110+action_311 (34) = happyGoto action_111+action_311 (37) = happyGoto action_112+action_311 (40) = happyGoto action_371+action_311 (41) = happyGoto action_114+action_311 (42) = happyGoto action_115+action_311 (43) = happyGoto action_116+action_311 (44) = happyGoto action_117+action_311 (45) = happyGoto action_118+action_311 (46) = happyGoto action_87+action_311 _ = happyReduce_60++action_312 (65) = happyShift action_39+action_312 (66) = happyShift action_93+action_312 (67) = happyShift action_119+action_312 (70) = happyShift action_95+action_312 (77) = happyShift action_120+action_312 (79) = happyShift action_121+action_312 (87) = happyShift action_122+action_312 (88) = happyShift action_123+action_312 (89) = happyShift action_96+action_312 (90) = happyShift action_97+action_312 (91) = happyShift action_124+action_312 (92) = happyShift action_99+action_312 (95) = happyShift action_100+action_312 (97) = happyShift action_125+action_312 (99) = happyShift action_126+action_312 (101) = happyShift action_127+action_312 (103) = happyShift action_128+action_312 (107) = happyShift action_57+action_312 (111) = happyShift action_58+action_312 (112) = happyShift action_59+action_312 (113) = happyShift action_60+action_312 (115) = happyShift action_61+action_312 (116) = happyShift action_62+action_312 (118) = happyShift action_129+action_312 (119) = happyShift action_103+action_312 (23) = happyGoto action_104+action_312 (26) = happyGoto action_105+action_312 (27) = happyGoto action_106+action_312 (29) = happyGoto action_107+action_312 (31) = happyGoto action_108+action_312 (32) = happyGoto action_109+action_312 (33) = happyGoto action_110+action_312 (34) = happyGoto action_111+action_312 (37) = happyGoto action_112+action_312 (40) = happyGoto action_370+action_312 (41) = happyGoto action_114+action_312 (42) = happyGoto action_115+action_312 (43) = happyGoto action_116+action_312 (44) = happyGoto action_117+action_312 (45) = happyGoto action_118+action_312 (46) = happyGoto action_87+action_312 _ = happyReduce_60++action_313 (65) = happyShift action_39+action_313 (66) = happyShift action_93+action_313 (67) = happyShift action_119+action_313 (70) = happyShift action_95+action_313 (77) = happyShift action_120+action_313 (79) = happyShift action_121+action_313 (87) = happyShift action_122+action_313 (88) = happyShift action_123+action_313 (89) = happyShift action_96+action_313 (90) = happyShift action_97+action_313 (91) = happyShift action_124+action_313 (92) = happyShift action_99+action_313 (95) = happyShift action_100+action_313 (97) = happyShift action_125+action_313 (99) = happyShift action_126+action_313 (101) = happyShift action_127+action_313 (103) = happyShift action_128+action_313 (107) = happyShift action_57+action_313 (111) = happyShift action_58+action_313 (112) = happyShift action_59+action_313 (113) = happyShift action_60+action_313 (115) = happyShift action_61+action_313 (116) = happyShift action_62+action_313 (118) = happyShift action_129+action_313 (119) = happyShift action_103+action_313 (23) = happyGoto action_104+action_313 (26) = happyGoto action_105+action_313 (27) = happyGoto action_106+action_313 (29) = happyGoto action_107+action_313 (31) = happyGoto action_108+action_313 (32) = happyGoto action_109+action_313 (33) = happyGoto action_110+action_313 (34) = happyGoto action_111+action_313 (37) = happyGoto action_112+action_313 (40) = happyGoto action_369+action_313 (41) = happyGoto action_114+action_313 (42) = happyGoto action_115+action_313 (43) = happyGoto action_116+action_313 (44) = happyGoto action_117+action_313 (45) = happyGoto action_118+action_313 (46) = happyGoto action_87+action_313 _ = happyReduce_60++action_314 (102) = happyShift action_368+action_314 _ = happyFail (happyExpListPerState 314)++action_315 (98) = happyShift action_367+action_315 (105) = happyShift action_292+action_315 _ = happyFail (happyExpListPerState 315)++action_316 (65) = happyShift action_39+action_316 (66) = happyShift action_93+action_316 (67) = happyShift action_119+action_316 (70) = happyShift action_95+action_316 (77) = happyShift action_120+action_316 (79) = happyShift action_121+action_316 (87) = happyShift action_122+action_316 (88) = happyShift action_123+action_316 (89) = happyShift action_96+action_316 (90) = happyShift action_97+action_316 (91) = happyShift action_124+action_316 (92) = happyShift action_99+action_316 (95) = happyShift action_100+action_316 (97) = happyShift action_125+action_316 (99) = happyShift action_126+action_316 (101) = happyShift action_127+action_316 (103) = happyShift action_128+action_316 (107) = happyShift action_57+action_316 (111) = happyShift action_58+action_316 (112) = happyShift action_59+action_316 (113) = happyShift action_60+action_316 (115) = happyShift action_61+action_316 (116) = happyShift action_62+action_316 (118) = happyShift action_129+action_316 (119) = happyShift action_103+action_316 (23) = happyGoto action_104+action_316 (26) = happyGoto action_105+action_316 (27) = happyGoto action_106+action_316 (29) = happyGoto action_107+action_316 (31) = happyGoto action_108+action_316 (32) = happyGoto action_109+action_316 (33) = happyGoto action_110+action_316 (34) = happyGoto action_111+action_316 (37) = happyGoto action_112+action_316 (40) = happyGoto action_366+action_316 (41) = happyGoto action_114+action_316 (42) = happyGoto action_115+action_316 (43) = happyGoto action_116+action_316 (44) = happyGoto action_117+action_316 (45) = happyGoto action_118+action_316 (46) = happyGoto action_87+action_316 _ = happyReduce_60++action_317 _ = happyReduce_137++action_318 _ = happyReduce_28++action_319 (65) = happyShift action_39+action_319 (23) = happyGoto action_138+action_319 (25) = happyGoto action_365+action_319 _ = happyFail (happyExpListPerState 319)++action_320 _ = happyReduce_175++action_321 (102) = happyShift action_364+action_321 _ = happyFail (happyExpListPerState 321)++action_322 _ = happyReduce_174++action_323 (98) = happyShift action_363+action_323 _ = happyFail (happyExpListPerState 323)++action_324 _ = happyReduce_30++action_325 _ = happyReduce_146++action_326 _ = happyReduce_151++action_327 _ = happyReduce_94++action_328 _ = happyReduce_56++action_329 (100) = happyShift action_362+action_329 _ = happyFail (happyExpListPerState 329)++action_330 (100) = happyShift action_361+action_330 _ = happyFail (happyExpListPerState 330)++action_331 (98) = happyShift action_360+action_331 _ = happyFail (happyExpListPerState 331)++action_332 (98) = happyShift action_359+action_332 _ = happyFail (happyExpListPerState 332)++action_333 (98) = happyShift action_358+action_333 _ = happyFail (happyExpListPerState 333)++action_334 (106) = happyShift action_357+action_334 _ = happyFail (happyExpListPerState 334)++action_335 _ = happyReduce_95++action_336 (65) = happyShift action_39+action_336 (66) = happyShift action_93+action_336 (67) = happyShift action_119+action_336 (70) = happyShift action_95+action_336 (77) = happyShift action_120+action_336 (79) = happyShift action_121+action_336 (87) = happyShift action_122+action_336 (88) = happyShift action_123+action_336 (89) = happyShift action_96+action_336 (90) = happyShift action_97+action_336 (91) = happyShift action_124+action_336 (92) = happyShift action_99+action_336 (95) = happyShift action_100+action_336 (97) = happyShift action_125+action_336 (99) = happyShift action_126+action_336 (101) = happyShift action_127+action_336 (103) = happyShift action_128+action_336 (107) = happyShift action_57+action_336 (111) = happyShift action_58+action_336 (112) = happyShift action_59+action_336 (113) = happyShift action_60+action_336 (115) = happyShift action_61+action_336 (116) = happyShift action_62+action_336 (118) = happyShift action_129+action_336 (119) = happyShift action_103+action_336 (23) = happyGoto action_104+action_336 (26) = happyGoto action_105+action_336 (27) = happyGoto action_106+action_336 (29) = happyGoto action_107+action_336 (31) = happyGoto action_108+action_336 (32) = happyGoto action_109+action_336 (33) = happyGoto action_110+action_336 (34) = happyGoto action_111+action_336 (37) = happyGoto action_112+action_336 (40) = happyGoto action_356+action_336 (41) = happyGoto action_114+action_336 (42) = happyGoto action_115+action_336 (43) = happyGoto action_116+action_336 (44) = happyGoto action_117+action_336 (45) = happyGoto action_118+action_336 (46) = happyGoto action_87+action_336 _ = happyReduce_60++action_337 (65) = happyShift action_39+action_337 (91) = happyShift action_235+action_337 (101) = happyShift action_236+action_337 (107) = happyShift action_102+action_337 (23) = happyGoto action_233+action_337 (52) = happyGoto action_354+action_337 (56) = happyGoto action_355+action_337 (60) = happyGoto action_231+action_337 _ = happyReduce_145++action_338 _ = happyReduce_104++action_339 (65) = happyShift action_39+action_339 (66) = happyShift action_93+action_339 (67) = happyShift action_119+action_339 (70) = happyShift action_95+action_339 (77) = happyShift action_120+action_339 (79) = happyShift action_121+action_339 (87) = happyShift action_122+action_339 (88) = happyShift action_123+action_339 (89) = happyShift action_96+action_339 (90) = happyShift action_97+action_339 (91) = happyShift action_124+action_339 (92) = happyShift action_99+action_339 (95) = happyShift action_100+action_339 (97) = happyShift action_125+action_339 (99) = happyShift action_126+action_339 (101) = happyShift action_127+action_339 (103) = happyShift action_128+action_339 (107) = happyShift action_57+action_339 (111) = happyShift action_58+action_339 (112) = happyShift action_59+action_339 (113) = happyShift action_60+action_339 (115) = happyShift action_61+action_339 (116) = happyShift action_62+action_339 (118) = happyShift action_129+action_339 (119) = happyShift action_103+action_339 (23) = happyGoto action_104+action_339 (26) = happyGoto action_105+action_339 (27) = happyGoto action_106+action_339 (29) = happyGoto action_107+action_339 (31) = happyGoto action_108+action_339 (32) = happyGoto action_109+action_339 (33) = happyGoto action_110+action_339 (34) = happyGoto action_111+action_339 (37) = happyGoto action_112+action_339 (40) = happyGoto action_353+action_339 (41) = happyGoto action_114+action_339 (42) = happyGoto action_115+action_339 (43) = happyGoto action_116+action_339 (44) = happyGoto action_117+action_339 (45) = happyGoto action_118+action_339 (46) = happyGoto action_87+action_339 _ = happyReduce_60++action_340 (65) = happyShift action_39+action_340 (66) = happyShift action_93+action_340 (67) = happyShift action_119+action_340 (70) = happyShift action_95+action_340 (77) = happyShift action_120+action_340 (79) = happyShift action_121+action_340 (87) = happyShift action_122+action_340 (88) = happyShift action_123+action_340 (89) = happyShift action_96+action_340 (90) = happyShift action_97+action_340 (91) = happyShift action_124+action_340 (92) = happyShift action_99+action_340 (95) = happyShift action_100+action_340 (97) = happyShift action_125+action_340 (99) = happyShift action_126+action_340 (101) = happyShift action_127+action_340 (103) = happyShift action_128+action_340 (107) = happyShift action_57+action_340 (111) = happyShift action_58+action_340 (112) = happyShift action_59+action_340 (113) = happyShift action_60+action_340 (115) = happyShift action_61+action_340 (116) = happyShift action_62+action_340 (118) = happyShift action_129+action_340 (119) = happyShift action_103+action_340 (23) = happyGoto action_104+action_340 (26) = happyGoto action_105+action_340 (27) = happyGoto action_106+action_340 (29) = happyGoto action_107+action_340 (31) = happyGoto action_108+action_340 (32) = happyGoto action_109+action_340 (33) = happyGoto action_110+action_340 (34) = happyGoto action_111+action_340 (37) = happyGoto action_112+action_340 (40) = happyGoto action_352+action_340 (41) = happyGoto action_114+action_340 (42) = happyGoto action_115+action_340 (43) = happyGoto action_116+action_340 (44) = happyGoto action_117+action_340 (45) = happyGoto action_118+action_340 (46) = happyGoto action_87+action_340 _ = happyReduce_60++action_341 (65) = happyShift action_39+action_341 (66) = happyShift action_93+action_341 (67) = happyShift action_119+action_341 (70) = happyShift action_95+action_341 (77) = happyShift action_120+action_341 (79) = happyShift action_121+action_341 (87) = happyShift action_122+action_341 (88) = happyShift action_123+action_341 (89) = happyShift action_96+action_341 (90) = happyShift action_97+action_341 (91) = happyShift action_124+action_341 (92) = happyShift action_99+action_341 (95) = happyShift action_100+action_341 (97) = happyShift action_125+action_341 (99) = happyShift action_126+action_341 (101) = happyShift action_127+action_341 (103) = happyShift action_128+action_341 (107) = happyShift action_57+action_341 (111) = happyShift action_58+action_341 (112) = happyShift action_59+action_341 (113) = happyShift action_60+action_341 (115) = happyShift action_61+action_341 (116) = happyShift action_62+action_341 (118) = happyShift action_129+action_341 (119) = happyShift action_103+action_341 (23) = happyGoto action_104+action_341 (26) = happyGoto action_105+action_341 (27) = happyGoto action_106+action_341 (29) = happyGoto action_107+action_341 (31) = happyGoto action_108+action_341 (32) = happyGoto action_109+action_341 (33) = happyGoto action_110+action_341 (34) = happyGoto action_111+action_341 (37) = happyGoto action_112+action_341 (40) = happyGoto action_351+action_341 (41) = happyGoto action_114+action_341 (42) = happyGoto action_115+action_341 (43) = happyGoto action_116+action_341 (44) = happyGoto action_117+action_341 (45) = happyGoto action_118+action_341 (46) = happyGoto action_87+action_341 _ = happyReduce_60++action_342 (65) = happyShift action_39+action_342 (66) = happyShift action_93+action_342 (67) = happyShift action_119+action_342 (70) = happyShift action_95+action_342 (77) = happyShift action_120+action_342 (79) = happyShift action_121+action_342 (87) = happyShift action_122+action_342 (88) = happyShift action_123+action_342 (89) = happyShift action_96+action_342 (90) = happyShift action_97+action_342 (91) = happyShift action_124+action_342 (92) = happyShift action_99+action_342 (95) = happyShift action_100+action_342 (97) = happyShift action_125+action_342 (99) = happyShift action_126+action_342 (101) = happyShift action_127+action_342 (103) = happyShift action_128+action_342 (107) = happyShift action_57+action_342 (111) = happyShift action_58+action_342 (112) = happyShift action_59+action_342 (113) = happyShift action_60+action_342 (115) = happyShift action_61+action_342 (116) = happyShift action_62+action_342 (118) = happyShift action_129+action_342 (119) = happyShift action_103+action_342 (23) = happyGoto action_104+action_342 (26) = happyGoto action_105+action_342 (27) = happyGoto action_106+action_342 (29) = happyGoto action_107+action_342 (31) = happyGoto action_108+action_342 (32) = happyGoto action_109+action_342 (33) = happyGoto action_110+action_342 (34) = happyGoto action_111+action_342 (37) = happyGoto action_112+action_342 (40) = happyGoto action_306+action_342 (41) = happyGoto action_114+action_342 (42) = happyGoto action_115+action_342 (43) = happyGoto action_116+action_342 (44) = happyGoto action_117+action_342 (45) = happyGoto action_350+action_342 (46) = happyGoto action_87+action_342 _ = happyReduce_60++action_343 (96) = happyShift action_349+action_343 _ = happyFail (happyExpListPerState 343)++action_344 (65) = happyShift action_39+action_344 (23) = happyGoto action_37+action_344 (24) = happyGoto action_246+action_344 (47) = happyGoto action_348+action_344 (48) = happyGoto action_248+action_344 _ = happyReduce_132++action_345 _ = happyReduce_127++action_346 (65) = happyShift action_39+action_346 (66) = happyShift action_93+action_346 (67) = happyShift action_119+action_346 (70) = happyShift action_95+action_346 (77) = happyShift action_120+action_346 (79) = happyShift action_121+action_346 (87) = happyShift action_122+action_346 (88) = happyShift action_123+action_346 (89) = happyShift action_96+action_346 (90) = happyShift action_97+action_346 (91) = happyShift action_124+action_346 (92) = happyShift action_99+action_346 (95) = happyShift action_100+action_346 (97) = happyShift action_125+action_346 (99) = happyShift action_126+action_346 (101) = happyShift action_127+action_346 (103) = happyShift action_128+action_346 (107) = happyShift action_57+action_346 (111) = happyShift action_58+action_346 (112) = happyShift action_59+action_346 (113) = happyShift action_60+action_346 (115) = happyShift action_61+action_346 (116) = happyShift action_62+action_346 (118) = happyShift action_129+action_346 (119) = happyShift action_103+action_346 (23) = happyGoto action_104+action_346 (26) = happyGoto action_105+action_346 (27) = happyGoto action_106+action_346 (29) = happyGoto action_107+action_346 (31) = happyGoto action_108+action_346 (32) = happyGoto action_109+action_346 (33) = happyGoto action_110+action_346 (34) = happyGoto action_111+action_346 (37) = happyGoto action_112+action_346 (38) = happyGoto action_347+action_346 (39) = happyGoto action_200+action_346 (40) = happyGoto action_157+action_346 (41) = happyGoto action_114+action_346 (42) = happyGoto action_115+action_346 (43) = happyGoto action_116+action_346 (44) = happyGoto action_117+action_346 (45) = happyGoto action_118+action_346 (46) = happyGoto action_87+action_346 _ = happyReduce_60++action_347 _ = happyReduce_133++action_348 _ = happyReduce_130++action_349 _ = happyReduce_122++action_350 (102) = happyReduce_162+action_350 (104) = happyReduce_162+action_350 _ = happyReduce_114++action_351 (102) = happyShift action_388+action_351 _ = happyFail (happyExpListPerState 351)++action_352 (102) = happyShift action_387+action_352 _ = happyFail (happyExpListPerState 352)++action_353 (102) = happyShift action_386+action_353 _ = happyFail (happyExpListPerState 353)++action_354 (98) = happyShift action_385+action_354 _ = happyFail (happyExpListPerState 354)++action_355 (105) = happyShift action_383+action_355 (108) = happyShift action_384+action_355 _ = happyReduce_144++action_356 (100) = happyShift action_382+action_356 _ = happyFail (happyExpListPerState 356)++action_357 (65) = happyShift action_39+action_357 (66) = happyShift action_93+action_357 (67) = happyShift action_119+action_357 (70) = happyShift action_95+action_357 (77) = happyShift action_120+action_357 (79) = happyShift action_121+action_357 (87) = happyShift action_122+action_357 (88) = happyShift action_123+action_357 (89) = happyShift action_96+action_357 (90) = happyShift action_97+action_357 (91) = happyShift action_124+action_357 (92) = happyShift action_99+action_357 (95) = happyShift action_100+action_357 (97) = happyShift action_125+action_357 (99) = happyShift action_126+action_357 (101) = happyShift action_127+action_357 (103) = happyShift action_128+action_357 (107) = happyShift action_57+action_357 (111) = happyShift action_58+action_357 (112) = happyShift action_59+action_357 (113) = happyShift action_60+action_357 (115) = happyShift action_61+action_357 (116) = happyShift action_62+action_357 (118) = happyShift action_129+action_357 (119) = happyShift action_103+action_357 (23) = happyGoto action_104+action_357 (26) = happyGoto action_105+action_357 (27) = happyGoto action_106+action_357 (29) = happyGoto action_107+action_357 (31) = happyGoto action_108+action_357 (32) = happyGoto action_109+action_357 (33) = happyGoto action_110+action_357 (34) = happyGoto action_111+action_357 (37) = happyGoto action_112+action_357 (40) = happyGoto action_381+action_357 (41) = happyGoto action_114+action_357 (42) = happyGoto action_115+action_357 (43) = happyGoto action_116+action_357 (44) = happyGoto action_117+action_357 (45) = happyGoto action_118+action_357 (46) = happyGoto action_87+action_357 _ = happyReduce_60++action_358 _ = happyReduce_74++action_359 _ = happyReduce_75++action_360 _ = happyReduce_76++action_361 _ = happyReduce_72++action_362 _ = happyReduce_73++action_363 (72) = happyShift action_319+action_363 (22) = happyGoto action_380+action_363 _ = happyReduce_41++action_364 _ = happyReduce_177++action_365 _ = happyReduce_42++action_366 _ = happyReduce_135++action_367 (72) = happyShift action_319+action_367 (22) = happyGoto action_379+action_367 _ = happyReduce_41++action_368 _ = happyReduce_176++action_369 (102) = happyShift action_378+action_369 _ = happyFail (happyExpListPerState 369)++action_370 (102) = happyShift action_377+action_370 _ = happyFail (happyExpListPerState 370)++action_371 (102) = happyShift action_376+action_371 _ = happyFail (happyExpListPerState 371)++action_372 _ = happyReduce_71++action_373 _ = happyReduce_63++action_374 _ = happyReduce_64++action_375 _ = happyReduce_65++action_376 _ = happyReduce_66++action_377 _ = happyReduce_67++action_378 _ = happyReduce_68++action_379 _ = happyReduce_27++action_380 _ = happyReduce_29++action_381 (102) = happyShift action_392+action_381 _ = happyFail (happyExpListPerState 381)++action_382 (110) = happyShift action_391+action_382 _ = happyFail (happyExpListPerState 382)++action_383 (65) = happyShift action_39+action_383 (91) = happyShift action_235+action_383 (101) = happyShift action_236+action_383 (107) = happyShift action_102+action_383 (23) = happyGoto action_233+action_383 (52) = happyGoto action_390+action_383 (56) = happyGoto action_355+action_383 (60) = happyGoto action_231+action_383 _ = happyReduce_145++action_384 (65) = happyShift action_39+action_384 (66) = happyShift action_93+action_384 (67) = happyShift action_119+action_384 (70) = happyShift action_95+action_384 (77) = happyShift action_120+action_384 (79) = happyShift action_121+action_384 (87) = happyShift action_122+action_384 (88) = happyShift action_123+action_384 (89) = happyShift action_96+action_384 (90) = happyShift action_97+action_384 (91) = happyShift action_124+action_384 (92) = happyShift action_99+action_384 (95) = happyShift action_100+action_384 (97) = happyShift action_125+action_384 (99) = happyShift action_126+action_384 (101) = happyShift action_127+action_384 (103) = happyShift action_128+action_384 (107) = happyShift action_57+action_384 (111) = happyShift action_58+action_384 (112) = happyShift action_59+action_384 (113) = happyShift action_60+action_384 (115) = happyShift action_61+action_384 (116) = happyShift action_62+action_384 (118) = happyShift action_129+action_384 (119) = happyShift action_103+action_384 (23) = happyGoto action_104+action_384 (26) = happyGoto action_105+action_384 (27) = happyGoto action_106+action_384 (29) = happyGoto action_107+action_384 (31) = happyGoto action_108+action_384 (32) = happyGoto action_109+action_384 (33) = happyGoto action_110+action_384 (34) = happyGoto action_111+action_384 (37) = happyGoto action_112+action_384 (38) = happyGoto action_389+action_384 (39) = happyGoto action_200+action_384 (40) = happyGoto action_157+action_384 (41) = happyGoto action_114+action_384 (42) = happyGoto action_115+action_384 (43) = happyGoto action_116+action_384 (44) = happyGoto action_117+action_384 (45) = happyGoto action_118+action_384 (46) = happyGoto action_87+action_384 _ = happyReduce_60++action_385 _ = happyReduce_96++action_386 (117) = happyReduce_66+action_386 _ = happyReduce_66++action_387 (117) = happyReduce_67+action_387 _ = happyReduce_67++action_388 (117) = happyReduce_68+action_388 _ = happyReduce_68++action_389 (105) = happyShift action_395+action_389 _ = happyReduce_142++action_390 _ = happyReduce_143++action_391 (65) = happyShift action_39+action_391 (66) = happyShift action_93+action_391 (67) = happyShift action_119+action_391 (70) = happyShift action_95+action_391 (77) = happyShift action_120+action_391 (79) = happyShift action_121+action_391 (87) = happyShift action_122+action_391 (88) = happyShift action_123+action_391 (89) = happyShift action_96+action_391 (90) = happyShift action_97+action_391 (91) = happyShift action_124+action_391 (92) = happyShift action_99+action_391 (95) = happyShift action_100+action_391 (97) = happyShift action_125+action_391 (99) = happyShift action_126+action_391 (101) = happyShift action_127+action_391 (103) = happyShift action_128+action_391 (107) = happyShift action_57+action_391 (111) = happyShift action_58+action_391 (112) = happyShift action_59+action_391 (113) = happyShift action_60+action_391 (115) = happyShift action_61+action_391 (116) = happyShift action_62+action_391 (118) = happyShift action_129+action_391 (119) = happyShift action_103+action_391 (23) = happyGoto action_104+action_391 (26) = happyGoto action_105+action_391 (27) = happyGoto action_106+action_391 (29) = happyGoto action_107+action_391 (31) = happyGoto action_108+action_391 (32) = happyGoto action_109+action_391 (33) = happyGoto action_110+action_391 (34) = happyGoto action_111+action_391 (37) = happyGoto action_112+action_391 (40) = happyGoto action_394+action_391 (41) = happyGoto action_114+action_391 (42) = happyGoto action_115+action_391 (43) = happyGoto action_116+action_391 (44) = happyGoto action_117+action_391 (45) = happyGoto action_118+action_391 (46) = happyGoto action_87+action_391 _ = happyReduce_60++action_392 (110) = happyShift action_393+action_392 _ = happyFail (happyExpListPerState 392)++action_393 (65) = happyShift action_39+action_393 (66) = happyShift action_93+action_393 (67) = happyShift action_119+action_393 (70) = happyShift action_95+action_393 (77) = happyShift action_120+action_393 (79) = happyShift action_121+action_393 (87) = happyShift action_122+action_393 (88) = happyShift action_123+action_393 (89) = happyShift action_96+action_393 (90) = happyShift action_97+action_393 (91) = happyShift action_124+action_393 (92) = happyShift action_99+action_393 (95) = happyShift action_100+action_393 (97) = happyShift action_125+action_393 (99) = happyShift action_126+action_393 (101) = happyShift action_127+action_393 (103) = happyShift action_128+action_393 (107) = happyShift action_57+action_393 (111) = happyShift action_58+action_393 (112) = happyShift action_59+action_393 (113) = happyShift action_60+action_393 (115) = happyShift action_61+action_393 (116) = happyShift action_62+action_393 (118) = happyShift action_129+action_393 (119) = happyShift action_103+action_393 (23) = happyGoto action_104+action_393 (26) = happyGoto action_105+action_393 (27) = happyGoto action_106+action_393 (29) = happyGoto action_107+action_393 (31) = happyGoto action_108+action_393 (32) = happyGoto action_109+action_393 (33) = happyGoto action_110+action_393 (34) = happyGoto action_111+action_393 (37) = happyGoto action_112+action_393 (40) = happyGoto action_397+action_393 (41) = happyGoto action_114+action_393 (42) = happyGoto action_115+action_393 (43) = happyGoto action_116+action_393 (44) = happyGoto action_117+action_393 (45) = happyGoto action_118+action_393 (46) = happyGoto action_87+action_393 _ = happyReduce_60++action_394 _ = happyReduce_81++action_395 (65) = happyShift action_39+action_395 (91) = happyShift action_235+action_395 (101) = happyShift action_236+action_395 (107) = happyShift action_102+action_395 (23) = happyGoto action_233+action_395 (52) = happyGoto action_396+action_395 (56) = happyGoto action_355+action_395 (60) = happyGoto action_231+action_395 _ = happyReduce_145++action_396 _ = happyReduce_141++action_397 _ = happyReduce_82++happyReduce_1 = happySpecReduce_1 4 happyReduction_1+happyReduction_1 (HappyAbsSyn4 happy_var_1)+ = HappyAbsSyn4+ (reverse happy_var_1+ )+happyReduction_1 _ = notHappyAtAll++happyReduce_2 = happySpecReduce_0 5 happyReduction_2+happyReduction_2 = HappyAbsSyn4+ ([]+ )++happyReduce_3 = happySpecReduce_2 5 happyReduction_3+happyReduction_3 (HappyAbsSyn6 happy_var_2)+ (HappyAbsSyn4 happy_var_1)+ = HappyAbsSyn4+ (happy_var_2 : happy_var_1+ )+happyReduction_3 _ _ = notHappyAtAll++happyReduce_4 = happySpecReduce_1 6 happyReduction_4+happyReduction_4 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_4 _ = notHappyAtAll++happyReduce_5 = happySpecReduce_1 6 happyReduction_5+happyReduction_5 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_5 _ = notHappyAtAll++happyReduce_6 = happySpecReduce_1 6 happyReduction_6+happyReduction_6 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_6 _ = notHappyAtAll++happyReduce_7 = happySpecReduce_1 6 happyReduction_7+happyReduction_7 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_7 _ = notHappyAtAll++happyReduce_8 = happySpecReduce_1 6 happyReduction_8+happyReduction_8 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_8 _ = notHappyAtAll++happyReduce_9 = happySpecReduce_1 6 happyReduction_9+happyReduction_9 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_9 _ = notHappyAtAll++happyReduce_10 = happySpecReduce_1 6 happyReduction_10+happyReduction_10 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_10 _ = notHappyAtAll++happyReduce_11 = happySpecReduce_1 6 happyReduction_11+happyReduction_11 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_11 _ = notHappyAtAll++happyReduce_12 = happySpecReduce_1 6 happyReduction_12+happyReduction_12 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_12 _ = notHappyAtAll++happyReduce_13 = happySpecReduce_1 6 happyReduction_13+happyReduction_13 (HappyAbsSyn6 happy_var_1)+ = HappyAbsSyn6+ (happy_var_1+ )+happyReduction_13 _ = notHappyAtAll++happyReduce_14 = happySpecReduce_2 6 happyReduction_14+happyReduction_14 (HappyAbsSyn6 happy_var_2)+ _+ = HappyAbsSyn6+ (C.OverrideDecl Impredicative [happy_var_2]+ )+happyReduction_14 _ _ = notHappyAtAll++happyReduce_15 = happyReduce 4 6 happyReduction_15+happyReduction_15 (_ `HappyStk`+ (HappyAbsSyn4 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.OverrideDecl Impredicative happy_var_3+ ) `HappyStk` happyRest++happyReduce_16 = happySpecReduce_2 6 happyReduction_16+happyReduction_16 (HappyAbsSyn6 happy_var_2)+ _+ = HappyAbsSyn6+ (C.OverrideDecl Fail [happy_var_2]+ )+happyReduction_16 _ _ = notHappyAtAll++happyReduce_17 = happyReduce 4 6 happyReduction_17+happyReduction_17 (_ `HappyStk`+ (HappyAbsSyn4 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.OverrideDecl Fail happy_var_3+ ) `HappyStk` happyRest++happyReduce_18 = happySpecReduce_2 6 happyReduction_18+happyReduction_18 (HappyAbsSyn6 happy_var_2)+ _+ = HappyAbsSyn6+ (C.OverrideDecl Check [happy_var_2]+ )+happyReduction_18 _ _ = notHappyAtAll++happyReduce_19 = happyReduce 4 6 happyReduction_19+happyReduction_19 (_ `HappyStk`+ (HappyAbsSyn4 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.OverrideDecl Check happy_var_3+ ) `HappyStk` happyRest++happyReduce_20 = happySpecReduce_2 6 happyReduction_20+happyReduction_20 (HappyAbsSyn6 happy_var_2)+ _+ = HappyAbsSyn6+ (C.OverrideDecl TrustMe [happy_var_2]+ )+happyReduction_20 _ _ = notHappyAtAll++happyReduce_21 = happyReduce 4 6 happyReduction_21+happyReduction_21 (_ `HappyStk`+ (HappyAbsSyn4 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.OverrideDecl TrustMe happy_var_3+ ) `HappyStk` happyRest++happyReduce_22 = happySpecReduce_2 7 happyReduction_22+happyReduction_22 (HappyAbsSyn12 happy_var_2)+ _+ = HappyAbsSyn6+ (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.Ind tel t cs fs+ )+happyReduction_22 _ _ = notHappyAtAll++happyReduce_23 = happySpecReduce_3 8 happyReduction_23+happyReduction_23 (HappyAbsSyn12 happy_var_3)+ _+ _+ = HappyAbsSyn6+ (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.Ind tel t cs fs+ )+happyReduction_23 _ _ _ = notHappyAtAll++happyReduce_24 = happySpecReduce_2 9 happyReduction_24+happyReduction_24 (HappyAbsSyn12 happy_var_2)+ _+ = HappyAbsSyn6+ (let (n,tel,t,cs,fs) = happy_var_2 in C.DataDecl n A.NotSized A.CoInd tel t cs fs+ )+happyReduction_24 _ _ = notHappyAtAll++happyReduce_25 = happySpecReduce_3 10 happyReduction_25+happyReduction_25 (HappyAbsSyn12 happy_var_3)+ _+ _+ = HappyAbsSyn6+ (let (n,tel,t,cs,fs) = happy_var_3 in C.DataDecl n A.Sized A.CoInd tel t cs fs+ )+happyReduction_25 _ _ _ = notHappyAtAll++happyReduce_26 = happySpecReduce_2 11 happyReduction_26+happyReduction_26 (HappyAbsSyn13 happy_var_2)+ _+ = HappyAbsSyn6+ (let (n,tel,t,c,fs) = happy_var_2 in C.RecordDecl n tel t c fs+ )+happyReduction_26 _ _ = notHappyAtAll++happyReduce_27 = happyReduce 8 12 happyReduction_27+happyReduction_27 ((HappyAbsSyn22 happy_var_8) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn51 happy_var_6) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn31 happy_var_2) `HappyStk`+ (HappyAbsSyn23 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn12+ ((happy_var_1, happy_var_2, happy_var_4, reverse happy_var_6, happy_var_8)+ ) `HappyStk` happyRest++happyReduce_28 = happyReduce 6 12 happyReduction_28+happyReduction_28 ((HappyAbsSyn22 happy_var_6) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn51 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn31 happy_var_2) `HappyStk`+ (HappyAbsSyn23 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn12+ ((happy_var_1, happy_var_2, C.set0, reverse happy_var_4, happy_var_6)+ ) `HappyStk` happyRest++happyReduce_29 = happyReduce 8 13 happyReduction_29+happyReduction_29 ((HappyAbsSyn22 happy_var_8) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn50 happy_var_6) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn31 happy_var_2) `HappyStk`+ (HappyAbsSyn23 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn13+ ((happy_var_1, happy_var_2, happy_var_4, happy_var_6, happy_var_8)+ ) `HappyStk` happyRest++happyReduce_30 = happyReduce 6 13 happyReduction_30+happyReduction_30 ((HappyAbsSyn22 happy_var_6) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn50 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn31 happy_var_2) `HappyStk`+ (HappyAbsSyn23 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn13+ ((happy_var_1, happy_var_2, C.set0, happy_var_4, happy_var_6)+ ) `HappyStk` happyRest++happyReduce_31 = happyReduce 5 14 happyReduction_31+happyReduction_31 (_ `HappyStk`+ (HappyAbsSyn52 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn49 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.FunDecl A.Ind happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_32 = happyReduce 5 15 happyReduction_32+happyReduction_32 (_ `HappyStk`+ (HappyAbsSyn52 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn49 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.FunDecl A.CoInd happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_33 = happyReduce 4 16 happyReduction_33+happyReduction_33 (_ `HappyStk`+ (HappyAbsSyn4 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.MutualDecl (reverse happy_var_3)+ ) `HappyStk` happyRest++happyReduce_34 = happySpecReduce_3 17 happyReduction_34+happyReduction_34 (HappyAbsSyn18 happy_var_3)+ _+ (HappyAbsSyn19 happy_var_1)+ = HappyAbsSyn6+ (C.LetDecl happy_var_1 happy_var_3+ )+happyReduction_34 _ _ _ = notHappyAtAll++happyReduce_35 = happyReduce 5 18 happyReduction_35+happyReduction_35 ((HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn20 happy_var_3) `HappyStk`+ (HappyAbsSyn31 happy_var_2) `HappyStk`+ (HappyAbsSyn35 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn18+ (let (dec,n) = happy_var_1 in C.LetDef dec n happy_var_2 happy_var_3 happy_var_5+ ) `HappyStk` happyRest++happyReduce_36 = happySpecReduce_0 19 happyReduction_36+happyReduction_36 = HappyAbsSyn19+ (False+ )++happyReduce_37 = happySpecReduce_1 19 happyReduction_37+happyReduction_37 _+ = HappyAbsSyn19+ (True+ )++happyReduce_38 = happySpecReduce_0 20 happyReduction_38+happyReduction_38 = HappyAbsSyn20+ (Nothing+ )++happyReduce_39 = happySpecReduce_2 20 happyReduction_39+happyReduction_39 (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn20+ (Just happy_var_2+ )+happyReduction_39 _ _ = notHappyAtAll++happyReduce_40 = happyReduce 4 21 happyReduction_40+happyReduction_40 ((HappyAbsSyn56 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn6+ (C.PatternDecl (head happy_var_2) (tail happy_var_2) happy_var_4+ ) `HappyStk` happyRest++happyReduce_41 = happySpecReduce_0 22 happyReduction_41+happyReduction_41 = HappyAbsSyn22+ ([]+ )++happyReduce_42 = happySpecReduce_2 22 happyReduction_42+happyReduction_42 (HappyAbsSyn22 happy_var_2)+ _+ = HappyAbsSyn22+ (happy_var_2+ )+happyReduction_42 _ _ = notHappyAtAll++happyReduce_43 = happySpecReduce_1 23 happyReduction_43+happyReduction_43 (HappyTerminal (T.Id happy_var_1 _))+ = HappyAbsSyn23+ (C.Name happy_var_1+ )+happyReduction_43 _ = notHappyAtAll++happyReduce_44 = happySpecReduce_1 24 happyReduction_44+happyReduction_44 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn22+ ([happy_var_1]+ )+happyReduction_44 _ = notHappyAtAll++happyReduce_45 = happySpecReduce_2 24 happyReduction_45+happyReduction_45 (HappyAbsSyn22 happy_var_2)+ (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn22+ (happy_var_1 : happy_var_2+ )+happyReduction_45 _ _ = notHappyAtAll++happyReduce_46 = happySpecReduce_1 25 happyReduction_46+happyReduction_46 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn22+ ([happy_var_1]+ )+happyReduction_46 _ = notHappyAtAll++happyReduce_47 = happySpecReduce_3 25 happyReduction_47+happyReduction_47 (HappyAbsSyn22 happy_var_3)+ _+ (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn22+ (happy_var_1 : happy_var_3+ )+happyReduction_47 _ _ _ = notHappyAtAll++happyReduce_48 = happySpecReduce_1 26 happyReduction_48+happyReduction_48 _+ = HappyAbsSyn26+ (SPos+ )++happyReduce_49 = happySpecReduce_1 26 happyReduction_49+happyReduction_49 _+ = HappyAbsSyn26+ (Pos+ )++happyReduce_50 = happySpecReduce_1 26 happyReduction_50+happyReduction_50 _+ = HappyAbsSyn26+ (Neg+ )++happyReduce_51 = happySpecReduce_1 26 happyReduction_51+happyReduction_51 _+ = HappyAbsSyn26+ (Const+ )++happyReduce_52 = happySpecReduce_1 26 happyReduction_52+happyReduction_52 _+ = HappyAbsSyn26+ (Param+ )++happyReduce_53 = happySpecReduce_1 26 happyReduction_53+happyReduction_53 _+ = HappyAbsSyn26+ (Rec+ )++happyReduce_54 = happySpecReduce_2 27 happyReduction_54+happyReduction_54 (HappyAbsSyn28 happy_var_2)+ _+ = HappyAbsSyn27+ (A.Measure happy_var_2+ )+happyReduction_54 _ _ = notHappyAtAll++happyReduce_55 = happySpecReduce_2 28 happyReduction_55+happyReduction_55 _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn28+ ([happy_var_1]+ )+happyReduction_55 _ _ = notHappyAtAll++happyReduce_56 = happySpecReduce_3 28 happyReduction_56+happyReduction_56 (HappyAbsSyn28 happy_var_3)+ _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn28+ (happy_var_1 : happy_var_3+ )+happyReduction_56 _ _ _ = notHappyAtAll++happyReduce_57 = happySpecReduce_3 29 happyReduction_57+happyReduction_57 (HappyAbsSyn27 happy_var_3)+ _+ (HappyAbsSyn27 happy_var_1)+ = HappyAbsSyn29+ (A.Bound A.Lt happy_var_1 happy_var_3+ )+happyReduction_57 _ _ _ = notHappyAtAll++happyReduce_58 = happySpecReduce_3 29 happyReduction_58+happyReduction_58 (HappyAbsSyn27 happy_var_3)+ _+ (HappyAbsSyn27 happy_var_1)+ = HappyAbsSyn29+ (A.Bound A.Le happy_var_1 happy_var_3+ )+happyReduction_58 _ _ _ = notHappyAtAll++happyReduce_59 = happySpecReduce_1 30 happyReduction_59+happyReduction_59 (HappyAbsSyn28 happy_var_1)+ = HappyAbsSyn22+ (let { f (C.Ident (C.QName x)) = x+ ; f e = error ("not an identifier: " ++ C.prettyExpr e)+ } in map f happy_var_1+ )+happyReduction_59 _ = notHappyAtAll++happyReduce_60 = happySpecReduce_0 31 happyReduction_60+happyReduction_60 = HappyAbsSyn31+ ([]+ )++happyReduce_61 = happySpecReduce_2 31 happyReduction_61+happyReduction_61 (HappyAbsSyn31 happy_var_2)+ (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn31+ (happy_var_1 : happy_var_2+ )+happyReduction_61 _ _ = notHappyAtAll++happyReduce_62 = happySpecReduce_2 31 happyReduction_62+happyReduction_62 (HappyAbsSyn31 happy_var_2)+ (HappyAbsSyn27 happy_var_1)+ = HappyAbsSyn31+ (C.TMeasure happy_var_1 : happy_var_2+ )+happyReduction_62 _ _ = notHappyAtAll++happyReduce_63 = happyReduce 5 32 happyReduction_63+happyReduction_63 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind (Dec Default) happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_64 = happyReduce 5 32 happyReduction_64+happyReduction_64 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded A.defaultDec happy_var_2 A.Lt happy_var_4+ ) `HappyStk` happyRest++happyReduce_65 = happyReduce 5 32 happyReduction_65+happyReduction_65 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded A.defaultDec happy_var_2 A.Le happy_var_4+ ) `HappyStk` happyRest++happyReduce_66 = happyReduce 6 32 happyReduction_66+happyReduction_66 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn26 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5+ ) `HappyStk` happyRest++happyReduce_67 = happyReduce 6 32 happyReduction_67+happyReduction_67 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn26 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded (Dec happy_var_1) happy_var_3 A.Lt happy_var_5+ ) `HappyStk` happyRest++happyReduce_68 = happyReduce 6 32 happyReduction_68+happyReduction_68 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn26 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded (Dec happy_var_1) happy_var_3 A.Le happy_var_5+ ) `HappyStk` happyRest++happyReduce_69 = happySpecReduce_1 32 happyReduction_69+happyReduction_69 (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn32+ (happy_var_1+ )+happyReduction_69 _ = notHappyAtAll++happyReduce_70 = happySpecReduce_1 32 happyReduction_70+happyReduction_70 (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn32+ (happy_var_1+ )+happyReduction_70 _ = notHappyAtAll++happyReduce_71 = happyReduce 5 33 happyReduction_71+happyReduction_71 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind A.irrelevantDec happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_72 = happyReduce 5 33 happyReduction_72+happyReduction_72 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded A.irrelevantDec happy_var_2 A.Lt happy_var_4+ ) `HappyStk` happyRest++happyReduce_73 = happyReduce 5 33 happyReduction_73+happyReduction_73 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded A.irrelevantDec happy_var_2 A.Le happy_var_4+ ) `HappyStk` happyRest++happyReduce_74 = happyReduce 5 34 happyReduction_74+happyReduction_74 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind A.Hidden happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_75 = happyReduce 5 34 happyReduction_75+happyReduction_75 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded A.Hidden happy_var_2 A.Lt happy_var_4+ ) `HappyStk` happyRest++happyReduce_76 = happyReduce 5 34 happyReduction_76+happyReduction_76 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBounded A.Hidden happy_var_2 A.Le happy_var_4+ ) `HappyStk` happyRest++happyReduce_77 = happySpecReduce_1 35 happyReduction_77+happyReduction_77 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn35+ ((A.defaultDec , happy_var_1)+ )+happyReduction_77 _ = notHappyAtAll++happyReduce_78 = happySpecReduce_3 35 happyReduction_78+happyReduction_78 _+ (HappyAbsSyn23 happy_var_2)+ _+ = HappyAbsSyn35+ ((A.irrelevantDec, happy_var_2)+ )+happyReduction_78 _ _ _ = notHappyAtAll++happyReduce_79 = happySpecReduce_2 35 happyReduction_79+happyReduction_79 (HappyAbsSyn23 happy_var_2)+ (HappyAbsSyn26 happy_var_1)+ = HappyAbsSyn35+ ((Dec happy_var_1 , happy_var_2)+ )+happyReduction_79 _ _ = notHappyAtAll++happyReduce_80 = happySpecReduce_1 36 happyReduction_80+happyReduction_80 (HappyAbsSyn18 happy_var_1)+ = HappyAbsSyn18+ (happy_var_1+ )+happyReduction_80 _ = notHappyAtAll++happyReduce_81 = happyReduce 7 36 happyReduction_81+happyReduction_81 ((HappyAbsSyn38 happy_var_7) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn18+ (C.LetDef A.irrelevantDec happy_var_2 [] (Just happy_var_4) happy_var_7+ ) `HappyStk` happyRest++happyReduce_82 = happyReduce 8 36 happyReduction_82+happyReduction_82 ((HappyAbsSyn38 happy_var_8) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn23 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn26 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn18+ (C.LetDef (Dec happy_var_1) happy_var_3 [] (Just happy_var_5) happy_var_8+ ) `HappyStk` happyRest++happyReduce_83 = happySpecReduce_1 37 happyReduction_83+happyReduction_83 (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn31+ ([C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1]+ )+happyReduction_83 _ = notHappyAtAll++happyReduce_84 = happySpecReduce_3 37 happyReduction_84+happyReduction_84 _+ (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn31+ ([C.TBind A.irrelevantDec [] happy_var_2]+ )+happyReduction_84 _ _ _ = notHappyAtAll++happyReduce_85 = happySpecReduce_2 37 happyReduction_85+happyReduction_85 (HappyAbsSyn38 happy_var_2)+ (HappyAbsSyn26 happy_var_1)+ = HappyAbsSyn31+ ([C.TBind (Dec happy_var_1) [] happy_var_2]+ )+happyReduction_85 _ _ = notHappyAtAll++happyReduce_86 = happySpecReduce_1 37 happyReduction_86+happyReduction_86 (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn31+ ([happy_var_1]+ )+happyReduction_86 _ = notHappyAtAll++happyReduce_87 = happySpecReduce_1 37 happyReduction_87+happyReduction_87 (HappyAbsSyn27 happy_var_1)+ = HappyAbsSyn31+ ([C.TMeasure happy_var_1]+ )+happyReduction_87 _ = notHappyAtAll++happyReduce_88 = happySpecReduce_1 37 happyReduction_88+happyReduction_88 (HappyAbsSyn29 happy_var_1)+ = HappyAbsSyn31+ ([C.TBound happy_var_1]+ )+happyReduction_88 _ = notHappyAtAll++happyReduce_89 = happySpecReduce_1 37 happyReduction_89+happyReduction_89 (HappyAbsSyn31 happy_var_1)+ = HappyAbsSyn31+ (happy_var_1+ )+happyReduction_89 _ = notHappyAtAll++happyReduce_90 = happySpecReduce_1 38 happyReduction_90+happyReduction_90 (HappyAbsSyn28 happy_var_1)+ = HappyAbsSyn38+ (foldr1 C.Pair happy_var_1+ )+happyReduction_90 _ = notHappyAtAll++happyReduce_91 = happySpecReduce_1 39 happyReduction_91+happyReduction_91 (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn28+ ([happy_var_1]+ )+happyReduction_91 _ = notHappyAtAll++happyReduce_92 = happySpecReduce_3 39 happyReduction_92+happyReduction_92 (HappyAbsSyn28 happy_var_3)+ _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn28+ (happy_var_1 : happy_var_3+ )+happyReduction_92 _ _ _ = notHappyAtAll++happyReduce_93 = happySpecReduce_3 40 happyReduction_93+happyReduction_93 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn31 happy_var_1)+ = HappyAbsSyn38+ (C.Quant A.Pi happy_var_1 happy_var_3+ )+happyReduction_93 _ _ _ = notHappyAtAll++happyReduce_94 = happyReduce 4 40 happyReduction_94+happyReduction_94 ((HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn38+ (foldr C.Lam happy_var_4 happy_var_2+ ) `HappyStk` happyRest++happyReduce_95 = happyReduce 4 40 happyReduction_95+happyReduction_95 ((HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn18 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn38+ (C.LLet happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_96 = happyReduce 6 40 happyReduction_96+happyReduction_96 (_ `HappyStk`+ (HappyAbsSyn52 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn20 happy_var_3) `HappyStk`+ (HappyAbsSyn38 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn38+ (C.Case happy_var_2 happy_var_3 happy_var_5+ ) `HappyStk` happyRest++happyReduce_97 = happySpecReduce_1 40 happyReduction_97+happyReduction_97 (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn38+ (happy_var_1+ )+happyReduction_97 _ = notHappyAtAll++happyReduce_98 = happySpecReduce_3 40 happyReduction_98+happyReduction_98 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn38+ (C.Plus happy_var_1 happy_var_3+ )+happyReduction_98 _ _ _ = notHappyAtAll++happyReduce_99 = happySpecReduce_3 40 happyReduction_99+happyReduction_99 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn38+ (C.App happy_var_1 [happy_var_3]+ )+happyReduction_99 _ _ _ = notHappyAtAll++happyReduce_100 = happySpecReduce_3 40 happyReduction_100+happyReduction_100 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn38+ (C.App happy_var_3 [happy_var_1]+ )+happyReduction_100 _ _ _ = notHappyAtAll++happyReduce_101 = happySpecReduce_1 41 happyReduction_101+happyReduction_101 (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn38+ (happy_var_1+ )+happyReduction_101 _ = notHappyAtAll++happyReduce_102 = happySpecReduce_3 41 happyReduction_102+happyReduction_102 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn38+ (C.Quant A.Sigma [happy_var_1] happy_var_3+ )+happyReduction_102 _ _ _ = notHappyAtAll++happyReduce_103 = happySpecReduce_1 42 happyReduction_103+happyReduction_103 (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn32+ (C.TBind (Dec Default) {- A.defaultDec -} [] happy_var_1+ )+happyReduction_103 _ = notHappyAtAll++happyReduce_104 = happySpecReduce_3 42 happyReduction_104+happyReduction_104 _+ (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn32+ (C.TBind A.irrelevantDec [] happy_var_2+ )+happyReduction_104 _ _ _ = notHappyAtAll++happyReduce_105 = happySpecReduce_2 42 happyReduction_105+happyReduction_105 (HappyAbsSyn38 happy_var_2)+ (HappyAbsSyn26 happy_var_1)+ = HappyAbsSyn32+ (C.TBind (Dec happy_var_1) [] happy_var_2+ )+happyReduction_105 _ _ = notHappyAtAll++happyReduce_106 = happySpecReduce_1 42 happyReduction_106+happyReduction_106 (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn32+ (happy_var_1+ )+happyReduction_106 _ = notHappyAtAll++happyReduce_107 = happySpecReduce_1 42 happyReduction_107+happyReduction_107 (HappyAbsSyn27 happy_var_1)+ = HappyAbsSyn32+ (C.TMeasure happy_var_1+ )+happyReduction_107 _ = notHappyAtAll++happyReduce_108 = happySpecReduce_1 42 happyReduction_108+happyReduction_108 (HappyAbsSyn29 happy_var_1)+ = HappyAbsSyn32+ (C.TBound happy_var_1+ )+happyReduction_108 _ = notHappyAtAll++happyReduce_109 = happySpecReduce_1 43 happyReduction_109+happyReduction_109 (HappyAbsSyn28 happy_var_1)+ = HappyAbsSyn38+ (let (f : args) = reverse happy_var_1 in+ if null args then f else C.App f args+ )+happyReduction_109 _ = notHappyAtAll++happyReduce_110 = happySpecReduce_2 43 happyReduction_110+happyReduction_110 (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn38+ (C.CoSet happy_var_2+ )+happyReduction_110 _ _ = notHappyAtAll++happyReduce_111 = happySpecReduce_1 43 happyReduction_111+happyReduction_111 _+ = HappyAbsSyn38+ (C.Set C.Zero+ )++happyReduce_112 = happySpecReduce_2 43 happyReduction_112+happyReduction_112 (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn38+ (C.Set happy_var_2+ )+happyReduction_112 _ _ = notHappyAtAll++happyReduce_113 = happySpecReduce_3 43 happyReduction_113+happyReduction_113 (HappyAbsSyn38 happy_var_3)+ _+ (HappyTerminal (T.Number happy_var_1 _))+ = HappyAbsSyn38+ (let n = read happy_var_1 in+ if n==0 then C.Zero else+ iterate (C.Plus happy_var_3) happy_var_3 !! (n-1)+ )+happyReduction_113 _ _ _ = notHappyAtAll++happyReduce_114 = happySpecReduce_1 44 happyReduction_114+happyReduction_114 (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn28+ ([happy_var_1]+ )+happyReduction_114 _ = notHappyAtAll++happyReduce_115 = happySpecReduce_2 44 happyReduction_115+happyReduction_115 (HappyAbsSyn38 happy_var_2)+ (HappyAbsSyn28 happy_var_1)+ = HappyAbsSyn28+ (happy_var_2 : happy_var_1+ )+happyReduction_115 _ _ = notHappyAtAll++happyReduce_116 = happySpecReduce_3 44 happyReduction_116+happyReduction_116 (HappyAbsSyn23 happy_var_3)+ _+ (HappyAbsSyn28 happy_var_1)+ = HappyAbsSyn28+ (C.Proj happy_var_3 : happy_var_1+ )+happyReduction_116 _ _ _ = notHappyAtAll++happyReduce_117 = happySpecReduce_2 44 happyReduction_117+happyReduction_117 _+ (HappyAbsSyn28 happy_var_1)+ = HappyAbsSyn28+ (C.Set C.Zero : happy_var_1+ )+happyReduction_117 _ _ = notHappyAtAll++happyReduce_118 = happySpecReduce_1 45 happyReduction_118+happyReduction_118 _+ = HappyAbsSyn38+ (C.Size+ )++happyReduce_119 = happySpecReduce_1 45 happyReduction_119+happyReduction_119 _+ = HappyAbsSyn38+ (C.Max+ )++happyReduce_120 = happySpecReduce_1 45 happyReduction_120+happyReduction_120 _+ = HappyAbsSyn38+ (C.Infty+ )++happyReduce_121 = happySpecReduce_1 45 happyReduction_121+happyReduction_121 (HappyAbsSyn46 happy_var_1)+ = HappyAbsSyn38+ (C.Ident happy_var_1+ )+happyReduction_121 _ = notHappyAtAll++happyReduce_122 = happyReduce 5 45 happyReduction_122+happyReduction_122 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn38 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn38+ (C.Sing happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_123 = happySpecReduce_3 45 happyReduction_123+happyReduction_123 _+ (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn38+ (happy_var_2+ )+happyReduction_123 _ _ _ = notHappyAtAll++happyReduce_124 = happySpecReduce_1 45 happyReduction_124+happyReduction_124 _+ = HappyAbsSyn38+ (C.Unknown+ )++happyReduce_125 = happySpecReduce_2 45 happyReduction_125+happyReduction_125 (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn38+ (C.Succ happy_var_2+ )+happyReduction_125 _ _ = notHappyAtAll++happyReduce_126 = happySpecReduce_1 45 happyReduction_126+happyReduction_126 (HappyTerminal (T.Number happy_var_1 _))+ = HappyAbsSyn38+ (iterate C.Succ C.Zero !! (read happy_var_1)+ )+happyReduction_126 _ = notHappyAtAll++happyReduce_127 = happyReduce 4 45 happyReduction_127+happyReduction_127 (_ `HappyStk`+ (HappyAbsSyn47 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn38+ (C.Record happy_var_3+ ) `HappyStk` happyRest++happyReduce_128 = happySpecReduce_1 46 happyReduction_128+happyReduction_128 (HappyTerminal (T.QualId happy_var_1 _))+ = HappyAbsSyn46+ (let (m,n) = happy_var_1 in C.Qual (C.Name m) (C.Name n)+ )+happyReduction_128 _ = notHappyAtAll++happyReduce_129 = happySpecReduce_1 46 happyReduction_129+happyReduction_129 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn46+ (C.QName happy_var_1+ )+happyReduction_129 _ = notHappyAtAll++happyReduce_130 = happySpecReduce_3 47 happyReduction_130+happyReduction_130 (HappyAbsSyn47 happy_var_3)+ _+ (HappyAbsSyn48 happy_var_1)+ = HappyAbsSyn47+ (happy_var_1 : happy_var_3+ )+happyReduction_130 _ _ _ = notHappyAtAll++happyReduce_131 = happySpecReduce_1 47 happyReduction_131+happyReduction_131 (HappyAbsSyn48 happy_var_1)+ = HappyAbsSyn47+ ([happy_var_1]+ )+happyReduction_131 _ = notHappyAtAll++happyReduce_132 = happySpecReduce_0 47 happyReduction_132+happyReduction_132 = HappyAbsSyn47+ ([]+ )++happyReduce_133 = happySpecReduce_3 48 happyReduction_133+happyReduction_133 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn22 happy_var_1)+ = HappyAbsSyn48+ ((happy_var_1,happy_var_3)+ )+happyReduction_133 _ _ _ = notHappyAtAll++happyReduce_134 = happySpecReduce_3 49 happyReduction_134+happyReduction_134 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn49+ (C.TypeSig happy_var_1 happy_var_3+ )+happyReduction_134 _ _ _ = notHappyAtAll++happyReduce_135 = happyReduce 4 50 happyReduction_135+happyReduction_135 ((HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn31 happy_var_2) `HappyStk`+ (HappyAbsSyn23 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn50+ (C.Constructor happy_var_1 happy_var_2 (Just happy_var_4)+ ) `HappyStk` happyRest++happyReduce_136 = happySpecReduce_2 50 happyReduction_136+happyReduction_136 (HappyAbsSyn31 happy_var_2)+ (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn50+ (C.Constructor happy_var_1 happy_var_2 Nothing+ )+happyReduction_136 _ _ = notHappyAtAll++happyReduce_137 = happySpecReduce_3 51 happyReduction_137+happyReduction_137 (HappyAbsSyn50 happy_var_3)+ _+ (HappyAbsSyn51 happy_var_1)+ = HappyAbsSyn51+ (happy_var_3 : happy_var_1+ )+happyReduction_137 _ _ _ = notHappyAtAll++happyReduce_138 = happySpecReduce_2 51 happyReduction_138+happyReduction_138 _+ (HappyAbsSyn51 happy_var_1)+ = HappyAbsSyn51+ (happy_var_1+ )+happyReduction_138 _ _ = notHappyAtAll++happyReduce_139 = happySpecReduce_1 51 happyReduction_139+happyReduction_139 (HappyAbsSyn50 happy_var_1)+ = HappyAbsSyn51+ ([happy_var_1]+ )+happyReduction_139 _ = notHappyAtAll++happyReduce_140 = happySpecReduce_0 51 happyReduction_140+happyReduction_140 = HappyAbsSyn51+ ([]+ )++happyReduce_141 = happyReduce 5 52 happyReduction_141+happyReduction_141 ((HappyAbsSyn52 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn38 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn56 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn52+ ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : happy_var_5+ ) `HappyStk` happyRest++happyReduce_142 = happySpecReduce_3 52 happyReduction_142+happyReduction_142 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn52+ ((C.Clause Nothing [happy_var_1] (Just happy_var_3)) : []+ )+happyReduction_142 _ _ _ = notHappyAtAll++happyReduce_143 = happySpecReduce_3 52 happyReduction_143+happyReduction_143 (HappyAbsSyn52 happy_var_3)+ _+ (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn52+ ((C.Clause Nothing [happy_var_1] Nothing) : happy_var_3+ )+happyReduction_143 _ _ _ = notHappyAtAll++happyReduce_144 = happySpecReduce_1 52 happyReduction_144+happyReduction_144 (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn52+ ((C.Clause Nothing [happy_var_1] Nothing) : []+ )+happyReduction_144 _ = notHappyAtAll++happyReduce_145 = happySpecReduce_0 52 happyReduction_145+happyReduction_145 = HappyAbsSyn52+ ([]+ )++happyReduce_146 = happyReduce 4 53 happyReduction_146+happyReduction_146 ((HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn54 happy_var_2) `HappyStk`+ (HappyAbsSyn23 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn53+ (C.Clause (Just happy_var_1) happy_var_2 (Just happy_var_4)+ ) `HappyStk` happyRest++happyReduce_147 = happySpecReduce_2 53 happyReduction_147+happyReduction_147 (HappyAbsSyn54 happy_var_2)+ (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn53+ (C.Clause (Just happy_var_1) happy_var_2 Nothing+ )+happyReduction_147 _ _ = notHappyAtAll++happyReduce_148 = happySpecReduce_1 54 happyReduction_148+happyReduction_148 (HappyAbsSyn54 happy_var_1)+ = HappyAbsSyn54+ (reverse happy_var_1+ )+happyReduction_148 _ = notHappyAtAll++happyReduce_149 = happySpecReduce_0 55 happyReduction_149+happyReduction_149 = HappyAbsSyn54+ ([]+ )++happyReduce_150 = happySpecReduce_2 55 happyReduction_150+happyReduction_150 (HappyAbsSyn56 happy_var_2)+ (HappyAbsSyn54 happy_var_1)+ = HappyAbsSyn54+ (happy_var_2 : happy_var_1+ )+happyReduction_150 _ _ = notHappyAtAll++happyReduce_151 = happySpecReduce_3 55 happyReduction_151+happyReduction_151 (HappyAbsSyn56 happy_var_3)+ _+ (HappyAbsSyn54 happy_var_1)+ = HappyAbsSyn54+ (happy_var_3 : happy_var_1+ )+happyReduction_151 _ _ _ = notHappyAtAll++happyReduce_152 = happySpecReduce_2 56 happyReduction_152+happyReduction_152 _+ _+ = HappyAbsSyn56+ (C.AbsurdP+ )++happyReduce_153 = happySpecReduce_3 56 happyReduction_153+happyReduction_153 _+ (HappyAbsSyn56 happy_var_2)+ _+ = HappyAbsSyn56+ (happy_var_2+ )+happyReduction_153 _ _ _ = notHappyAtAll++happyReduce_154 = happySpecReduce_1 56 happyReduction_154+happyReduction_154 (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (happy_var_1+ )+happyReduction_154 _ = notHappyAtAll++happyReduce_155 = happySpecReduce_2 56 happyReduction_155+happyReduction_155 (HappyAbsSyn56 happy_var_2)+ _+ = HappyAbsSyn56+ (C.SuccP happy_var_2+ )+happyReduction_155 _ _ = notHappyAtAll++happyReduce_156 = happySpecReduce_2 56 happyReduction_156+happyReduction_156 _+ _+ = HappyAbsSyn56+ (C.DotP (C.Set C.Zero)+ )++happyReduce_157 = happySpecReduce_2 56 happyReduction_157+happyReduction_157 (HappyAbsSyn38 happy_var_2)+ _+ = HappyAbsSyn56+ (C.DotP happy_var_2+ )+happyReduction_157 _ _ = notHappyAtAll++happyReduce_158 = happySpecReduce_3 57 happyReduction_158+happyReduction_158 (HappyAbsSyn56 happy_var_3)+ _+ (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (C.PairP happy_var_1 happy_var_3+ )+happyReduction_158 _ _ _ = notHappyAtAll++happyReduce_159 = happySpecReduce_1 57 happyReduction_159+happyReduction_159 (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (happy_var_1+ )+happyReduction_159 _ = notHappyAtAll++happyReduce_160 = happySpecReduce_1 58 happyReduction_160+happyReduction_160 (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (happy_var_1+ )+happyReduction_160 _ = notHappyAtAll++happyReduce_161 = happySpecReduce_3 58 happyReduction_161+happyReduction_161 (HappyAbsSyn23 happy_var_3)+ _+ (HappyAbsSyn38 happy_var_1)+ = HappyAbsSyn56+ (C.SizeP happy_var_1 happy_var_3+ )+happyReduction_161 _ _ _ = notHappyAtAll++happyReduce_162 = happySpecReduce_3 58 happyReduction_162+happyReduction_162 (HappyAbsSyn38 happy_var_3)+ _+ (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn56+ (C.SizeP happy_var_3 happy_var_1+ )+happyReduction_162 _ _ _ = notHappyAtAll++happyReduce_163 = happySpecReduce_1 58 happyReduction_163+happyReduction_163 (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (happy_var_1+ )+happyReduction_163 _ = notHappyAtAll++happyReduce_164 = happySpecReduce_3 58 happyReduction_164+happyReduction_164 (HappyAbsSyn56 happy_var_3)+ _+ (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (patApp happy_var_1 [happy_var_3]+ )+happyReduction_164 _ _ _ = notHappyAtAll++happyReduce_165 = happySpecReduce_2 59 happyReduction_165+happyReduction_165 (HappyAbsSyn56 happy_var_2)+ (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (patApp happy_var_1 [happy_var_2]+ )+happyReduction_165 _ _ = notHappyAtAll++happyReduce_166 = happySpecReduce_2 59 happyReduction_166+happyReduction_166 (HappyAbsSyn56 happy_var_2)+ (HappyAbsSyn56 happy_var_1)+ = HappyAbsSyn56+ (patApp happy_var_1 [happy_var_2]+ )+happyReduction_166 _ _ = notHappyAtAll++happyReduce_167 = happySpecReduce_1 60 happyReduction_167+happyReduction_167 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn56+ (C.IdentP (C.QName happy_var_1)+ )+happyReduction_167 _ = notHappyAtAll++happyReduce_168 = happySpecReduce_2 60 happyReduction_168+happyReduction_168 (HappyAbsSyn23 happy_var_2)+ _+ = HappyAbsSyn56+ (C.ConP True (C.QName happy_var_2) []+ )+happyReduction_168 _ _ = notHappyAtAll++happyReduce_169 = happySpecReduce_1 61 happyReduction_169+happyReduction_169 (HappyAbsSyn62 happy_var_1)+ = HappyAbsSyn52+ (reverse happy_var_1+ )+happyReduction_169 _ = notHappyAtAll++happyReduce_170 = happySpecReduce_3 62 happyReduction_170+happyReduction_170 (HappyAbsSyn53 happy_var_3)+ _+ (HappyAbsSyn62 happy_var_1)+ = HappyAbsSyn62+ (happy_var_3 : happy_var_1+ )+happyReduction_170 _ _ _ = notHappyAtAll++happyReduce_171 = happySpecReduce_2 62 happyReduction_171+happyReduction_171 _+ (HappyAbsSyn62 happy_var_1)+ = HappyAbsSyn62+ (happy_var_1+ )+happyReduction_171 _ _ = notHappyAtAll++happyReduce_172 = happySpecReduce_1 62 happyReduction_172+happyReduction_172 (HappyAbsSyn53 happy_var_1)+ = HappyAbsSyn62+ ([happy_var_1]+ )+happyReduction_172 _ = notHappyAtAll++happyReduce_173 = happySpecReduce_0 62 happyReduction_173+happyReduction_173 = HappyAbsSyn62+ ([]+ )++happyReduce_174 = happyReduce 5 63 happyReduction_174+happyReduction_174 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind (Dec Default) happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_175 = happyReduce 5 63 happyReduction_175+happyReduction_175 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind A.irrelevantDec happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_176 = happyReduce 6 63 happyReduction_176+happyReduction_176 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn26 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind (Dec happy_var_1) happy_var_3 happy_var_5+ ) `HappyStk` happyRest++happyReduce_177 = happyReduce 6 63 happyReduction_177+happyReduction_177 (_ `HappyStk`+ (HappyAbsSyn38 happy_var_5) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn22 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn32+ (C.TBind (Dec SPos) happy_var_3 happy_var_5+ ) `HappyStk` happyRest++happyReduce_178 = happySpecReduce_0 64 happyReduction_178+happyReduction_178 = HappyAbsSyn31+ ([]+ )++happyReduce_179 = happySpecReduce_2 64 happyReduction_179+happyReduction_179 (HappyAbsSyn31 happy_var_2)+ (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn31+ (happy_var_1 : happy_var_2+ )+happyReduction_179 _ _ = notHappyAtAll++happyNewToken action sts stk [] =+ action 120 120 notHappyAtAll (HappyState action) sts stk []++happyNewToken action sts stk (tk:tks) =+ let cont i = action i i tk (HappyState action) sts stk tks in+ case tk of {+ T.Id happy_dollar_dollar _ -> cont 65;+ T.QualId happy_dollar_dollar _ -> cont 66;+ T.Number happy_dollar_dollar _ -> cont 67;+ T.Data _ -> cont 68;+ T.CoData _ -> cont 69;+ T.Record _ -> cont 70;+ T.Sized _ -> cont 71;+ T.Fields _ -> cont 72;+ T.Mutual _ -> cont 73;+ T.Fun _ -> cont 74;+ T.CoFun _ -> cont 75;+ T.Pattern _ -> cont 76;+ T.Case _ -> cont 77;+ T.Def _ -> cont 78;+ T.Let _ -> cont 79;+ T.In _ -> cont 80;+ T.Eval _ -> cont 81;+ T.Fail _ -> cont 82;+ T.Check _ -> cont 83;+ T.TrustMe _ -> cont 84;+ T.Impredicative _ -> cont 85;+ T.Type _ -> cont 86;+ T.Set _ -> cont 87;+ T.CoSet _ -> cont 88;+ T.Size _ -> cont 89;+ T.Infty _ -> cont 90;+ T.Succ _ -> cont 91;+ T.Max _ -> cont 92;+ T.LTri _ -> cont 93;+ T.RTri _ -> cont 94;+ T.AngleOpen _ -> cont 95;+ T.AngleClose _ -> cont 96;+ T.BrOpen _ -> cont 97;+ T.BrClose _ -> cont 98;+ T.BracketOpen _ -> cont 99;+ T.BracketClose _ -> cont 100;+ T.PrOpen _ -> cont 101;+ T.PrClose _ -> cont 102;+ T.Bar _ -> cont 103;+ T.Comma _ -> cont 104;+ T.Sem _ -> cont 105;+ T.Col _ -> cont 106;+ T.Dot _ -> cont 107;+ T.Arrow _ -> cont 108;+ T.Leq _ -> cont 109;+ T.Eq _ -> cont 110;+ T.PlusPlus _ -> cont 111;+ T.Plus _ -> cont 112;+ T.Minus _ -> cont 113;+ T.Slash _ -> cont 114;+ T.Times _ -> cont 115;+ T.Hat _ -> cont 116;+ T.Amp _ -> cont 117;+ T.Lam _ -> cont 118;+ T.Underscore _ -> cont 119;+ _ -> happyError' ((tk:tks), [])+ }++happyError_ explist 120 tk tks = happyError' (tks, explist)+happyError_ explist _ tk tks = happyError' ((tk:tks), explist)++newtype HappyIdentity a = HappyIdentity a+happyIdentity = HappyIdentity+happyRunIdentity (HappyIdentity a) = a++instance Prelude.Functor HappyIdentity where+ fmap f (HappyIdentity a) = HappyIdentity (f a)++instance Applicative HappyIdentity where+ pure = HappyIdentity+ (<*>) = ap+instance Prelude.Monad HappyIdentity where+ return = pure+ (HappyIdentity p) >>= q = q p++happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b+happyThen = (Prelude.>>=)+happyReturn :: () => a -> HappyIdentity a+happyReturn = (Prelude.return)+happyThen1 m k tks = (Prelude.>>=) m (\a -> k a tks)+happyReturn1 :: () => a -> b -> HappyIdentity a+happyReturn1 = \a tks -> (Prelude.return) a+happyError' :: () => ([(T.Token)], [Prelude.String]) -> HappyIdentity a+happyError' = HappyIdentity Prelude.. (\(tokens, _) -> parseError tokens)+parse tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn4 z -> happyReturn z; _other -> notHappyAtAll })++happySeq = happyDontSeq+++parseError :: [T.Token] -> a+parseError [] = error "Parse error at EOF"+parseError (x : xs) = error ("Parse error at token " ++ T.prettyTok x)+{-# LINE 1 "templates/GenericTemplate.hs" #-}+-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $+++++++++++++++++++++++++++++++++++++++++++data Happy_IntList = HappyCons Prelude.Int Happy_IntList+++++++++++++++++++++++++++++++++++++++++infixr 9 `HappyStk`+data HappyStk a = HappyStk a (HappyStk a)++-----------------------------------------------------------------------------+-- starting the parse++happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll++-----------------------------------------------------------------------------+-- Accepting the parse++-- If the current token is ERROR_TOK, it means we've just accepted a partial+-- parse (a %partial parser). We must ignore the saved token on the top of+-- the stack in this case.+happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) =+ happyReturn1 ans+happyAccept j tk st sts (HappyStk ans _) =+ (happyReturn1 ans)++-----------------------------------------------------------------------------+-- Arrays only: do the next action++++++++++++++++++++++++++++++++++++++++++indexShortOffAddr arr off = arr Happy_Data_Array.! off+++{-# INLINE happyLt #-}+happyLt x y = (x Prelude.< y)+++++++readArrayBit arr bit =+ Bits.testBit (indexShortOffAddr arr (bit `Prelude.div` 16)) (bit `Prelude.mod` 16)+++++++-----------------------------------------------------------------------------+-- HappyState data type (not arrays)++++newtype HappyState b c = HappyState+ (Prelude.Int -> -- token number+ Prelude.Int -> -- token number (yes, again)+ b -> -- token semantic value+ HappyState b c -> -- current state+ [HappyState b c] -> -- state stack+ c)++++-----------------------------------------------------------------------------+-- Shifting a token++happyShift new_state (1) tk st sts stk@(x `HappyStk` _) =+ let i = (case x of { HappyErrorToken (i) -> i }) in+-- trace "shifting the error token" $+ new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)++happyShift new_state i tk st sts stk =+ happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)++-- happyReduce is specialised for the common cases.++happySpecReduce_0 i fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk+ = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)++happySpecReduce_1 i fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')+ = let r = fn v1 in+ happySeq r (action nt j tk st sts (r `HappyStk` stk'))++happySpecReduce_2 i fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')+ = let r = fn v1 v2 in+ happySeq r (action nt j tk st sts (r `HappyStk` stk'))++happySpecReduce_3 i fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')+ = let r = fn v1 v2 v3 in+ happySeq r (action nt j tk st sts (r `HappyStk` stk'))++happyReduce k i fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happyReduce k nt fn j tk st sts stk+ = case happyDrop (k Prelude.- ((1) :: Prelude.Int)) sts of+ sts1@(((st1@(HappyState (action))):(_))) ->+ let r = fn stk in -- it doesn't hurt to always seq here...+ happyDoSeq r (action nt j tk st1 sts1 r)++happyMonadReduce k nt fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happyMonadReduce k nt fn j tk st sts stk =+ case happyDrop k ((st):(sts)) of+ sts1@(((st1@(HappyState (action))):(_))) ->+ let drop_stk = happyDropStk k stk in+ happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))++happyMonad2Reduce k nt fn (1) tk st sts stk+ = happyFail [] (1) tk st sts stk+happyMonad2Reduce k nt fn j tk st sts stk =+ case happyDrop k ((st):(sts)) of+ sts1@(((st1@(HappyState (action))):(_))) ->+ let drop_stk = happyDropStk k stk++++++ _ = nt :: Prelude.Int+ new_state = action++ in+ happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))++happyDrop (0) l = l+happyDrop n ((_):(t)) = happyDrop (n Prelude.- ((1) :: Prelude.Int)) t++happyDropStk (0) l = l+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Prelude.- ((1)::Prelude.Int)) xs++-----------------------------------------------------------------------------+-- Moving to a new state after a reduction++++++++++happyGoto action j tk st = action j j tk (HappyState action)+++-----------------------------------------------------------------------------+-- Error recovery (ERROR_TOK is the error token)++-- parse error if we are in recovery and we fail again+happyFail explist (1) tk old_st _ stk@(x `HappyStk` _) =+ let i = (case x of { HappyErrorToken (i) -> i }) in+-- trace "failing" $+ happyError_ explist i tk++{- We don't need state discarding for our restricted implementation of+ "error". In fact, it can cause some bogus parses, so I've disabled it+ for now --SDM++-- discard a state+happyFail ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts)+ (saved_tok `HappyStk` _ `HappyStk` stk) =+-- trace ("discarding state, depth " ++ show (length stk)) $+ DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))+-}++-- Enter error recovery: generate an error token,+-- save the old token and carry on.+happyFail explist i tk (HappyState (action)) sts stk =+-- trace "entering error recovery" $+ action (1) (1) tk (HappyState (action)) sts ((HappyErrorToken (i)) `HappyStk` stk)++-- Internal happy errors:++notHappyAtAll :: a+notHappyAtAll = Prelude.error "Internal Happy error\n"++-----------------------------------------------------------------------------+-- Hack to get the typechecker to accept our action functions++++++++-----------------------------------------------------------------------------+-- Seq-ing. If the --strict flag is given, then Happy emits+-- happySeq = happyDoSeq+-- otherwise it emits+-- happySeq = happyDontSeq++happyDoSeq, happyDontSeq :: a -> b -> b+happyDoSeq a b = a `Prelude.seq` b+happyDontSeq a b = b++-----------------------------------------------------------------------------+-- Don't inline any functions from the template. GHC has a nasty habit+-- of deciding to inline happyGoto everywhere, which increases the size of+-- the generated parser quite a bit.+++++++++ {-# NOINLINE happyShift #-} {-# NOINLINE happySpecReduce_0 #-} {-# NOINLINE happySpecReduce_1 #-}
src/Polarity.hs view
@@ -63,6 +63,7 @@ | PVar PVarId -- flexible polarity variable deriving (Eq,Ord) +mixed, defaultPol :: Pol mixed = Rec defaultPol = Rec {-@@ -87,19 +88,21 @@ show Default = "{default polarity}" show (PVar i) = showPVar i +showPVar :: Show a => a -> String showPVar i = "?p" ++ show i +isPVar :: Pol -> Bool isPVar (PVar{}) = True isPVar _ = False -- information ordering leqPol :: Pol -> Pol -> Bool-leqPol x Const = True -- Const is top-leqPol Const x = False-leqPol Rec y = True -- Rec is bottom-leqPol x Rec = False-leqPol Param y = True -- Param is second bottom-leqPol x Param = False+leqPol _ Const = True -- Const is top+leqPol Const _ = False+leqPol Rec _ = True -- Rec is bottom+leqPol _ Rec = False+leqPol Param _ = True -- Param is second bottom+leqPol _ Param = False leqPol Pos SPos = True leqPol x y = x == y @@ -127,21 +130,23 @@ polNeg Neg = Pos polNeg Param = Param polNeg Rec = Rec+polNeg _ = undefined -- polarity composition -- used in Eval.hs leqVals' polComp :: Pol -> Pol -> Pol-polComp Const x = Const -- most dominant-polComp x Const = Const-polComp Rec x = Rec -- dominant except for Const-polComp x Rec = Rec-polComp Param x = Param -- dominant except for Const, Rec-polComp x Param = Param+polComp Const _ = Const -- most dominant+polComp _ Const = Const+polComp Rec _ = Rec -- dominant except for Const+polComp _ Rec = Rec+polComp Param _ = Param -- dominant except for Const, Rec+polComp _ Param = Param polComp SPos x = x -- neutral polComp x SPos = x polComp Pos x = x -- neutral except for SPos polComp x Pos = x polComp Neg Neg = Pos -- order 2+polComp _ _ = undefined {- pol.comp. is ass., comm., with neutral ++, and infinity Const cancellation does not hold, since composition with anything by ++ is information loss:@@ -153,14 +158,15 @@ -- used in TCM.hs cxtApplyDec invComp :: Pol -> Pol -> Pol invComp Rec Rec = Rec -- in rec. arg. keep only rec. vars-invComp Rec x = Const -- all others are declared unusable+invComp Rec _ = Const -- all others are declared unusable invComp Param Param = Param -- in parametric mixed arg, keep only mixed vars-invComp Param x = Const-invComp Const x = Param -- a constant function can take any argument+invComp Param _ = Const+invComp Const _ = Param -- a constant function can take any argument invComp SPos x = x -- SPos is the identity-invComp p SPos = Const -- SPos preserved only under SPos+invComp _ SPos = Const -- SPos preserved only under SPos invComp Pos x = x -- x not SPos invComp Neg x = polNeg x -- x not SPos+invComp _ _ = undefined {- UNUSED invCompExpr :: Pol -> PExpr -> PExpr@@ -173,8 +179,8 @@ polAnd :: Pol -> Pol -> Pol polAnd Const x = x -- most information polAnd x Const = x-polAnd Rec x = Rec -- least information-polAnd x Rec = Rec+polAnd Rec _ = Rec -- least information+polAnd _ Rec = Rec {- polAnd Param x = Param -- 2nd least information polAnd x Param = Param@@ -196,20 +202,22 @@ -- computing a relation from <= relPol :: Pol -> (a -> a -> Bool) -> (a -> a -> Bool)-relPol Const r a b = True+relPol Const _ _ _ = True relPol Rec r a b = r a b && r b a relPol Param r a b = r a b && r b a relPol Neg r a b = r b a relPol Pos r a b = r a b relPol SPos r a b = r a b+relPol _ _ _ _ = undefined relPolM :: (Monad m) => Pol -> (a -> a -> m ()) -> (a -> a -> m ())-relPolM Const r a b = return ()+relPolM Const _ _ _ = return () relPolM Rec r a b = r a b >> r b a relPolM Param r a b = r a b >> r b a relPolM Neg r a b = r b a relPolM Pos r a b = r a b relPolM SPos r a b = r a b+relPolM _ _ _ _ = undefined -- polarity product (composition of polarities) ---------------------- @@ -235,6 +243,7 @@ f (k, PTwo) = [k,k] in Util.showList "." showPVar l +multsEmpty :: VarMults multsEmpty = Map.empty multsSingle :: Int -> VarMults
src/ScopeChecker.hs view
@@ -10,12 +10,15 @@ import Prelude hiding (mapM, null) import Control.Applicative-import Control.Monad.Identity hiding (mapM)-import Control.Monad.Reader hiding (mapM)-import Control.Monad.State hiding (mapM)-import Control.Monad.Except hiding (mapM)+import Control.Monad hiding (mapM)+import Control.Monad.Identity (Identity, runIdentity)+import Control.Monad.Reader (ReaderT, runReaderT, MonadReader, ask, asks, local)+import Control.Monad.State (StateT, execStateT, runStateT, get, gets, modify, put)+import Control.Monad.Except (ExceptT, runExceptT, MonadError, catchError)+import Control.Monad.Trans (lift) -import Data.List as List hiding (null)+import Data.List (sort, (\\))+import qualified Data.List as List import Data.Maybe import Data.Traversable (mapM)
src/Semiring.hs view
@@ -1,4 +1,4 @@--- {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE CPP #-} -- | Semirings. Original: Agda.Terminatio.Semiring @@ -10,8 +10,9 @@ , boolSemiring ) where -import Data.Monoid-+#if !MIN_VERSION_base(4,8,0)+import Data.Monoid (Monoid)+#endif {- | SemiRing type class. Additive monoid with multiplication operation. Inherit addition and zero from Monoid. -}
src/SparseMatrix.hs view
@@ -4,7 +4,14 @@ sorted association lists. -}+{-# LANGUAGE CPP #-} +#if __GLASGOW_HASKELL_ >= 800+{-# OPTIONS_GHC -Wno-unused-top-binds #-}+#else+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+#endif+ module SparseMatrix ( -- * Basic data types Matrix(M)@@ -37,11 +44,11 @@ import Data.Array import qualified Data.List as List-import Data.Monoid+-- import Data.Monoid -- import Test.QuickCheck -import Semiring (HasZero(..), SemiRing, Semiring)+import Semiring (HasZero(..), Semiring) import qualified Semiring as Semiring @@ -118,7 +125,7 @@ fmap f (M sz m) = M sz (map (\ (i,a) -> (i, f a)) m) matrixInvariant :: (Num i, Ix i) => Matrix i b -> Bool-matrixInvariant m = List.all (\ (MIx i j, b) -> 1 <= i && i <= rows sz+matrixInvariant m = List.all (\ (MIx i j, _) -> 1 <= i && i <= rows sz && 1 <= j && j <= cols sz) (unM m) && strictlySorted (MIx 0 0) (unM m) && sizeInvariant sz@@ -128,8 +135,8 @@ -- Ord MIx should be the lexicographic one already (Haskell report) strictlySorted :: (Ord i) => i -> [(i, b)] -> Bool-strictlySorted i [] = True-strictlySorted i ((i', b) : l) = i < i' && strictlySorted i' l+strictlySorted _ [] = True+strictlySorted i ((i', _) : l) = i < i' && strictlySorted i' l {- strictlySorted (MIx i j) [] = True strictlySorted (MIx i j) ((MIx i' j', b) : l) =@@ -193,7 +200,7 @@ -- normalize = filter (\ (i,b) -> b /= zeroElement) fromIndexList :: (Ord i, HasZero b) => Size i -> [(MIx i, b)] -> Matrix i b-fromIndexList sz = M sz . List.sortBy (\ (i,_) (j,_) -> compare i j) . filter (\ (i,b) -> b /= zeroElement)+fromIndexList sz = M sz . List.sortBy (\ (i,_) (j,_) -> compare i j) . filter (\ (_,b) -> b /= zeroElement) prop_fromIndexList :: TM -> Bool prop_fromIndexList m = matrixInvariant m' && m' == m@@ -212,8 +219,8 @@ -- | Converts a sparse matrix to a sparse list of rows toSparseRows :: (Num i, Enum i, Eq i) => Matrix i b -> [(i,[(i,b)])]-toSparseRows m = aux 1 [] (unM m)- where aux i' [] [] = []+toSparseRows m0 = aux 1 [] (unM m0)+ where aux _ [] [] = [] aux i' row [] = [(i', reverse row)] aux i' row ((MIx i j, b) : m) | i' == i = aux i' ((j,b):row) m@@ -221,7 +228,7 @@ -- sparse vectors cannot have two entries in one column blowUpSparseVec :: (Eq i, Ord i, Num i, Enum i, Show i) => b -> i -> [(i,b)] -> [b]-blowUpSparseVec zero n l = aux 1 l+blowUpSparseVec zero n = aux 1 where aux i [] | i > n = [] | otherwise = zero : aux (i+1) [] aux i ((j,b):l) | i <= n && j == i = b : aux (succ i) l@@ -279,20 +286,24 @@ case unM m of [(_,b)] -> Just b [] -> Just zeroElement+ _ -> undefined else Nothing where sz = size m -- | Transposition+transposeSize :: Size i -> Size i transposeSize (Size { rows = n, cols = m }) = Size { rows = m, cols = n }++transpose :: Ord i => Matrix i b -> Matrix i b transpose m = M { size = transposeSize (size m)- , unM = List.sortBy (\ (i,a) (j,b) -> compare i j) $+ , unM = List.sortBy (\ (i,_) (j,_) -> compare i j) $ map (\(MIx i j, b) -> (MIx j i, b)) $ unM m } all :: (a -> Bool) -> Matrix i a -> Bool-all p m = List.all (\ (i,a) -> p a) (unM m)+all p m = List.all (\ (_,a) -> p a) (unM m) any :: (a -> Bool) -> Matrix i a -> Bool-any p m = List.any (\ (i,a) -> p a) (unM m)+any p m = List.any (\ (_,a) -> p a) (unM m) -- | @'zip' m1 m2@ zips @m1@ and @m2@. --@@ -316,8 +327,8 @@ -- | assoc list union mergeAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)]-mergeAssocWith f [] m = m-mergeAssocWith f l [] = l+mergeAssocWith _ [] m = m+mergeAssocWith _ l [] = l mergeAssocWith f l@((i,a):l') m@((j,b):m') | i < j = (i,a) : mergeAssocWith f l' m | i > j = (j,b) : mergeAssocWith f l m'@@ -333,8 +344,8 @@ -- | assoc list intersection interAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)]-interAssocWith f [] m = []-interAssocWith f l [] = []+interAssocWith _ [] _ = []+interAssocWith _ _ [] = [] interAssocWith f l@((i,a):l') m@((j,b):m') | i < j = interAssocWith f l' m | i > j = interAssocWith f l m'@@ -366,7 +377,7 @@ mul :: (Enum i, Num i, Ix i, Eq a) => Semiring a -> Matrix i a -> Matrix i a -> Matrix i a mul semiring m1 m2 = M (Size { rows = rows (size m1), cols = cols (size m2) }) $- filter (\ (i,b) -> b /= Semiring.zero semiring) $+ filter (\ (_,b) -> b /= Semiring.zero semiring) $ [ (MIx i j, foldl (Semiring.add semiring) (Semiring.zero semiring) $ map snd $ interAssocWith (Semiring.mul semiring) v w) | (i,v) <- toSparseRows m1@@ -392,7 +403,7 @@ diagonal :: (Enum i, Num i, Ix i, Show i, HasZero b) => Matrix i b -> [b] diagonal m = blowUpSparseVec zeroElement (rows sz) $- map (\ ((MIx i j),b) -> (i,b)) $ filter (\ ((MIx i j),b) -> i==j) (unM m)+ map (\ ((MIx i _),b) -> (i,b)) $ filter (\ ((MIx i j),_) -> i==j) (unM m) where sz = size m {-@@ -417,8 +428,9 @@ -- set to @x@. addColumn :: (Num i, HasZero b) => b -> Matrix i b -> Matrix i b-addColumn x m | x == zeroElement = m { size = (size m) { cols = cols (size m) + 1 }}--- | otherwise = __IMPOSSIBLE__+addColumn x m+ | x == zeroElement = m { size = (size m) { cols = cols (size m) + 1 }}+ | otherwise = undefined {- prop_addColumn :: TM -> Bool@@ -435,7 +447,7 @@ addRow :: (Num i, HasZero b) => b -> Matrix i b -> Matrix i b addRow x m | x == zeroElement = m { size = (size m) { rows = rows (size m) + 1 }}--- | otherwise = __IMPOSSIBLE__+ | otherwise = undefined prop_addRow :: TM -> Bool prop_addRow m =
src/TCM.hs view
@@ -5,10 +5,9 @@ import Prelude hiding (null) import Control.Monad-import Control.Monad.Identity-import Control.Monad.State-import Control.Monad.Except-import Control.Monad.Reader+import Control.Monad.State (StateT, get, gets, put)+import Control.Monad.Except (ExceptT, MonadError)+import Control.Monad.Reader (ReaderT, ask, asks, local) import Control.Applicative import Data.Foldable (Foldable)@@ -1317,7 +1316,7 @@ lookupSymbQ n@Qual{} = lookupSymbInSig n -- addSig :: Name -> SigDef -> TypeCheck ()- addSigQ n def = traceSig ("addSig: " ++ show n ++ " is bound to " ++ show def) $do+ addSigQ n def = traceSig ("addSig: " ++ show n ++ " is bound to " ++ show def) $ do st <- get put $ st { signature = Map.insert n def $ signature st }
src/TCM.hs-boot view
@@ -3,10 +3,9 @@ -- import CallStack import TraceError -import Control.Monad.Identity-import Control.Monad.State-import Control.Monad.Except-import Control.Monad.Reader+import Control.Monad.State (StateT)+import Control.Monad.Except (ExceptT)+import Control.Monad.Reader (ReaderT) data OneOrTwo a = One a | Two a a
src/Termination.hs view
@@ -4,10 +4,11 @@ import Prelude hiding (null) -import Data.Monoid-import Control.Monad.Writer -- (Writer, runWriter, tell, listen, Any(..), ...)+import Control.Monad+import Control.Monad.Writer (Writer, runWriter, mapWriter, tell, listen) -import Data.List as List hiding (null)+import qualified Data.List as List+import Data.Monoid import Data.Set (Set) import qualified Data.Set as Set import Data.Foldable (Foldable, foldMap)
src/TraceError.hs view
@@ -3,6 +3,7 @@ module TraceError where import Control.Monad.Except+import Control.Monad.IO.Class (MonadIO(..)) import Debug.Trace import Util@@ -18,16 +19,22 @@ show (Err str) = str show (TrErr str err) = str ++ "\n/// " ++ show err -throwErrorMsg m = throwError (Err m)+throwErrorMsg :: MonadError TraceError m => String -> m a+throwErrorMsg = throwError . Err --- newErrorMsg :: (MonadError TraceError m) => m a -> String -> m a+newErrorMsg :: (MonadError TraceError m) => m a -> String -> m a newErrorMsg c s = c `catchError` (\ _ -> throwErrorMsg s) -- addErrorMsg c s = c `catchError` (\ s' -> throwErrorMsg (s' ++ "\n" ++ s)) -- extend the current error message by n+throwTrace :: MonadError TraceError m => m a -> String -> m a throwTrace x n = x `catchError` ( \e -> throwError $ TrErr n e)++enter, enterTrace :: MonadError TraceError m => String -> m a -> m a enter n x = throwTrace x n enterTrace n x = trace n $ throwTrace x n++enterShow :: (MonadError TraceError m, Show a) => a -> m b -> m b enterShow n = enter (show n) enterDoc :: (MonadError TraceError m, Pretty d) => m d -> m a -> m a@@ -48,11 +55,11 @@ errorToBool m = (m >> return True) `catchError` (\ _ -> return False) boolToErrorDoc :: (MonadError TraceError m) => m Doc -> Bool -> m ()-boolToErrorDoc d True = return ()+boolToErrorDoc _ True = return () boolToErrorDoc d False = failDoc d boolToError :: (MonadError TraceError m) => String -> Bool -> m ()-boolToError msg True = return ()+boolToError _ True = return () boolToError msg False = throwErrorMsg msg -- defined in Control.Monad.Error.Class in mtl-2.2.2@@ -70,8 +77,8 @@ deriving (Eq,Ord,Show) assert' :: (MonadError TraceError m, MonadIO m) => AssertionHandling -> Bool -> String -> m ()-assert' Ignore b s = return ()-assert' h True s = return ()+assert' Ignore _ _ = return ()+assert' _ True _ = return () assert' Warning False s = liftIO $ putStrLn $ "warning: ignoring error: " ++ s assert' Failure False s = throwErrorMsg s
src/TreeShapedOrder.hs view
@@ -25,7 +25,7 @@ module TreeShapedOrder where import Prelude hiding (null)-import Data.List hiding (insert, null) -- groupBy+import Data.List (groupBy, sort) import Data.Map (Map) import qualified Data.Map as Map@@ -66,9 +66,9 @@ -- | @isAncestor a b o = Just n@ if there are n steps up from a to b. isAncestor :: (Ord a, Eq a) => a -> a -> TSO a -> Maybe Int isAncestor a b o = loop 0 ((0,a) : parents a o)- where loop acc [] = Nothing- loop acc ((n,a) : ps) | a == b = Just (acc + n)- | otherwise = loop (acc + n) ps+ where loop _ [] = Nothing+ loop acc ((n,a') : ps) | a' == b = Just (acc + n)+ | otherwise = loop (acc + n) ps -- | @diff a b o = Just k@ if there are k steps up from a to b -- or (-k) steps down from b to a.@@ -78,16 +78,16 @@ -- | create a map from parents to list of sons, leaves have an empty list invert :: (Ord a, Eq a) => TSO a -> Map a [(Int,a)] invert (TSO o) = Map.foldrWithKey step Map.empty o where- step son (dist, parent) m = Map.insertWith (++) son [] $- Map.insertWith (++) parent [(dist, son)] m+ step son (dist, father) m = Map.insertWith (++) son [] $+ Map.insertWith (++) father [(dist, son)] m -- | @height a t = Just k@ if $k$ is the length of the -- longest path from @a@ to a leaf. @Nothing@ if @a@ not in @t@. height :: (Ord a, Eq a) => a -> TSO a -> Maybe Int height a t = do let m = invert t- let loop parent = do- sons <- Map.lookup parent m+ let loop father = do+ sons <- Map.lookup father m return $ if null sons then 0 else maximum $ map (\ (n,son) -> maybe 0 (n +) $ loop son) sons loop a@@ -96,11 +96,11 @@ -- the insertion of a with parent b will destroy an existing -- minimal valuation of @t@ increasesHeight :: (Ord a, Eq a) => a -> (Int, a) -> TSO a -> Bool-increasesHeight a (n,b) t = n > maybe 0 id (height b t)+increasesHeight _ (n,b) t = n > maybe 0 id (height b t) -- | get the leaves of the TSO forest leaves :: (Ord a, Eq a) => TSO a -> [a]-leaves o = map fst $ filter (\ (parent,sons) -> null sons) $ Map.toList (invert o)+leaves o = map fst $ filter (\ (_parent, sons) -> null sons) $ Map.toList (invert o) {- FLAWED BOTTOM-UP-ATTEMPT, DOES NOT WORK {- How to invert a TSO?@@ -153,10 +153,12 @@ -} -- test-+l1 :: [(String, (Int, String))] l1 = map (\ (k,l) -> ("i" ++ show k, (1, "i" ++ show l))) [(0,1),(1,2),(2,3),(3,4)] ++ [("j2",(1,"i3"))]+o1 :: TSO String o1 = fromList l1+t1, t2, t3, t4, t5 :: Maybe Int t1 = diff "i2" "i1" o1 t2 = diff "i2" "j2" o1 t3 = height "i2" o1
src/TypeChecker.hs view
@@ -7,10 +7,11 @@ import Control.Applicative hiding (Const) -- ((<$>)) import Control.Monad-import Control.Monad.Identity-import Control.Monad.State-import Control.Monad.Except-import Control.Monad.Reader+import Control.Monad.IO.Class (MonadIO(..))+import Control.Monad.State (runStateT, get, gets, put)+import Control.Monad.Except (runExceptT, catchError)+import Control.Monad.Reader (runReaderT, ask, asks, local)+import Control.Monad.Trans (lift) import qualified Data.List as List import Data.Map (Map)
src/Util.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TupleSections, NoMonomorphismRestriction, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies #-}@@ -6,20 +7,23 @@ import Prelude hiding (showList, null, (<>)) +#if !MIN_VERSION_base(4,8,0) import Control.Applicative hiding (empty)+#endif import Control.Monad-import Control.Monad.Writer (Writer, runWriter, All, getAll)+import Control.Monad.Writer (Writer, runWriter) import qualified Data.List as List import Data.Map (Map) import qualified Data.Map as Map+import Data.Monoid (All, getAll) import Debug.Trace import Text.PrettyPrint as PP (+?+) :: String -> String -> String-(+?+) xs "[]" = []-(+?+) xs ys = xs ++ ys+(+?+) _ "[]" = []+(+?+) xs ys = xs ++ ys implies :: Bool -> Bool -> Bool implies a b = if a then b else True@@ -40,15 +44,15 @@ -- | Apply when condition is @True@. fwhen :: Bool -> (a -> a) -> a -> a fwhen True f a = f a-fwhen False f a = a+fwhen False _ a = a parensIf :: Bool -> Doc -> Doc parensIf b = fwhen b PP.parens hsepBy :: Doc -> [Doc] -> Doc-hsepBy sep [] = empty-hsepBy sep [d] = d-hsepBy sep (d:ds) = d <> sep <> hsepBy sep ds+hsepBy _separator [] = empty+hsepBy _separator [d] = d+hsepBy separator (d:ds) = d <> separator <> hsepBy separator ds pwords :: String -> [Doc] pwords = map text . words@@ -80,11 +84,11 @@ whenJust :: (Monad m) => Maybe a -> (a -> m ()) -> m () whenJust (Just a) k = k a-whenJust Nothing k = return ()+whenJust Nothing _ = return () whenNothing :: (Monad m) => Maybe a -> m () -> m () whenNothing Nothing m = m-whenNothing Just{} m = return ()+whenNothing Just{} _ = return () ifNothingM :: (Monad m) => m (Maybe a) -> m b -> (a -> m b) -> m b ifNothingM mma mb f = maybe mb f =<< mma@@ -117,7 +121,7 @@ andM (m:ms) = m `andLazy` andM ms findM :: Monad m => (a -> m Bool) -> [a] -> m (Maybe a)-findM p [] = return Nothing+findM _ [] = return Nothing findM p (x : xs) = do b <- p x if b then return (Just x) else findM p xs @@ -136,15 +140,15 @@ bracketsIf True s = "[" ++ s ++ "]" separate :: String -> String -> String -> String-separate sep "" y = y-separate sep x "" = x-separate sep x y = x ++ sep ++ y+separate _separator "" y = y+separate _separator x "" = x+separate separator x y = x ++ separator ++ y showList :: String -> (a -> String) -> [a] -> String-showList sep f [] = ""-showList sep f [e] = f e-showList sep f (e:es) = f e ++ sep ++ showList sep f es--- OR: showList sep f es = foldl separate "" $ map f es+showList _separator _ [] = ""+showList _separator f [e] = f e+showList separator f (e:es) = f e ++ separator ++ showList separator f es+-- OR: showList separator f es = foldl separate "" $ map f es hasDuplicate :: (Eq a) => [a] -> Bool hasDuplicate [] = False@@ -167,7 +171,7 @@ headMaybe :: [a] -> Maybe a headMaybe [] = Nothing-headMaybe (a:as) = Just a+headMaybe (a:_) = Just a firstJust :: [Maybe a] -> Maybe a firstJust = headMaybe . compressMaybes@@ -180,7 +184,7 @@ Nothing -> firstJustM mms Just{} -> return m -mapOver :: (Functor f) => f a -> (a -> b) -> f b+for, mapOver :: (Functor f) => f a -> (a -> b) -> f b mapOver = flip fmap for = mapOver@@ -204,6 +208,7 @@ instance Push a [[a]] where push a (b:bs) = (a : b) : bs+ push _ [] = undefined -- TOO HARD for ghc: -- instance Push a b => Push a [b] where
src/Warshall.hs view
@@ -21,17 +21,16 @@ import qualified Data.Map as Map import qualified Data.List as List -import Debug.Trace-import Util-+-- import Debug.Trace+-- import Util -traceSolve msg a = a -- trace msg a-traceSolveM msg = return () -- traceM msg-{--traceSolve msg a = trace msg a-traceSolveM msg = traceM msg--}+traceSolve :: String -> a -> a+traceSolve _msg = id+-- traceSolve = trace +traceSolveM :: Monad m => String -> m ()+traceSolveM _msg = return ()+-- traceSolveM = traceM -- semi rings ---------------------------------------------------- @@ -59,7 +58,7 @@ deriving (Eq) inc :: Weight -> Int -> Weight-inc Infinite n = Infinite+inc Infinite _ = Infinite inc (Finite k) n = Finite (k + n) instance Show Weight where@@ -67,8 +66,8 @@ show Infinite = "." instance Ord Weight where- a <= Infinite = True- Infinite <= b = False+ _ <= Infinite = True+ Infinite <= _ = False Finite a <= Finite b = a <= b instance SemiRing Weight where@@ -112,6 +111,7 @@ type Scope = RigidId -> Bool -- which rigid variables a flex may be instatiated to +infinite :: Rigid -> Bool infinite (RConst Infinite) = True infinite _ = False @@ -121,7 +121,7 @@ -- precondition: not the same rigid variable isBelow :: Rigid -> Weight -> Rigid -> Bool isBelow _ Infinite _ = True-isBelow _ n (RConst Infinite) = True+isBelow _ _ (RConst Infinite) = True -- isBelow (RConst Infinite) n (RConst (Finite _)) = False isBelow (RConst (Finite i)) (Finite n) (RConst (Finite j)) = i + n <= j isBelow _ _ _ = False -- rigid variables are not related@@ -141,14 +141,16 @@ arc a k b = Arc a (Finite k) b instance Show Constraint where- show (NewFlex i s) = "SizeMeta(?" ++ show i ++ ")"+ show (NewFlex i _) = "SizeMeta(?" ++ show i ++ ")" show (Arc v1 (Finite k) v2) | k == 0 = show v1 ++ "<=" ++ show v2 | k < 0 = show v1 ++ "+" ++ show (-k) ++ "<=" ++ show v2 | otherwise = show v1 ++ "<=" ++ show v2 ++ "+" ++ show k+ show _ = undefined type Constraints = [Constraint] +emptyConstraints :: Constraints emptyConstraints = [] -- graph (matrix) ------------------------------------------------@@ -163,7 +165,7 @@ -- the empty graph: no nodes, edges are all undefined (infinity weight) initGraph :: SemiRing edgeLabel => Graph edgeLabel rigid flexScope-initGraph = Graph Map.empty Map.empty Map.empty 0 (\ x y -> ozero)+initGraph = Graph Map.empty Map.empty Map.empty 0 (\ _ _ -> ozero) -- the Graph Monad, for constructing a graph iteratively type GM edgeLabel rigid flexScope = State (Graph edgeLabel rigid flexScope)@@ -371,12 +373,12 @@ in edge >= Finite 0) [ (x,v) | x <- flexs, (RVar v) <- rigids ] -- inScope :: FlexId -> Rigid -> Bool- inScope x (RConst _) = True- inScope x (RVar v) = case Map.lookup x (flexScope gr) of- Just scope -> scope v- Nothing -> error $ "Warshall.inScope panic: flexible " ++ show x ++ " does not carry scope info when assigning it rigid variable " ++ show v+ -- UNUSED:+ -- inScope :: FlexId -> Rigid -> Bool+ -- inScope x (RConst _) = True+ -- inScope x (RVar v) = case Map.lookup x (flexScope gr) of+ -- Just scope -> scope v+ -- Nothing -> error $ "Warshall.inScope panic: flexible " ++ show x ++ " does not carry scope info when assigning it rigid variable " ++ show v {- loop1 @@ -398,9 +400,9 @@ , m!(row,col)) of -- Finite z | z <= 0 -> (True, Finite z) ->- let trunc z | z >= 0 = 0+ let trunc_z | z >= 0 = 0 | otherwise = -z- in extendSolution sub f (sizeRigid r (trunc z))+ in extendSolution sub f (sizeRigid r (trunc_z)) _ -> sub ) subst flexs loop1 [] subst = case flexs List.\\ (Map.keys subst) of@@ -415,8 +417,8 @@ -} loop2 :: [FlexId] -> Solution -> Maybe Solution- loop2 [] subst = Just subst- loop2 (f:flxs) subst = loop3 0 subst+ loop2 [] = Just+ loop2 (f:flxs) = loop3 0 where row = fromJust $ Map.lookup (Flex f) (nodeMap gr) loop3 col subst | col >= n = -- default to infinity
+ test/GoldplateTests.hs view
@@ -0,0 +1,5 @@+import System.Exit ( exitWith )+import System.Process ( system )++main :: IO ()+main = exitWith =<< system ("goldplate test")
+ test/bugs/AgdaIssue1052.ma view
@@ -0,0 +1,47 @@++data Eq [A : Set] (a : A) (b : A) : Set+{ refl : Eq A a a }++fun X : Set {}+fun f : X -> X {}++data StepsTo (x, z : X) : Set+{ done : StepsTo x x+; next : (y : X) -> Eq X (f y) z -> StepsTo x y -> StepsTo x z+}++fun trans : (x, y, z : X) -> StepsTo x y -> StepsTo y z -> StepsTo x z+{ trans x y .y p done = p+; trans x y z p (next z' r q) = next z' r (trans x y z' p q)+}++fun const : (x, y : X) -> StepsTo x y -> Eq X (f x) x -> Eq X x y+{ const x .x done q = refl+-- ; const _ _ (next _ r p) q = -- TODO+}++fun bad : (x, y, z : X) -> StepsTo x z -> Eq X (f z) x -> StepsTo x y -> StepsTo y x+{ bad x y z (next z' p q) r s =+ next z r (bad z y _ (trans _ _ _ (next _ r done) q) p (trans _ _ _ (next _ r done) s))+} -- Giving up, need unification!!++{-+data _=⟨_⟩⇒*_ {X : Set}(x : X)(f : X → X) : X → Set where+ done : x =⟨ f ⟩⇒* x+ next : ∀{y z} → f y ≡ z → x =⟨ f ⟩⇒* y → x =⟨ f ⟩⇒* z++trans* : ∀{X}{x y z}{f : X → X} → x =⟨ f ⟩⇒* y → y =⟨ f ⟩⇒* z → x =⟨ f ⟩⇒* z+trans* p done = p+trans* p (next r q) = next r (trans* p q)++const* : ∀{X}{x y}{f : X → X} → x =⟨ f ⟩⇒* y → f x ≡ x → x ≡ y+const* done q = refl+const* (next r p) q with const* p q+const* (next r p) q | refl = trans (sym q) r++bad : ∀{X}{x y z}{f : X → X} → x =⟨ f ⟩⇒* z → f z ≡ x → x =⟨ f ⟩⇒* y →+ y =⟨ f ⟩⇒* x+bad done p q rewrite const* q p = done+bad (next p q) r s =+ next r (bad (trans* (next r done) q) p (trans* (next r done) s))+-}
+ test/bugs/AgdaIssue1458.ma view
@@ -0,0 +1,32 @@+data Empty { e1 ; e2 }++fun absurd : [A : Set] -> Empty -> A+{}++data R (i : Size)+{ delay (force : [j < i] -> Empty & (Empty -> R j))+} fields force++fun d : [i : Size] -> (r : R i) -> [j < i] -> Empty+{ d i r j = case (r .force j) { (x,y) -> x } }++fun ifix : ([i : Size] -> R i -> Empty) -> [i : Size] -> R i+{ ifix f i .force j = f j (ifix f j) , absurd (R j) }++-- d i (ifix (\ i r -> f i (d i r)) i) j+-- = (\ i r -> f i (d i r)) j (ifix (\ i r -> f i (d i r)) j)+-- = f j (d j (ifix (\ i r -> f i (d i r)) j))++fun fix : (f : [i : Size] -> ([j < i] -> Empty) -> Empty)+ -> [i : Size] -> [j < i] -> Empty+{ fix f i = d i (ifix (\ i r -> f i (d i r)) i) }++-- fun f : [i : Size] -> ([j < i] -> Empty) -> Empty {}+-- eval let test = fix f # #++data Eq [A : Set](a : A) : A -> Set+{ refl : Eq A a a }++fun loop : (f : [i : Size] -> ([j < i] -> Empty) -> Empty) (x : Empty) ->+ Eq Empty (fix f # #) x -- (f # (d # (fix f # #)))+{ loop f x = refl }
+ test/fail.goldplate view
@@ -0,0 +1,9 @@+{ "command" : "miniagda"+, "working_directory" : "fail"+, "input_files" : "**/*.ma"+, "arguments" : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts" :+ [ { "exit_code" : 1 }+ , { "stdout" : "${GOLDPLATE_INPUT_NAME}.err" }+ ]+}
test/fail/AccCoqTermination.ma view
@@ -8,27 +8,27 @@ data Acc ( A : Set) ( Lt : A -> A -> Set) : A -> Set { acc : (b : A) ->- ((a : A) -> Lt a b -> Acc A Lt a) + ((a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +} -data Nat : Set +data Nat : Set {- zero : Nat ;- succ : Nat -> Nat+ zero : Nat ;+ succ : Nat -> Nat } {- R (S x) x if x < 2- -} + -} data R : Nat -> Nat -> Set { r1 : (x : Nat) -> R (succ (succ x)) (succ zero)-; r2 : R (succ zero) zero -} +; r2 : R (succ zero) zero+} {- fun succR : (n : Nat) -> R (succ n) n { succR zero = r2-; succR (succ n) = +; succR (succ n) = -} let acc2 : (n : Nat) -> Acc Nat R (succ (succ n))@@ -50,19 +50,19 @@ let acc0 : Acc Nat R zero = acc zero aux0- + fun accR : (n : Nat) -> Acc Nat R n { accR zero = acc0 ; accR (succ zero) = acc1-; accR (succ (succ n)) = acc2 n +; accR (succ (succ n)) = acc2 n } -fun acc_dest : (n : Nat) -> (p : Acc Nat R n) -> +fun acc_dest : (n : Nat) -> (p : Acc Nat R n) -> (m : Nat) -> R m n -> Acc Nat R m { acc_dest .n (acc n p) = p } -fun f : (x : Nat) -> Acc Nat R x -> Nat +fun f : (x : Nat) -> Acc Nat R x -> Nat { f x (acc .x p) = case x { zero -> f (succ x) (p (succ x) r2) ; (succ zero) -> f (succ x) (p (succ x) (r1 zero))@@ -71,7 +71,7 @@ } -- In Coq, g and h are accepted by the termination checker-fun g : (x : Nat) -> [Acc Nat R x] -> Nat +fun g : (x : Nat) -> [Acc Nat R x] -> Nat { g x p = case x { zero -> g (succ x) (acc_dest zero p (succ x) r2) ; (succ zero) -> g (succ x) (acc_dest (succ zero) p (succ x) (r1 zero))@@ -80,7 +80,7 @@ } -- MiniAgda refuses g and h -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero p = h (succ zero) (acc_dest zero p (succ zero) r2) ; h (succ zero) p = h (succ (succ zero)) (acc_dest (succ zero) p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero
test/fail/AccImplicit.ma view
@@ -1,23 +1,23 @@ data Acc ( A : Set) (Lt : A -> A -> Set) *(b : A) : Set { acc : (accOut : (a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +} -data Nat : Set -{ zero : Nat +data Nat : Set+{ zero : Nat ; succ : Nat -> Nat } {- R (S x) x if x < 2- -} + -} data R : Nat -> Nat -> Set { r1 : (x : Nat) -> R (succ (succ x)) (succ zero)-; r2 : R (succ zero) zero -} +; r2 : R (succ zero) zero+} {- fun succR : (n : Nat) -> R (succ n) n { succR zero = r2-; succR (succ n) = +; succR (succ n) = -} let acc2 : (n : Nat) -> Acc Nat R (succ (succ n))@@ -36,19 +36,19 @@ let acc0 : Acc Nat R zero = acc aux0- + fun accR : (n : Nat) -> Acc Nat R n { accR zero = acc0 ; accR (succ zero) = acc1-; accR (succ (succ n)) = acc2 n +; accR (succ (succ n)) = acc2 n } -fun acc_dest : [n : Nat] -> (p : Acc Nat R n) -> +fun acc_dest : [n : Nat] -> (p : Acc Nat R n) -> (m : Nat) -> R m n -> Acc Nat R m { acc_dest n (acc p) = p } -fun f : (x : Nat) -> Acc Nat R x -> Nat +fun f : (x : Nat) -> Acc Nat R x -> Nat { f x (acc p) = case x { zero -> f (succ x) (p (succ x) r2) ; (succ zero) -> f (succ x) (p (succ x) (r1 zero))@@ -58,7 +58,7 @@ {- -- In Coq, g and h are accepted by the termination checker-fun g : (x : Nat) -> [Acc Nat R x] -> Nat +fun g : (x : Nat) -> [Acc Nat R x] -> Nat { g x p = case x { zero -> g (succ x) (acc_dest zero p (succ x) r2) ; (succ zero) -> g (succ x) (acc_dest (succ zero) p (succ x) (r1 zero))@@ -66,14 +66,14 @@ } } -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero p = h (succ zero) (acc_dest zero p (succ zero) r2) ; h (succ zero) p = h (succ (succ zero)) (acc_dest (succ zero) p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero } -} -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero (acc p) = h (succ zero) (p (succ zero) r2) ; h (succ zero) (acc p) = h (succ (succ zero)) (p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero@@ -84,7 +84,7 @@ so the forced match does not refine the type [Acc Nat R x] further. This means that h can be translated to case trees without any case on q,-it just uses the destructor. -} +it just uses the destructor. -} eval let bla : Nat = f zero acc0@@ -94,5 +94,5 @@ } let p1 : (p : Acc Nat R zero) -> Id Nat (h zero p) (h zero acc0)- = \ p -> refl + = \ p -> refl {- In a case tree representation of h this would type check! -}
test/fail/BoundedFake.ma view
test/fail/CheatSubtypingPos.ma view
test/fail/D.ma view
@@ -2,7 +2,7 @@ -- this might be accepted without trustme in future versions?! trustme-data D : Set +data D : Set { abs : ^(^D -> D) -> D }
test/fail/D1.ma view
@@ -2,12 +2,12 @@ -- this might be accepted without trustme in future versions?! trustme-data D : Set +data D : Set { abs : (^D -> D) -> D } -- this must fail!-fun app : ^D -> ^D -> D +fun app : ^D -> ^D -> D { app (abs f) d = f d } {- abs must not be characterized as a forced match!
test/fail/DescendAscend.ma view
test/fail/DescendAscend2.ma view
@@ -8,7 +8,7 @@ mutual { fun f : Nat -> Nat -> Nat- { + { f (succ n) m = f n (succ m) ; -- ADDING THIS LINE leads to success?? f (succ (succ (succ n))) m = plus (m) (g n n) }
test/fail/DoNotEraseDataTeleForConTypes.ma view
test/fail/EndsCoInEmpty.ma view
@@ -2,7 +2,7 @@ -- Tried to trick MiniAgda into believing that an empty type is a tuple type -- but it did not follow me. Good! -data Bool : Set +data Bool : Set { true : Bool ; false : Bool }@@ -16,7 +16,7 @@ { exFalso A B () } -sized codata Stream ++(A : Set) : Size -> Set +sized codata Stream ++(A : Set) : Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i } @@ -26,4 +26,4 @@ fun anything : [A : Set] -> A { anything A = exFalso (EmptyOr (Stream Bool #) false) A (bla Bool #)-} +}
test/fail/Fib2.ma view
@@ -2,31 +2,31 @@ -- Nat --------------------------------------------------------------- -sized data SNat : Size -> Set +sized data SNat : Size -> Set { zero : [i : Size] -> SNat ($ i)-; succ : [i : Size] -> SNat i -> SNat ($ i) +; succ : [i : Size] -> SNat i -> SNat ($ i) } let Nat : Set = SNat # -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add (zero .#) = \ y -> y ; add (succ .# x) = \ y -> succ # (add x y) } -- Stream ------------------------------------------------------------ -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] -> (A -> B -> C) -> [i : Size] ->- Stream A i -> Stream B i -> Stream C i + Stream A i -> Stream B i -> Stream C i {- zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = - cons i (f a b) (zipWith A B C f i as bs) + zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+ cons i (f a b) (zipWith A B C f i as bs) } @@ -37,16 +37,16 @@ cofun fib : [i : Size] -> Stream Nat i {- fib ($ i) = cons i n0 (zipWith Nat Nat Nat add i + fib ($ i) = cons i n0 (zipWith Nat Nat Nat add i (cons i n1 (fib i)) (fib i)) } cofun fib2 : [i : Size] -> Stream Nat (i + i) { fib2 ($ i) = -- RHS illtyped, produces only Stream Nat $(i + i)- cons (i + i) n0 - (zipWith Nat Nat Nat add (i + i) - (cons (i + i) n1 (fib2 i)) + cons (i + i) n0+ (zipWith Nat Nat Nat add (i + i)+ (cons (i + i) n1 (fib2 i)) (fib2 i)) }
test/fail/FinBranchMutualWrong.ma view
test/fail/HOMatching.ma view
@@ -11,5 +11,5 @@ { lim : (A -> Lim A) -> Lim A } -fun bla : (A : Set) -> Lim A -> +fun bla : (A : Set) -> Lim A -> -}
test/fail/HetIdFoolingEta.ma view
@@ -1,10 +1,10 @@ data Id (A : Set) (a : A) : (B : Set) -> B -> Set 1-{ refl : Id A a A a +{ refl : Id A a A a } -- this does not typecheck since f A a B b expands to *, not to refl let offDia : (f : (A : Set) -> (B : Set) -> (a : A) -> (b : B) -> Id A a B b) ->- (A : Set) -> (B : Set) -> (a : A) -> (b : B) -> + (A : Set) -> (B : Set) -> (a : A) -> (b : B) -> Id (Id A B a b) (f A B a b)- (Id A a A a) (refl A a) + (Id A a A a) (refl A a) = \ f -> \ A -> \ B -> \ a -> \ b -> refl (Id A a A a) (refl A a)
test/fail/IdFoolingEta.ma view
@@ -1,16 +1,16 @@-data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (P : A -> Set) -> P a -> P b { subst A a .a (refl) P x = x } -- this does not typecheck since f A a b expands to * but subst blocks let offDia : (f : (A : Set) -> (a : A) -> (b : A) -> Id A a b) ->- (A : Set) -> (a : A) -> (b : A) -> - Id (Id A a b) - (f A a b) + (A : Set) -> (a : A) -> (b : A) ->+ Id (Id A a b)+ (f A a b) (subst A a b (f A a b) (Id A a) (refl)) = \ f -> \ A -> \ a -> \ b -> refl {- (Id A a b) (subst A a b (f A a b) (Id A a) (refl A a)) -}
test/fail/InjDataLoop.ma view
@@ -10,19 +10,19 @@ data Eq [i : Size](A : Set i)(a : A) : A -> Set { refl : Eq i A a a-} +} data I (F : Set -> Set) : Set {}- + data InvI (A : Set) : Set 1 { inv : (Inverse : Set -> Set) -> Eq 1 Set (I Inverse) A -> InvI A-} +} -fun invertible : (A : Set) -> InvI A {} -- postulate +fun invertible : (A : Set) -> InvI A {} -- postulate -- self-application on the type level let cantor : Set -> Set-= \ A -> case (invertible A) += \ A -> case (invertible A) { (inv X p) -> X A -> Empty } @@ -32,15 +32,15 @@ -- type checker loops! let delta : cIc = case (invertible (I cantor))- { (inv {-.(I cantor)-} .cantor (refl {-.1 .Set .(I cantor)-})) -> + { (inv {-.(I cantor)-} .cantor (refl {-.1 .Set .(I cantor)-})) -> -- in the branch, cIc --> cIc -> Empty --> (cIc -> Empty) -> Empty -->... \ f -> f f } let delta' : cIc -> Empty = case (invertible (I cantor))- { (inv {-.(I cantor)-} .cantor (refl {-.Set .(I cantor)-})) -> - \ f -> f f + { (inv {-.(I cantor)-} .cantor (refl {-.Set .(I cantor)-})) ->+ \ f -> f f } let omega : Empty
test/fail/InjDataLoop2.ma view
@@ -10,22 +10,22 @@ data Eq [i : Size](A : Set i)(a : A) : A -> Set { refl : Eq i A a a-} +} data I (F : Set -> Set) : Set {}- + data InvI (A : Set) : Set 1-{ inv : (Inverse : Set -> Set) -> - (isInverse : Eq 1 Set (I Inverse) A) -> +{ inv : (Inverse : Set -> Set) ->+ (isInverse : Eq 1 Set (I Inverse) A) -> InvI A-} +} fields Inverse, isInverse -fun invertible : (A : Set) -> InvI A {} -- postulate +fun invertible : (A : Set) -> InvI A {} -- postulate -- self-application on the type level let cantor : Set -> Set-= \ A -> Inverse (invertible A) A -> Empty += \ A -> Inverse (invertible A) A -> Empty -- not using smart case here, gives a different message let cIc : Set@@ -43,7 +43,7 @@ let delta' : cIc -> Empty = case (invertible (I cantor)) { (inv .cantor refl) ->- \ f -> f f + \ f -> f f } let omega : Empty
test/fail/InvalidField.ma view
test/fail/InvalidSizeP.ma view
test/fail/IrrHeterogeneousEta.ma view
@@ -19,9 +19,9 @@ -- fails with "Bool -> Bool has different shape than Bool" fail-let etaFun' : +let etaFun' : [F : [b : Bool] -> (T b -> T b) -> Bool -> Set] ->- (g : F false (\ x -> x) true -> Bool) -> + (g : F false (\ x -> x) true -> Bool) -> (h : (a : Bool) -> F true (\ x y -> x y) a) -> Bool = \ F g h -> g (h true)@@ -35,9 +35,9 @@ -} fail-let etaFun : +let etaFun : [F : [b : Bool] -> (T b -> T b) -> Set] ->- (g : F false (\ x -> x) -> Bool) -> + (g : F false (\ x -> x) -> Bool) -> (a : F true (\ x y -> x y)) -> Bool = \ F g a -> g a@@ -56,26 +56,26 @@ } fail-let etaUnit' : +let etaUnit' : [F : [b : Bool] -> (U b -> U b) -> Bool -> Set] ->- (g : F false (\ x -> x) true -> Bool) -> + (g : F false (\ x -> x) true -> Bool) -> (h : (a : Bool) -> F true (\ x -> unit) a) -> Bool = \ F g h -> g (h true) -{- +{- F false (\ x -> x) true ?= F true (\ x -> unit) true x : Bool |- x : Bool ?= x : Unit |- unit : Unit -} -let etaUnit : +let etaUnit : [F : [b : Bool] -> (U b -> U b) -> Set] ->- (g : F false (\ x -> x) -> Bool) -> + (g : F false (\ x -> x) -> Bool) -> (a : F true (\ x -> unit)) -> Bool = \ F g a -> g a -{- +{- F false (\ x -> x) true ?= F true (\ x -> unit) true x : Bool |- x : Bool ?= x : Unit |- unit : Unit -}
test/fail/IrrHeterogeneousFun.ma view
@@ -18,32 +18,32 @@ ; T false = Bool } -fun good : +fun good : [F : Nat -> Set] -> [f : [b : Bool] -> ([T b] -> Nat) -> Nat] -> (g : (n : Nat) -> F (f true (\ x -> n))) ->- (h : F (f false (\ x -> zero)) -> Bool) -> + (h : F (f false (\ x -> zero)) -> Bool) -> Bool { good F f g h = h (g zero) } -let good' : +let good' : [F : [b : Bool] -> ([T b] -> Nat) -> Set] ->- (g : F false (\ x -> zero) -> Bool) -> + (g : F false (\ x -> zero) -> Bool) -> (h : (n : Nat) -> F true (\ x -> n)) -> Bool = \ F g h -> g (h zero) -- fails with "Nat has different shape than Bool" trustme-let bad1 : +let bad1 : [F : [b : Bool] -> (T b -> T b) -> Nat -> Set] ->- (g : F false (\ x -> x) zero -> Bool) -> + (g : F false (\ x -> x) zero -> Bool) -> (h : (n : Nat) -> F true (\ x -> x) n) -> Bool = \ F g h -> g (h zero) -{- compare +{- compare F false (\ x -> x) zero ?= F true (\ x -> x) zero x : Bool |- x : Bool ?= x : Nat |- x : Nat -}@@ -52,14 +52,13 @@ { f true x = x ; f false true = false ; f false false = true-} +} -- this should of course fail-let bad2 : +let bad2 : [F : [b : Bool] -> (T b -> T b) -> Nat -> Set] ->- (g : F false (\ x -> f false x) zero -> Bool) -> + (g : F false (\ x -> f false x) zero -> Bool) -> (h : (n : Nat) -> F true (\ x -> f true x) n) -> Bool = \ F g h -> g (h zero)-
test/fail/MeasureInTelescope.ma view
test/fail/MeasureInValue.ma view
@@ -1,10 +1,9 @@--- 2010-07-17 +-- 2010-07-17 -- measures can only appear in fun-decls -- caught by the scope-checker -fun f : (i,j : Size) -> |i| -> Set 1 +fun f : (i,j : Size) -> |i| -> Set 1 { f i j = |i| -> Set }-
test/fail/MeasuresTypo.ma view
@@ -24,10 +24,10 @@ fun even' : [i : Size] -> |i,0| -> Nat i -> Bool { even' i (zero (i > j)) = true ; even' i (succ (i > j) n) = odd' i n -- typo here, should be j- } + } fun odd' : [i : Size] -> |i,0| -> Nat i -> Bool { odd' i (zero (i > j)) = false ; odd' i (succ (i > j) n) = even j n- } + } }
test/fail/MixedMeasureLength.ma view
@@ -1,4 +1,4 @@--- 2010-07-17 +-- 2010-07-17 -- measured functions need to have the same length measure -- caught by the scope-checker
test/fail/MixedMeasuredUnmeasured.ma view
@@ -1,6 +1,6 @@--- 2010-07-17 +-- 2010-07-17 --- mixing measured functions with unmeasured is illegal, +-- mixing measured functions with unmeasured is illegal, -- caught by the scope-checker mutual {
test/fail/MustBeCofun.ma view
@@ -1,6 +1,6 @@ -- 2010-08-18 -sized codata CoList (A : Set) : Size -> Set +sized codata CoList (A : Set) : Size -> Set { conil : [i : Size] -> CoList A $i ; cocons : [i : Size] -> A -> CoList A i -> CoList A $i }
test/fail/MutualDataNotMon.ma view
@@ -2,7 +2,7 @@ mutual { - data L +(A : Set) : Set + data L +(A : Set) : Set { l1 : A -> L A -> L A ; l2 : T A -> L A }
test/fail/MutualNeg.ma view
test/fail/MutualNeg2.ma view
test/fail/NatToSize.ma view
@@ -1,6 +1,6 @@ -- 2010-11-01 -data Nat : Set +data Nat : Set { zero : Nat ; suc : Nat -> Nat }
test/fail/NonLinearPatterns.ma view
test/fail/NonPosBoundedData.ma view
test/fail/NotForcedConstructors.ma view
@@ -16,4 +16,4 @@ fun f : (b : Bool) -> [Nat b] -> Bool { f true zero = true ; f false (succ n) = false-} +}
test/fail/NumbersAsIds.ma view
@@ -1,5 +1,5 @@ --2010-06-25 feature "numbers as ids" removed, numbers are now sizes-data 3 : Set +data 3 : Set { 0 : 3 ; 1 : 3 ; 2 : 3
test/fail/OverlappingPatternIndFam-sound.ma view
@@ -3,17 +3,17 @@ ; false : Bool } -data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (P : A -> Set) -> P a -> P b { subst A a .a refl P x = x } -- an overlapping ind. fam.-data DecEq (A : Set)(a : A) : A -> Set +data DecEq (A : Set)(a : A) : A -> Set { eq : DecEq A a a ; notEq : (b : A) -> DecEq A a b }
test/fail/OverlappingPatternIndFam.ma view
@@ -1,4 +1,4 @@--- 2009-09-19 +-- 2009-09-19 -- unsound eta-expansion as noted by Anton Setzer data Bool : Set@@ -6,17 +6,17 @@ ; false : Bool } -data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (P : A -> Set) -> P a -> P b { subst A a .a (refl) P x = x } -- an overlapping ind. fam.-data DecEq (A : Set)(a : A) : A -> Set +data DecEq (A : Set)(a : A) : A -> Set { eq : DecEq A a a ; notEq : (b : A) -> DecEq A a b }@@ -24,12 +24,12 @@ -- every function into DecEq is the constant notEq one -- that is provable in the current implementation of eta, but is unsound let offDiag : (A : Set) -> (f : (a : A) -> (b : A) -> DecEq A a b) ->- (a : A) -> (b : A) -> + (a : A) -> (b : A) -> Id (DecEq A a b) (f a b) (notEq A a b) = \ A -> \ f -> \ a -> \ b -> refl -- (DecEq A a b) (notEq A a b) -- let incons : (A : Set) -> (a : A) -> Id (DecEq A a a) (eq A a) (notEq A a a)--- = \ A -> \ a -> offDiag (\ A' -> \ a' -> \ b -> eq A' a') A a a +-- = \ A -> \ a -> offDiag (\ A' -> \ a' -> \ b -> eq A' a') A a a fun f : (x : Bool) -> (y : Bool) -> DecEq Bool x y { f true true = eq Bool true
test/fail/ResurrectFromErasedPattern.ma view
@@ -11,4 +11,4 @@ fun f : (b : Bool) -> [Nat b] -> Nat false { f true zero = succ true zero ; f false (succ b n) = succ false (succ b n)-} +}
test/fail/SizedDataWrongPol.ma view
test/fail/StoreSize.ma view
@@ -1,4 +1,4 @@--- 2010-09-20 +-- 2010-09-20 data WrapSize : Set 1 { inn : (out : Size) -> WrapSize
test/fail/StreamDupl.ma view
@@ -1,9 +1,9 @@--- 2010-11-01 +-- 2010-11-01 -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i }- + cofun evens : [A : Set] -> [i, j : Size] -> Stream A (i + j) -> Stream A i { evens A ($i) j (cons .(i + j + 1) a (cons .(i + j) b as)) = cons i a (evens A i as)
test/fail/StreamNotSemiCont.ma view
@@ -1,8 +1,8 @@ -- 2010-07-01 Following a question of Nisse, this example explains -- the need for continuity check. -data Unit : Set -{ unit : Unit +data Unit : Set+{ unit : Unit } sized codata Stream +(A : Set) : Size -> Set@@ -16,5 +16,5 @@ let undef : Stream Unit # = bad # Unit (tail #) -eval let diverge : Unit = head # undef +eval let diverge : Unit = head # undef
test/fail/Tm.ma view
@@ -4,15 +4,15 @@ { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i } fields head, tail -cofun iterate +cofun iterate : [A : Set ] -> (step : A -> A) -> (start : A) -> [i : Size] -> Stream A i { iterate A step start ($ i) = cons i start (iterate A step (step start) i) }- + -- this might be accepted without trustme in future versions?! trustme-data Tm : Set +data Tm : Set { abs : ^(^Tm -> Tm) -> Tm ; app : ^Tm -> ^Tm -> Tm }@@ -30,12 +30,12 @@ fun step : Tm -> Tm { step (app (abs f) t) = f t ; step (app t u) = app (step t) u-; step (abs f) = abs (\ x -> step (f x)) +; step (abs f) = abs (\ x -> step (f x)) -- rejected, since x not parametric -- think of f=id, then step would analyze x ! } let steps : Tm -> Stream Tm #- = \ start -> iterate Tm step start # + = \ start -> iterate Tm step start # eval let omegas : Stream Tm # = steps omega
test/fail/UlfsCounterexample.ma view
@@ -15,11 +15,11 @@ -- type checking fails with message "zero != false" -- can be harmful if constructors can be reused in different types-fun bad : +fun bad : [F : Nat -> Set] -> [f : [x : Bool] -> T x -> Nat] -> (g : (n : Nat) -> F (f true n)) ->- (h : F (f false false) -> Bool) -> + (h : F (f false false) -> Bool) -> Bool { bad F f g h = h (g zero) }
test/fail/UlfsCounterexample2.ma view
@@ -9,19 +9,19 @@ } data T : Bool -> Set-{ nat : Nat -> T true +{ nat : Nat -> T true ; bool : Bool -> T false } -- type checking fails with message "nat != bool" -- can be harmful if constructors can be reused in different types-fun bad : +fun bad : [F : Nat -> Set] -> ^(f : [x : Bool] -> T x -> Nat) -> (g : (n : Nat) -> F (f true (nat n))) ->- (h : F (f false (bool false)) -> Bool) -> + (h : F (f false (bool false)) -> Bool) -> Bool { bad F f g h = h (g zero) }--- 2010-10-01 now it is checked before that +-- 2010-10-01 now it is checked before that -- nat and bool are in the same family T
test/fail/VectorPatternNotForced.ma view
@@ -5,7 +5,7 @@ fun add : Nat -> Nat -> Nat { add zero y = y-; add (succ x) y = succ (add x y) +; add (succ x) y = succ (add x y) } data Vec (A : Set) : Nat -> Set@@ -18,7 +18,7 @@ ; length A .(succ n) (cons n a v) = succ (length A n v) } -fun head : [A : Set] -> [n : Nat] -> Vec A (succ n) -> A +fun head : [A : Set] -> [n : Nat] -> Vec A (succ n) -> A { head A .n (cons n a v) = a } fun tail : [A : Set] -> [n : Nat] -> Vec A (succ n) -> Vec A n@@ -26,7 +26,7 @@ } fun zeroes : (n : Nat) -> Vec Nat n-{ zeroes zero = nil +{ zeroes zero = nil ; zeroes (succ x) = cons x zero (zeroes x) }
test/fail/absurdPatUnit.ma view
test/fail/adm/adm1.ma view
@@ -8,7 +8,7 @@ -- size not used fun foo : (i : Size ) -> Nat i {---foo ($ i) = foo i -- subtyping +--foo ($ i) = foo i -- subtyping } @@ -18,5 +18,4 @@ foo2 i (zero .i) = foo2 i (zero i); foo2 i (succ .i x) = Nat # }-
test/fail/adm/adm2.ma view
test/fail/adm/adm3.ma view
@@ -1,4 +1,4 @@-data Maybe (A : Set) : Set +data Maybe (A : Set) : Set { nothing : Maybe A ; just : A -> Maybe A }@@ -13,7 +13,7 @@ fun bla : (i : Size ) -> SNat ($ i) -> SNat i { bla .($ i) (zero ($ i)) = zero i; -- no complete pattern matching-bla .i (succ i x) = x +bla .i (succ i x) = x } -- 2010-08-18 new error: successor pattern only allowed in cofun
test/fail/bfSizePatternIncomplete.ma view
@@ -3,13 +3,13 @@ pair : A -> B -> Prod A B } -fun split : (A : Set) -> (B : Set) -> Prod A B -> - (C : Set) -> (A -> B -> C) -> C +fun split : (A : Set) -> (B : Set) -> Prod A B ->+ (C : Set) -> (A -> B -> C) -> C { split A B (pair a b) C f = f a b } -sized data List (+ A : Set) : Size -> Set +sized data List (+ A : Set) : Size -> Set { nil : (i : Size) -> List A ($ i) ; cons : (i : Size) -> A -> List A i -> List A ($ i)@@ -29,35 +29,35 @@ fun step : (j : Size) -> (A : Set) -> (i : Size) ->- List (Rose A ($ i)) j -> - Prod (List A j) (List (Rose A i) #) + List (Rose A ($ i)) j ->+ Prod (List A j) (List (Rose A i) #) {- step .($ j) A i (nil {- .(Rose A ($ i)) -} j) = + step .($ j) A i (nil {- .(Rose A ($ i)) -} j) = pair {- (List A _) (List (Rose A _) _) -}- (nil _) + (nil _) (nil {- (Rose A i) -} _); step .($ j) A .i (cons {- .(Rose A ($ i)) -} j (rose i a rs') rs) =- split (List A j) (List (Rose A i) #) - (step j A i rs) + split (List A j) (List (Rose A i) #)+ (step j A i rs) (Prod (List A ($ j)) (List (Rose A i) #)) (\ as -> \ rs'' -> pair {- (List A _) (List (Rose A _) #) -}- (cons _ a as) - (append (Rose A i) rs' rs'')) + (cons _ a as)+ (append (Rose A i) rs' rs'')) } -- 2010-08-18 new error: successor pattern only allowed in cofun-fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # +fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # { bf' A ($ i) as (nil {-.(Rose A ($ i))-} .#) = as;- bf' A ($ i) as (cons {-.(Rose A ($ i))-} .# r rs) = append A as + bf' A ($ i) as (cons {-.(Rose A ($ i))-} .# r rs) = append A as (split- (List A #) (List (Rose A i) #) + (List A #) (List (Rose A i) #) (step # A i (cons {-(Rose A ($ i))-} _ r rs))- (List A #) - (bf' A i) + (List A #)+ (bf' A i) ) }
test/fail/bfTypeNotAdmissible.ma view
@@ -3,13 +3,13 @@ pair : A -> B -> Prod A B } -fun split : (A : Set) -> (B : Set) -> Prod A B -> - (C : Set) -> (A -> B -> C) -> C +fun split : (A : Set) -> (B : Set) -> Prod A B ->+ (C : Set) -> (A -> B -> C) -> C { split A B (pair a b) C f = f a b } -sized data List (+ A : Set) : Size -> Set +sized data List (+ A : Set) : Size -> Set { nil : (i : Size) -> List A ($ i) ; cons : (i : Size) -> A -> List A i -> List A ($ i)@@ -29,56 +29,56 @@ fun step : (j : Size) -> (A : Set) -> (i : Size) ->- List (Rose A ($ i)) j -> - Prod (List A j) (List (Rose A i) #) + List (Rose A ($ i)) j ->+ Prod (List A j) (List (Rose A i) #) { step .($ j) A i (nil j) = pair (nil _) (nil _); step .($ j) A .i (cons j (rose i a rs') rs) =- split (List A j) (List (Rose A i) #) - (step j A i rs) + split (List A j) (List (Rose A i) #)+ (step j A i rs) (Prod (List A ($ j)) (List (Rose A i) #)) (\ as -> \ rs'' -> pair- (cons _ a as) - (append (Rose A i) rs' rs'')) + (cons _ a as)+ (append (Rose A i) rs' rs'')) } -fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # +fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # { bf' A i as (nil .#) = as;- bf' A .($ i) as (cons .# (rose i a r) rs) = append A as + bf' A .($ i) as (cons .# (rose i a r) rs) = append A as (split- (List A #) (List (Rose A i) #) + (List A #) (List (Rose A i) #) (step # A i (cons _ (rose _ a r) rs))- (List A #) - (bf' A i) + (List A #)+ (bf' A i) ) } {- mutual { - fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # + fun bf' : (A : Set) -> (i : Size) -> List A # -> List (Rose A i) # -> List A # { bf' A ($ i) as (nil .(Rose A ($ i)) .#) = as; bf' A ($ i) as (cons .(Rose A ($ i)) .# r rs) = append A as (bf A i r rs) }- + fun bf : (A : Set) -> (i : Size) -> Rose A i -> List (Rose A i) # -> List A # {- - bf A i r rs = ++ bf A i r rs = (split- (List A #) (List (Rose A i) #) + (List A #) (List (Rose A i) #) (step # A i (cons (Rose A ($ i)) _ r rs))- (List A #) - (bf' A i) + (List A #)+ (bf' A i) ) }- + } -}
test/fail/bigData.ma view
@@ -1,6 +1,6 @@ -- 2010-06-25 removed Set:Set, so this should not pass -data Any : Set +data Any : Set { inn : (Out : Set) -> Any } data Big : Set -> Set
test/fail/coSetOmega.ma view
@@ -2,7 +2,7 @@ { D ($ i) = D i -> D i } -let sapp : D # -> D # +let sapp : D # -> D # = \ x -> x x eval let omega : D # -> D #
test/fail/coSizeInFun.ma view
test/fail/codataNotMonotone.ma view
@@ -1,12 +1,12 @@ -- 2010-05-06 -sized data SNat : Size -> Set +sized data SNat : Size -> Set { zero : [i : Size] -> SNat ($ i)-; succ : [i : Size] -> SNat i -> SNat ($ i) +; succ : [i : Size] -> SNat i -> SNat ($ i) } sized codata NatEq : (i : Size) -> SNat i -> SNat i -> Set { eqz : [i : Size] -> NatEq ($ i) (zero i) (zero i)-; eqs : [i : Size] -> (n : SNat i) -> (m : SNat i) -> +; eqs : [i : Size] -> (n : SNat i) -> (m : SNat i) -> NatEq i n m -> NatEq ($ i) (succ i n) (succ i m) }
test/fail/codyPatternConditionExplicit.ma view
@@ -3,8 +3,8 @@ M below) does not allow to express the precise sizes in a deep match involving a limit ordinal (see L below). From this I could construct a non-looping term in MiniAgda.- - 2010-03-09 ++ 2010-03-09 This file tests whether the loop is still accepted after the fix. -} @@ -42,21 +42,21 @@ ; (S .($ i) x) -> x ; (L .($ i) g) -> g n ; (M .($ i) a b) -> a- } + } fun deep : [i : Size] -> O i -> Nat -> Nat-{ deep i4 - (M (i4 > i3) - (L (i3 > j2) f) - (S (i3 > i2) - (S (i2 > i1) +{ deep i4+ (M (i4 > i3)+ (L (i3 > j2) f)+ (S (i3 > i2)+ (S (i2 > i1) (S (i1 > i) x)))) n = deep ($$$ i) (M ($$ i) (L ($ i) (pre i f)) (S j2 (f n))) (succ (succ (succ n)))-; deep i x n = n +; deep i x n = n } -let four : Nat +let four : Nat = succ (succ (succ (succ zero))) eval let loop : Nat = deep # (M # (L # emb) (emb four)) four
test/fail/codyPatternConditionExplicit2.ma view
@@ -3,8 +3,8 @@ M below) does not allow to express the precise sizes in a deep match involving a limit ordinal (see L below). From this I could construct a non-looping term in MiniAgda.- - 2010-03-09 ++ 2010-03-09 This file tests whether the loop is still accepted after the fix. -} @@ -42,22 +42,22 @@ ; (S .($ i) x) -> x ; (L .($ i) g) -> g n ; (M .($ i) a b) -> a- } + } fun deep : [i : Size] -> O i -> Nat -> Nat-{ deep i4 - (M (i4 > i3) - (L (i3 > j2) f) - (S (i3 > i2) - (S (i2 > i1) +{ deep i4+ (M (i4 > i3)+ (L (i3 > j2) f)+ (S (i3 > i2)+ (S (i2 > i1) (S (i1 > i) x)))) n -- illtyped! vv = deep (max ($$$ i) ($$ j2)) (M (max ($$ i) ($ j2)) (L ($ i) (pre ($$ i) f)) (S j2 (f n))) (succ (succ (succ n))) -- 8 9 10 11 12-; deep i x n = n +; deep i x n = n } -let four : Nat +let four : Nat = succ (succ (succ (succ zero))) eval let loop : Nat = deep # (M # (L # emb) (emb four)) four
test/fail/cofunIntoBoolTimesStream.ma view
@@ -1,6 +1,6 @@ -- 2010-05-19 -data Bool : Set +data Bool : Set { true : Bool ; false : Bool }@@ -11,7 +11,7 @@ fields fst, snd sized codata BStr : Size -> Set-{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) +{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) } fields head, tail
test/fail/cofunIntoStreamPlusStream.ma view
@@ -4,7 +4,7 @@ { unit : Unit } -data Bool : Set +data Bool : Set { true : Bool ; false : Bool }@@ -20,12 +20,12 @@ } sized codata BStr : Size -> Set-{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) +{ cons : [i : Size] -> (head : Bool) -> (tail : BStr i) -> BStr ($ i) } -- this code needs to be rejected by the type checker! : -- a "function" returning the input stream plus its "last" bit-cofun idAndLast : [i : Size] -> BStr i -> Twice (BStr i) +cofun idAndLast : [i : Size] -> BStr i -> Twice (BStr i) { idAndLast ($ i) (cons .i b bs) = fmap (BStr i) (BStr ($ i)) (cons i b) (idAndLast i bs) }@@ -35,6 +35,6 @@ } -- this will loop:-eval let last : Twice Unit = +eval let last : Twice Unit = fmap (BStr #) Unit (\ x -> unit) (idAndLast # (trues #))
test/fail/countingBT.ma view
@@ -1,11 +1,11 @@-data BT : Set +data BT : Set { lf : BT ; node : BT -> BT -> BT } mutual { fun f : BT -> BT- { f (node l (node rl rr)) = g l rr + { f (node l (node rl rr)) = g l rr } fun g : BT -> BT -> BT { g t u = f (node t u)
test/fail/countingMerge.ma view
@@ -9,7 +9,7 @@ } data List : Set-{ nil : List +{ nil : List ; cons : Nat -> List -> List } @@ -24,13 +24,13 @@ } fun merge_aux : Nat -> List -> Nat -> List -> Bool -> List { merge_aux x xs y ys true = cons x (merge xs (cons y ys))- ; merge_aux x xs y ys false = cons y (merge (cons x xs) ys) + ; merge_aux x xs y ys false = cons y (merge (cons x xs) ys) } } -{- this is not recognized terminating since +{- this is not recognized terminating since cons y ys is in no relation with y or ys -its size is max(y,ys) + 1, but we do not honor max in termination checking +its size is max(y,ys) + 1, but we do not honor max in termination checking -}
test/fail/dataNotMonotone.ma view
@@ -7,4 +7,4 @@ sized data NotMon (A : Set) : Size -> Set { consBla : (i : Size) -> Stream A i -> NotMon A i -> NotMon A ($ i)-} +}
test/fail/erased1.ma view
@@ -1,5 +1,5 @@ -- invalid use of erased data -let id : (A : Set) -> [A] -> A +let id : (A : Set) -> [A] -> A = \ A -> \ x -> x
test/fail/f_x_is_f_0.ma view
@@ -7,5 +7,5 @@ fun f : (i : Size) -> SNat i -> SNat # {-f ($ ($ i)) x = f ($ i) (zero i) +f ($ ($ i)) x = f ($ i) (zero i) }
test/fail/fibStream.ma view
@@ -1,7 +1,7 @@ data Nat : Set { zero : Nat;- succ : Nat -> Nat + succ : Nat -> Nat } fun add : Nat -> Nat -> Nat {@@ -12,7 +12,7 @@ sized codata Stream (+ A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs@@ -20,10 +20,10 @@ cofun zipWith : (A : Set) -> (B : Set) -> (C : Set) -> (A -> B -> C) -> (i : Size) ->- Stream A i -> Stream B i -> Stream C i + Stream A i -> Stream B i -> Stream C i {- zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = - cons i (f a b) (zipWith A B C f i as bs) + zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+ cons i (f a b) (zipWith A B C f i as bs) } let n0 : Nat = zero
test/fail/hang2.ma view
@@ -2,7 +2,7 @@ { } -mutual +mutual { fun F : Empty -> Empty@@ -10,7 +10,7 @@ F x = F x } --- should this scope check ? +-- should this scope check ? fun f : Empty -> Empty { f x = f (F x)
test/fail/huetHullotReverse.ma view
@@ -1,43 +1,43 @@ data Enum : Set {- aa : Enum ;- bb : Enum ; - cc : Enum + aa : Enum ;+ bb : Enum ;+ cc : Enum } -data List ( A : Set ) : Set +data List ( A : Set ) : Set { nil : List A;-cons : A -> List A -> List A +cons : A -> List A -> List A } -let list : List Enum = cons aa (cons bb (cons cc (nil ))) -mutual +let list : List Enum = cons aa (cons bb (cons cc (nil )))+mutual { - fun rev : ( A : Set ) -> List A -> List A - {+ fun rev : ( A : Set ) -> List A -> List A+ { - rev A (nil ) = nil ;- rev A (cons x xs) = cons (rev1 A x xs) (rev2 A x xs)+ rev A (nil ) = nil ;+ rev A (cons x xs) = cons (rev1 A x xs) (rev2 A x xs) - }+ } - fun rev1 : ( A : Set ) -> A -> List A -> A- {+ fun rev1 : ( A : Set ) -> A -> List A -> A+ { - rev1 A a (nil ) = a; - rev1 A a (cons x xs) = rev1 A x xs+ rev1 A a (nil ) = a;+ rev1 A a (cons x xs) = rev1 A x xs - }+ } - fun rev2 : (A : Set ) -> A -> List A -> List A - {+ fun rev2 : (A : Set ) -> A -> List A -> List A+ { - rev2 A a (nil ) = nil ;- rev2 A a (cons x xs) = rev A (cons a (rev A (rev2 A x xs))) - }+ rev2 A a (nil ) = nil ;+ rev2 A a (cons x xs) = rev A (cons a (rev A (rev2 A x xs)))+ } } let revlist : List Enum = rev Enum list
test/fail/incompleteSizePattern2.ma view
test/fail/inconsistentAssumption.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {- zero : (i : Size) -> SNat ($ i);- succ : (i : Size) -> SNat i -> SNat ($ i)+ zero : (i : Size) -> SNat ($ i);+ succ : (i : Size) -> SNat i -> SNat ($ i) } data Eq (A : Set) (a : A) : A -> Set@@ -22,17 +22,17 @@ } -let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat # - = \ ass -> h ass # (zero #) +let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat #+ = \ ass -> h ass # (zero #) --- the following program has to be rejected +-- the following program has to be rejected -- because of incomplete pattern matching fun g : (ass : (i : Size) -> Eq Size ($ i) i) -> (i : Size) -> SNat i -> SNat # { g ass ($ i) x = g ass i (subst Size SNat ($ i) i (ass i) x) } --- let yy : (ass : (i : Size) -> Eq Size ($ i) i) -> --- Eq (SNat #) (zero #) (g ass # (zero #)) +-- let yy : (ass : (i : Size) -> Eq Size ($ i) i) ->+-- Eq (SNat #) (zero #) (g ass # (zero #)) -- = \ ass -> refl (SNat #) (zero #)
test/fail/inconsistentAssumption2.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {- zero : (i : Size) -> SNat ($ i);- succ : (i : Size) -> SNat i -> SNat ($ i)+ zero : (i : Size) -> SNat ($ i);+ succ : (i : Size) -> SNat i -> SNat ($ i) } data Eq (A : Set) (a : A) : A -> Set@@ -24,9 +24,9 @@ } -let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat # - = \ ass -> h ass # (zero #) +let loop : (ass : (i : Size) -> Eq Size ($ i) i) -> SNat #+ = \ ass -> h ass # (zero #) -let yy : (ass : (i : Size) -> Eq Size ($ i) i) -> - Eq (SNat #) (zero #) (h ass # (zero #)) +let yy : (ass : (i : Size) -> Eq Size ($ i) i) ->+ Eq (SNat #) (zero #) (h ass # (zero #)) = \ ass -> refl
test/fail/inductiveNotDotPattern.ma view
@@ -8,7 +8,7 @@ cofun bla : (i : Size ) -> SNat ($ i) -> SNat i { bla .($ i) (zero ($ i)) = zero _; -- no complete pattern matching-bla .i (succ i x) = x +bla .i (succ i x) = x } fun loop : (i : Size ) -> (SNat i) -> Set
test/fail/lengthCoList.ma view
@@ -16,7 +16,7 @@ olist' ($ i) = cons i (zero #) (olist' i) } --- not allowed because no inductive argument with i +-- not allowed because no inductive argument with i fun length : [i : Size] -> [A : Set] -> Colist A i -> Nat i { length .($ i) A (nil i) = zero i ;@@ -40,7 +40,7 @@ cofun length2 : [i : Size] -> [A : Set] -> Colist A i -> CoNat i { length2 ($ i) A (nil .i) = cozero i;-length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) +length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) } cofun omega' : [i : Size] -> CoNat i@@ -50,18 +50,18 @@ let omega : CoNat # = omega' # --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : [i : Size] -> CoNat i -> Nat i -- { -- convert1 ($ i) (cozero .i) = zero i;--- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) -- } --- ok +-- ok fun convert2 : [i : Size] -> Nat i -> CoNat i { convert2 ($ i) (zero .i) = cozero i;-convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) +convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) } -- also ok@@ -81,6 +81,6 @@ cofun convert4 : [i : Size] -> Nat i -> CoNat i { convert4 ($ i) (zero .i) = cozero ($ i) ;-convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) +convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) }
test/fail/lengthCoList2.ma view
@@ -12,11 +12,11 @@ let z : CoNat # = cozero # --- ok +-- ok fun convert2 : [i : Size] -> Nat i -> CoNat i { convert2 ($ i) (zero .i) = cozero i;-convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) +convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) } -- NOT ok@@ -37,6 +37,6 @@ cofun convert4 : [i : Size] -> Nat i -> CoNat i { convert4 ($ i) (zero .i) = cozero ($ i) ;-convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) +convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) }
test/fail/loopAdmStream-Nat.ma view
@@ -5,7 +5,7 @@ ; succ : Nat -> Nat } -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail@@ -14,7 +14,7 @@ -> (Stream Nat j -> Stream Nat #) { guard j g xs = g (cons j zero xs) }- + -- the type of f is not admissible cofun f : [i : Size] -> (Stream Nat i -> Stream Nat #) -> Stream Nat i { f ($ j) g = guard j g (f j (guard j g))@@ -23,14 +23,14 @@ -- LOOP! eval let loop : Nat = head # (f # (tail #)) -{- +{- -- the type of f is not admissible cofun f : (Stream Nat # -> Stream Nat #) -> [i : Size] -> (Stream Nat i -> Stream Nat #) -> Stream Nat i-{ f h ($ j) g = h (g (cons j zero - (f (\ x -> h (h x)) - j - (\ x -> g (cons j zero x))))) +{ f h ($ j) g = h (g (cons j zero+ (f (\ x -> h (h x))+ j+ (\ x -> g (cons j zero x))))) } -}
test/fail/loopAdmStream-simplified.ma view
@@ -1,14 +1,14 @@ -- 2010-05-11 -sized codata StreamUnit : Size -> Set +sized codata StreamUnit : Size -> Set { cons : [i : Size] -> (tail : StreamUnit i) -> StreamUnit ($ i) } fields tail- + -- the type of f is not admissible cofun f : (StreamUnit # -> StreamUnit #) -> (i : Size) -> (StreamUnit i -> StreamUnit #) -> StreamUnit i-{ f h ($ j) g = h (g (cons j (f (\ x -> h (h x)) j (\ x -> g (cons j x))))) +{ f h ($ j) g = h (g (cons j (f (\ x -> h (h x)) j (\ x -> g (cons j x))))) } let bla : StreamUnit # = f (tail #) # (\ x -> x)
test/fail/loopAdmStream.ma view
@@ -1,19 +1,19 @@ -- 2010-05-11 data Unit : Set-{ unit : Unit +{ unit : Unit } -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail- + -- the type of f is not admissible cofun f : (Stream Unit # -> Stream Unit #) -> (i : Size) -> (Stream Unit i -> Stream Unit #) -> Stream Unit i-{ f h ($ j) g = - h (g (cons j unit (f (\ x -> h (h x)) j (\ x -> g (cons j unit x))))) +{ f h ($ j) g =+ h (g (cons j unit (f (\ x -> h (h x)) j (\ x -> g (cons j unit x))))) } let bla : Stream Unit # = f (tail #) # (\ x -> x)
test/fail/loopBadTypesHidden.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {- zero : (i : Size) -> SNat ($ i);- succ : (i : Size) -> SNat i -> SNat ($ i)+ zero : (i : Size) -> SNat ($ i);+ succ : (i : Size) -> SNat i -> SNat ($ i) } data Maybe (+ A : Set) : Set@@ -21,17 +21,17 @@ } -let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = +let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = \i -> \f -> \n -> shift_case i (f (succ # n)) let inc : Nat -> Maybe Nat = \n -> just (succ # n) data Unit : Set {- unit : Unit+ unit : Unit } -fun loopType : Unit -> Set +fun loopType : Unit -> Set { loopType unit = (i : Size) -> SNat i -> (Nat -> Maybe (SNat i)) -> Unit }@@ -43,20 +43,20 @@ -- hide bad types ....-mutual +mutual { -fun loop : (u : Unit) -> loopType u +fun loop : (u : Unit) -> loopType u {-loop unit .($ i) (zero i) f = loop_case unit ($ i) f (f (zero i)); +loop unit .($ i) (zero i) f = loop_case unit ($ i) f (f (zero i)); loop unit .($ i) (succ i n) f = loop unit i n (shift i f) } -fun loop_case : (u : Unit) -> loopCaseType u +fun loop_case : (u : Unit) -> loopCaseType u { loop_case unit i f (nothing) = unit; loop_case unit .($ i) f (just (zero i)) = unit;-loop_case unit .($ i) f (just (succ i y)) = loop unit i y (shift i f) +loop_case unit .($ i) f (just (succ i y)) = loop unit i y (shift i f) } }
test/fail/loopBounded.ma view
@@ -5,7 +5,7 @@ data Maybe ++(A : Set) { nothing ; just (a : A) } cofun Nat : +Size -> Set-{ Nat i = Maybe ([j < i] & Nat j) +{ Nat i = Maybe ([j < i] & Nat j) } pattern zero = nothing pattern suc i n = just (i, n)@@ -22,7 +22,7 @@ } -} -fun wfix : [A : Size -> Set] (f : [i : Size] -> ([j < i] -> A j) -> A i) +fun wfix : [A : Size -> Set] (f : [i : Size] -> ([j < i] -> A j) -> A i) [i : Size] -> |i| -> A i { wfix A f i = f i (wfix A f) }
test/fail/loopOldNoSizePattern.ma view
@@ -12,16 +12,16 @@ let Nat : Set = SNat # -fun shift_case : (i : Size) -> Maybe (SNat ($ i)) -> +fun shift_case : (i : Size) -> Maybe (SNat ($ i)) -> Maybe (SNat i) { shift_case i nothing = nothing; shift_case .i (just (zero i)) = nothing;- shift_case .i (just (succ i x)) = just x + shift_case .i (just (succ i x)) = just x } -let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> - Nat -> Maybe (SNat i) = +let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) ->+ Nat -> Maybe (SNat i) = \i -> \f -> \n -> shift_case i (f (succ # n)) let inc : Nat -> Maybe Nat = \n -> just (succ # n)@@ -31,21 +31,21 @@ unit : Unit } -mutual +mutual {- + fun loop : (i : Size) -> SNat i -> (Nat -> Maybe (SNat i)) -> Unit {- loop .($ i) (zero i) f = loop_case ($ i) f (f (zero i)); + loop .($ i) (zero i) f = loop_case ($ i) f (f (zero i)); loop .($ i) (succ i n) f = loop i n (shift i f) }- - fun loop_case : (i : Size) -> (Nat -> Maybe (SNat i)) -> ++ fun loop_case : (i : Size) -> (Nat -> Maybe (SNat i)) -> Maybe (SNat i) -> Unit { loop_case i f (nothing) = unit; loop_case .($ i) f (just (zero i)) = unit;- loop_case .($ i) f (just (succ i y)) = loop i y (shift i f) + loop_case .($ i) f (just (succ i y)) = loop i y (shift i f) } }
test/fail/loopTypesHiddenInData.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {- zero : [i : Size] -> SNat ($ i);- succ : [i : Size] -> SNat i -> SNat ($ i)+ zero : [i : Size] -> SNat ($ i);+ succ : [i : Size] -> SNat i -> SNat ($ i) } data Maybe ( + A : Set ) : Set@@ -21,17 +21,17 @@ } -let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = +let shift : (i : Size) -> (Nat -> Maybe (SNat ($ i))) -> Nat -> Maybe (SNat i) = \i -> \f -> \n -> shift_case i (f (succ # n)) let inc : Nat -> Maybe Nat = \n -> just (succ # n) data Unit : Set {- unit : Unit+ unit : Unit } -data loopType : Set +data loopType : Set { lt : [i : Size] -> SNat i -> (Nat -> Maybe (SNat i)) -> loopType }@@ -43,20 +43,20 @@ -- hide bad types ....-mutual +mutual { fun loop : loopType -> Unit {-loop (lt .($ i) (zero i) f) = loop_case (lct ($ i) f (f (zero i))); +loop (lt .($ i) (zero i) f) = loop_case (lct ($ i) f (f (zero i))); loop (lt .($ i) (succ i n) f) = loop (lt i n (shift i f)) } -fun loop_case : loopCaseType -> Unit +fun loop_case : loopCaseType -> Unit { loop_case (lct i f (nothing) = unit; loop_case (lct .($ i) f (just (zero i))) = unit;-loop_case (lct .($ i) f (just (succ i y))) = loop (lt i y (shift i f)) +loop_case (lct .($ i) f (just (succ i y))) = loop (lt i y (shift i f)) } }
test/fail/mapStream2.ma view
@@ -2,27 +2,27 @@ sized codata Stream (+ A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + data Nat : Set { zero : Nat;- succ : Nat -> Nat + succ : Nat -> Nat } -- THIS SHOULD NOT TYPECHECK!!-cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) = +map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) = cons _ (f u) (cons _ (f x) (map2 _ f xl)) } {- a better explanation why this does not work: - the quantification (i : Size) -> ... Stream Nat i is a CoSize quant.-- disallow dot patterns for CoSize +- disallow dot patterns for CoSize -cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) = +map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) = cons Nat _ (f u) (cons Nat _ (f x) (map2 _ f xl)) }
test/fail/mapStream2sizeMatchDepth2.ma view
@@ -2,17 +2,17 @@ sized codata Stream (+ A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + data Nat : Set { zero : Nat;- succ : Nat -> Nat + succ : Nat -> Nat } {- -- This is now illegal since cosize patterns must be dotted in coconstructors.-cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) = +map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) = cons Nat _ (f u) (cons Nat _ (f x) (map2 _ f xl)) } -}@@ -20,12 +20,12 @@ {- a better explanation why this does not work: - the quantification (i : Size) -> ... Stream Nat i is a CoSize quant.-- disallow dot patterns for CoSize +- disallow dot patterns for CoSize -} -cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) = +map2 ($ ($ i)) f (cons .Nat .($ i) u (cons .Nat .i x xl)) = cons Nat _ (f u) (cons Nat _ (f x) (map2 _ f xl)) }
test/fail/matchOnNatSuccI.ma view
@@ -8,7 +8,7 @@ -- size not used fun foo : (i : Size ) -> Nat i {---foo ($ i) = foo i -- subtyping +--foo ($ i) = foo i -- subtyping }
test/fail/negativeFam.ma view
@@ -4,7 +4,7 @@ suc : Nat -> Nat } -data D : Nat -> Set +data D : Nat -> Set { abs : (D zero -> D zero) -> D zero; app : (n : Nat) -> D n -> D n -> D n
test/fail/notAdmMonotoneArg.ma view
@@ -6,8 +6,8 @@ data Unit : Set { triv : Unit }- + cofun bla : (i : Size) -> (Stream Unit i -> Stream Unit i) -> Stream Unit i {- bla ($ i) f = f (cons Unit i triv (bla i f)) + bla ($ i) f = f (cons Unit i triv (bla i f)) }
test/fail/omegaInst.ma view
@@ -13,5 +13,5 @@ let bot [F : Size -> Set] (f : [j < #] -> F j) : F # = f # -- DOUBTS: is this so bad after all?--- each descending chain f has a limit. --- If # is that closure ordinal, this should be ok. +-- each descending chain f has a limit.+-- If # is that closure ordinal, this should be ok.
test/fail/onesStreamUnguarded.ma view
@@ -2,10 +2,10 @@ sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) }- + data Nat : Set { zero : Nat;- succ : Nat -> Nat + succ : Nat -> Nat } -- the following needs to be rejected
test/fail/partialFunction.ma view
@@ -1,6 +1,6 @@ data Subset (A : Set) (P : A -> Set) : Set {- put : (a : A) -> [P a] -> Subset A P + put : (a : A) -> [P a] -> Subset A P } data PFun (A : Set)(B : Set) : Set
test/fail/relevantArgErasedMagicVec.ma view
@@ -16,7 +16,7 @@ -- magic = abort does not need the inhabitant p : Empty fun magic : [A : Set] -> [p : Empty] -> A-{ +{ } data Unit : Set
test/fail/scolist_not_lsc1.ma view
@@ -13,7 +13,7 @@ cons : (i : Size ) -> A -> Colist A i -> Colist A ($ i) } --- not allowed because no inductive argument with i +-- not allowed because no inductive argument with i fun length : (i : Size ) -> (A : Set) -> Colist A i -> Nat i { length .($ i) A (nil i) = zero i ;@@ -32,7 +32,7 @@ cofun length2 : (i : Size ) -> ( A : Set ) -> Colist A i -> CoNat i { length2 .($ i) A (nil i) = cozero i;-length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) +length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) } cofun omega' : ( i : Size ) -> CoNat i@@ -49,18 +49,18 @@ eval let diverge : Nat # = length # (Nat #) (olist' #) --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : (i : Size ) -> CoNat i -> Nat i -- { -- convert1 .($ i) (cozero i) = zero i;--- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) -- } --- ok +-- ok fun convert2 : ( i : Size ) -> Nat i -> CoNat i { convert2 .($ i) (zero i) = cozero i;-convert2 .($ i) (succ i x) = cosucc i (convert2 i x) +convert2 .($ i) (succ i x) = cosucc i (convert2 i x) } -- also ok@@ -74,6 +74,6 @@ cofun convert4 : ( i : Size ) -> Nat i -> CoNat i { convert4 .($ i) (zero i) = cozero ($ i) ;-convert4 .($ i) (succ i x) = cosucc i (convert4 i x) +convert4 .($ i) (succ i x) = cosucc i (convert4 i x) }
test/fail/scolist_not_lsc2.ma view
@@ -11,7 +11,7 @@ cons : (i : Size ) -> A -> Colist A i -> Colist A ($ i) } --- -- not allowed because no inductive argument with i +-- -- not allowed because no inductive argument with i -- fun length : (i : Size ) -> (A : Set) -> Colist A i -> Nat i -- { -- length .($ i) .A (nil A i) = zero i ;@@ -31,7 +31,7 @@ cofun length2 : (i : Size ) -> ( A : Set ) -> Colist A i -> CoNat i { length2 .($ i) A (nil i) = cozero i;-length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) +length2 .($ i) A (cons i a as) = cosucc i (length2 i A as) } cofun omega' : ( i : Size ) -> CoNat i@@ -49,18 +49,18 @@ -- Diverges: -- eval let diverge : Nat # = length # (Nat #) (olist' #) --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : (i : Size ) -> CoNat i -> Nat i -- { -- convert1 .($ i) (cozero i) = zero i;--- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 .($ i) (cosucc i x) = succ i (convert1 i x) -- } --- ok +-- ok fun convert2 : ( i : Size ) -> Nat i -> CoNat i { convert2 .($ i) (zero i) = cozero i;-convert2 .($ i) (succ i x) = cosucc i (convert2 i x) +convert2 .($ i) (succ i x) = cosucc i (convert2 i x) } -- also ok@@ -74,6 +74,6 @@ cofun convert4 : ( i : Size ) -> Nat i -> CoNat i { convert4 .($ i) (zero i) = cozero ($ i) ;-convert4 .($ i) (succ i x) = cosucc i (convert4 i x) +convert4 .($ i) (succ i x) = cosucc i (convert4 i x) }
test/fail/shouldBeDotPattern_snat.ma view
@@ -1,7 +1,7 @@ sized data SNat : Size -> Set {- zero : (i : Size) -> SNat ($ i);- succ : (i : Size) -> SNat i -> SNat ($ i)+ zero : (i : Size) -> SNat ($ i);+ succ : (i : Size) -> SNat i -> SNat ($ i) } let z : SNat # = zero #@@ -15,8 +15,8 @@ fun add : (i : Size) -> (j : Size) -> SNat i -> SNat j -> SNat # { -add ($ i) j (zero .i) y = y; -add ($ i) j (succ .i x) y = succ # (add i j x y) +add ($ i) j (zero .i) y = y;+add ($ i) j (succ .i x) y = succ # (add i j x y) } @@ -34,7 +34,7 @@ let min4_2 : SNat # = minus # # four two --- not structurally recursive without sizes ... +-- not structurally recursive without sizes ... fun div : (i : Size) -> (j : Size) -> SNat i -> SNat j -> SNat i { @@ -59,7 +59,7 @@ { gcd ($ i) j (zero .i) y = y ; gcd i ($ j) x (zero .j) = x ;-gcd ($ i) ($ j) (succ .i x) (succ .j y) = +gcd ($ i) ($ j) (succ .i x) (succ .j y) = compare i j x y (SNat #) (gcd i ($ j) (minus i j x y) (succ j y)) (gcd ($ i) j (succ i x) (minus j i y x))
test/fail/singleton.ma view
@@ -1,6 +1,5 @@--- 2009-11-29 +-- 2009-11-29 let K : (A : Set) -> (x : A) -> (y : A) -> <x : A> = \ A -> \ x -> \ y -> y -
test/fail/stream.ma view
@@ -12,12 +12,12 @@ } - + cofun lookbad : (i : Size ) -> Stream i {-lookbad ($ i) = - first (Stream _) (Stream _) - (cons _ zero (lookbad _))+lookbad ($ i) =+ first (Stream _) (Stream _)+ (cons _ zero (lookbad _)) (lookbad _) }
test/fail/streamMisc.ma view
@@ -1,7 +1,7 @@-data Nat : Set +data Nat : Set {- zero : Nat ;- succ : Nat -> Nat+ zero : Nat ;+ succ : Nat -> Nat } fun add : Nat -> Nat -> Nat@@ -12,7 +12,7 @@ eval let one : Nat = succ zero -sized codata Stream (A : Set) : Size -> Set +sized codata Stream (A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }@@ -21,7 +21,7 @@ { zeroes ($ i) = cons Nat i zero (zeroes i) }- + cofun ones : (i : Size) -> Stream Nat i { ones ($ i) = cons Nat i one (ones i)@@ -33,7 +33,7 @@ (A -> B) -> Stream A # -> Stream B i { map A B ($ i) f (cons .A .# a as) = cons B i (f a) (map A B i f as)-} +} eval let twos : Stream Nat # = map Nat Nat # ( \ x -> succ x) ones' @@ -53,16 +53,16 @@ head A (cons .A .# a as) = a } -eval let two : Nat = head Nat twos +eval let two : Nat = head Nat twos eval let two' : Nat = head Nat twos' eval let twos2 : Stream Nat # = map Nat Nat # ( \ x -> succ x) ones' eval let twos2' : Stream Nat # = tail Nat twos2 cofun zipWith : ( A : Set ) -> ( B : Set ) -> (C : Set) -> ( i : Size ) ->- (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i+ (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i {-zipWith A B C ($ i) f (cons .A .# a as) (cons .B .# b bs) = +zipWith A B C ($ i) f (cons .A .# a as) (cons .B .# b bs) = cons C i (f a b) (zipWith A B C i f as bs) } @@ -71,7 +71,7 @@ fun nth : Nat -> Stream Nat # -> Nat { nth zero ns = head Nat ns;-nth (succ x) ns = nth x (tail Nat ns) +nth (succ x) ns = nth x (tail Nat ns) } eval let fours : Stream Nat # = zipWith Nat Nat Nat # add twos twos@@ -82,9 +82,9 @@ cofun fib : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream Nat i { fib x y ($ i) = (cons Nat ($ i) x (cons Nat i y (fib y (add x y) i)))-} +} -eval let fib' : Stream Nat # = tail Nat (fib zero zero #) +eval let fib' : Stream Nat # = tail Nat (fib zero zero #) eval let fib8 : Nat = nth (add four four) (fib zero zero #)@@ -105,12 +105,12 @@ -- should be ok but does not pass admissibility check cofun wkStream_ok : ( A : Set ) -> (i : Size ) -> Stream A ($ i) -> Stream A i {-wkStream_ok A ($ i) (cons .A .($ i) x xs) = cons A i x (wkStream A i xs) +wkStream_ok A ($ i) (cons .A .($ i) x xs) = cons A i x (wkStream A i xs) } - ---bad ++--bad --not admissble cofun wkStream2 : ( A : Set ) -> ( i : Size ) -> Stream A i -> Stream A ($ i) {@@ -119,7 +119,7 @@ -- an unproductive stream-cofun unp : (i : Size ) -> Stream Nat i +cofun unp : (i : Size ) -> Stream Nat i { unp i = unp i }@@ -130,7 +130,7 @@ { unp2 ($ i) = cons Nat i zero (tail Nat (unp2 ($ i))) }--} +-} --eval let bla2 : Nat = nth four (unp #)@@ -164,15 +164,15 @@ twozeroes (cons .Nat .# (succ x) str) = ff } -eval let twozeroes'zeroes : Bool = twozeroes (zeroes #) +eval let twozeroes'zeroes : Bool = twozeroes (zeroes #) data Eq ( A : Set ) : A -> A -> Set {-refl : (a : A) -> Eq A a a +refl : (a : A) -> Eq A a a } -- hangs on unproductive stream--- let zz : Eq (Stream Nat #) (unp #) (cons Nat # zero (unp #)) = refl (Stream Nat #) (unp #) +-- let zz : Eq (Stream Nat #) (unp #) (cons Nat # zero (unp #)) = refl (Stream Nat #) (unp #) sized data Unit : Size -> Set {@@ -182,7 +182,6 @@ -- bad. 2010-03-10 WHY? I think it is ok! fun head2 : (i : Size ) -> Unit i -> Stream Nat i -> Nat {-head2 .($ i) (unit i) (cons .Nat .i x xl) = x +head2 .($ i) (unit i) (cons .Nat .i x xl) = x }-
test/fail/stream_x_is_cons_x_tail_x.ma view
@@ -1,7 +1,7 @@ data Nat : Set { zero : Nat;- succ : Nat -> Nat + succ : Nat -> Nat } let n0 : Nat = zero@@ -14,7 +14,7 @@ sized codata Stream (+ A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs
test/fail/subtyping_erased.ma view
@@ -3,4 +3,4 @@ let id : [A : Set] -> ([A] -> A) -> (A -> A) = \ A -> \ x -> x- +
test/fail/subtyping_erased_wrongdir.ma view
@@ -3,4 +3,4 @@ let id : [A : Set] -> (A -> A) -> ([A] -> A) = \ A -> \ x -> x- +
test/fail/vec_eta.ma view
@@ -13,7 +13,7 @@ data Vec (+A : Set) : Nat -> Set { vnil : Vec A zero;- vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n) + vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n) } data Id (A : Set)(a : A) : A -> Set@@ -24,4 +24,3 @@ Id (Vec A n) v v' = \ A -> \ n -> \ v -> \ v' -> refl -- (Vec A n) v -
test/fail/vec_length.ma view
@@ -13,7 +13,7 @@ data Vec (+A : Set) : Nat -> Set { vnil : Vec A zero;- vcons : A -> [n : Nat] -> Vec A n -> Vec A (succ n) + vcons : A -> [n : Nat] -> Vec A n -> Vec A (succ n) } fun length : [A : Set] -> [n : Nat] -> Vec A n -> Nat
+ test/should-fail.goldplate view
@@ -0,0 +1,9 @@+{ "command" : "miniagda"+, "working_directory" : "should-fail"+, "input_files" : "*.ma"+, "arguments" : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts" :+ [ { "exit_code" : 0 }+ , { "stdout" : "${GOLDPLATE_INPUT_NAME}.golden" }+ ]+}
+ test/should-fail/AgdaIssue1015.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1015.ma" ---+--- scope checking ---+--- type checking ---+type D : -(i : Size) -> Set+term D.inn : .[i : Size] -> ^(out : R i) -> < D.inn out : D i >+term out : .[i : Size] -> (inn : D i) -> R i+{ out [i] (D.inn #out) = #out+}+type R : -(i : Size) -> Set+term R.delay : .[i : Size] -> ^(force : .[j < i] -> D j) -> < R.delay force : R i >+term force : .[i : Size] -> (delay : R i) -> .[j < i] -> D j+{ force [i] (R.delay #force) = #force+}+term inh : .[i : Size] -> R i+{ inh [i] .force [j < i] = D.inn (inh [j])+}+type Empty : Set+term elim : D # -> Empty+{ elim (D.inn r) = elim (r .force [#])+}+term absurd : Empty+term absurd = elim (D.inn (inh [#]))+--- evaluating ---+--- closing "AgdaIssue1015.ma" ---
+ test/should-fail/AgdaIssue1015.ma view
@@ -0,0 +1,26 @@+-- 2014-01-09++mutual {+ data D -(i : Size)+ { inn (out : R i) }++ data R -(i : Size)+ { delay (force : [j < i] -> D j)+ } fields force+}++fun inh : [i : Size] -> R i+{ inh i .force j = inn (inh j)+}++data Empty : Set {}++fun elim : D # -> Empty+{ elim (inn r) = elim (r .force #)+}++-- OLD comment:+-- Stack overflow because MiniAgda thinks D and R are not recursive+-- and does eta-expansion into all eternity++let absurd : Empty = elim (inn (inh #))
+ test/should-fail/AgdaIssue1015NonMutual.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1015NonMutual.ma" ---+--- scope checking ---+--- type checking ---+type R : -(i : Size) -> Set+term R.delay : .[i : Size] -> ^(force : .[j < i] -> R j) -> < R.delay force : R i >+term force : .[i : Size] -> (delay : R i) -> .[j < i] -> R j+{ force [i] (R.delay #force) = #force+}+term inh : .[i : Size] -> R i+{ inh [i] .force [j < i] = inh [j]+}+type Empty : Set+term elim : R # -> Empty+{ elim (R.delay r) = elim (r [#])+}+term absurd : Empty+term absurd = elim (inh [#])+--- evaluating ---+--- closing "AgdaIssue1015NonMutual.ma" ---
+ test/should-fail/AgdaIssue1015NonMutual.ma view
@@ -0,0 +1,25 @@+-- 2014-01-09+-- Treating a type as both inductive and coinductive bears trouble...++data R -(i : Size)+{ delay (force : [j < i] -> R j)+} fields force++-- Coinductive interpretation:++fun inh : [i : Size] -> R i+{ inh i .force j = inh j+}++data Empty : Set {}++-- Inductive interpretation:++fun elim : R # -> Empty+{ elim (delay r) = elim (r #)+}++-- Trouble:++let absurd : Empty = elim (inh #)+
+ test/should-fail/StrictInfty.golden view
@@ -0,0 +1,23 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "StrictInfty.ma" ---+--- scope checking ---+--- type checking ---+type D : Size -> Set+{ D i = .[j < i] -> |i| <= |$j| -> D j -> D j+}+term app_ : .[i : Size] -> D $i -> D i -> D i+{ app_ [i] f = f [i]+}+term app : D # -> D # -> D #+term app = app_ [#]+term abs_ : .[i : Size] -> (D i -> D i) -> D $i+{ abs_ [i] f [j < $i] x = f x+}+term abs : (D # -> D #) -> D #+term abs = abs_ [#]+term delta : D #+term delta = abs (\ x -> app x x)+term Omega : D #+term Omega = app delta delta+--- evaluating ---+--- closing "StrictInfty.ma" ---
+ test/should-fail/StrictInfty.ma view
@@ -0,0 +1,67 @@+-- 2013-04-02 Careful with $# = # !++cofun D : Size -> Set+{ D i = [j < i] -> |i| <= |$j| -> D j -> D j+}+-- This constrains j = $i.+--+-- Note that D # = [j < #] -> # <= $j -> D j -> D j+-- should never be usable, since there is no such j.+-- The quantifier [j < #] must not be instantiated with #,+-- since the body F j is not continuous in j, due to the+-- constraint # <= $j.+--+-- However, if MiniAgda does not honour that i < $i is only valid+-- for i < #, then we can create a looping program.++fun app_ : [i : Size] -> D $i -> D i -> D i+{ app_ i f = f i+}+-- Here, f of type+--+-- [j < $i] -> |$i| <= |$j| -> D j -> D j+--+-- is instantiated with i < $i,+-- which is invalid with for i = # under # = $#, to+--+-- |$i| <= |$i| -> D i -> D i+--+-- which is just D i -> D i.+--+-- Thus app_ should only have type [i < #] -> D $i -> D i -> D i.+-- In this case, we could not make the following instantiation i = #.++let app : D # -> D # -> D # = app_ #++fun abs_ : [i : Size] -> (D i -> D i) -> D $i+{ abs_ i f j x = f x+}+-- Here, we have+--+-- j < $i+-- $i <= $j+-- f : D i -> D i+-- x : D j+--+-- Subtyping x : D j <= D i needs i = j+-- Subtyping f x : D i <= D j needs i = j+--+-- i = j is derived from+-- $i <= $j which entails i <= j (valid)+-- j < $i which entails j <= i (valid)+--+-- When introducing j < $i then $i <= $j is eagerly introduced into+-- the context. Here, MiniAgda should complain since the latter+-- constraint is unsatisfiable if i = #.+--+-- Thus, abs_ should also be restricted to type [i < #],+-- making the following instantiation impossible.++let abs : (D # -> D #) -> D # = abs_ #++-- Now we can construct the usual counterexample to normalization of+-- untyped lambda-calculus.++let delta : D # = abs (\ x -> app x x)+let Omega : D # = app delta delta+-- evaluation of Omega loops
+ test/should-succeed.goldplate view
@@ -0,0 +1,9 @@+{ "command" : "miniagda"+, "working_directory" : "should-succeed"+, "input_files" : "*.ma"+, "arguments" : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts" :+ [ { "exit_code" : 1 }+ , { "stdout" : "${GOLDPLATE_INPUT_NAME}.err" }+ ]+}
+ test/should-succeed/Umlaut.err view
@@ -0,0 +1,3 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Umlaut.ma" ---+--- scope checking ---
+ test/should-succeed/Umlaut.ma view
@@ -0,0 +1,1 @@+data Ä {}
+ test/succeed.goldplate view
@@ -0,0 +1,9 @@+{ "command" : "miniagda"+, "working_directory" : "succeed"+, "input_files" : "*.ma"+, "arguments" : [ "${GOLDPLATE_INPUT_FILE}" ]+, "asserts" :+ [ { "exit_code" : 0 }+ , { "stdout" : "${GOLDPLATE_INPUT_NAME}.golden" }+ ]+}
+ test/succeed/AbsurdMatchNonLin.golden view
@@ -0,0 +1,27 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AbsurdMatchNonLin.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type BB : ^ Bool -> Set+term BB.tt : < BB.tt : BB Bool.true >+term BB.ff : < BB.ff : BB Bool.false >+type Empty : Set+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type True : Bool -> Set+{ True Bool.true = Unit+; True Bool.false = Empty+}+term not : Bool -> Bool+{ not Bool.true = Bool.false+; not Bool.false = Bool.true+}+term bla : (b : Bool) -> True b -> True (not b) -> BB b -> Empty+{ bla .Bool.false () x BB.ff+; bla .Bool.true x () BB.tt+}+--- evaluating ---+--- closing "AbsurdMatchNonLin.ma" ---
+ test/succeed/AccDestructorErasedIndex.golden view
@@ -0,0 +1,69 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AccDestructorErasedIndex.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type R : ^ Nat -> ^ Nat -> Set+term R.r1 : .[x : Nat] -> < R.r1 x : R (Nat.succ (Nat.succ x)) (Nat.succ Nat.zero) >+term R.r2 : < R.r2 : R (Nat.succ Nat.zero) Nat.zero >+type Acc : ^(A : Set) -> ^(Lt : A -> A -> Set) -> (b : A) -> Set+term Acc.acc : .[A : Set] -> .[Lt : A -> A -> Set] -> .[b : A] -> ^(accParOut : (a : A) -> Lt a b -> Acc A Lt a) -> < Acc.acc accParOut : Acc A Lt b >+term accParOut : .[A : Set] -> .[Lt : A -> A -> Set] -> (b : A) -> (acc : Acc A Lt b) -> (a : A) -> Lt a b -> Acc A Lt a+{ accParOut [A] [Lt] b (Acc.acc #accParOut) = #accParOut+}+term acc_dest : (n : Nat) -> (p : Acc Nat R n) -> (m : Nat) -> R m n -> Acc Nat R m+{ acc_dest n (Acc.acc p) = p+}+term acc2 : (n : Nat) -> Acc Nat R (Nat.succ (Nat.succ n))+term acc2 = \ n -> Acc.acc (\ a -> \ p -> case p : R a (Nat.succ (Nat.succ n))+ {})+term aux1 : (a : Nat) -> (p : R a (Nat.succ Nat.zero)) -> Acc Nat R a+{ aux1 (Nat.succ (Nat.succ x)) (R.r1 [.x]) = acc2 x+}+term acc1 : Acc Nat R (Nat.succ Nat.zero)+term acc1 = Acc.acc aux1+term aux0 : (a : Nat) -> (p : R a Nat.zero) -> Acc Nat R a+{ aux0 .(succ zero) R.r2 = acc1+}+term acc0 : Acc Nat R Nat.zero+term acc0 = Acc.acc aux0+term accR : (n : Nat) -> Acc Nat R n+{ accR Nat.zero = acc0+; accR (Nat.succ Nat.zero) = acc1+; accR (Nat.succ (Nat.succ n)) = acc2 n+}+term f : (x : Nat) -> Acc Nat R x -> Nat+{ f x (Acc.acc p) = case x : Nat+ { Nat.zero -> f (Nat.succ x) (p (Nat.succ x) R.r2)+ ; Nat.succ Nat.zero -> f (Nat.succ x) (p (Nat.succ x) (R.r1 [Nat.zero]))+ ; Nat.succ (Nat.succ y) -> Nat.zero+ }+}+term h : (x : Nat) -> .[Acc Nat R x] -> Nat+{ h Nat.zero [Acc.acc [p]] = h (Nat.succ Nat.zero) [p (Nat.succ Nat.zero) R.r2]+; h (Nat.succ Nat.zero) [Acc.acc [p]] = h (Nat.succ (Nat.succ Nat.zero)) [p (Nat.succ (Nat.succ Nat.zero)) (R.r1 [Nat.zero])]+; h (Nat.succ (Nat.succ y)) [p] = Nat.zero+}+term bla : Nat+term bla = h Nat.zero [acc0]+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+block fails as expected, error message:+p1+/// checkExpr 0 |- \ p -> refl : (p : Acc Nat R Nat.zero) -> Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// checkForced fromList [] |- \ p -> refl : (p : Acc Nat R Nat.zero) -> Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// new p : (Acc Nat R Nat.zero)+/// checkExpr 1 |- refl : Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// checkForced fromList [(p,0)] |- refl : Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// leqVal' (subtyping) < Id.refl : Id Nat (h Nat.zero [p]) (h Nat.zero [p]) > <=+ Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// leqVal' (subtyping) Id Nat (h Nat.zero [p]) (h Nat.zero [p]) <=+ Id Nat (h Nat.zero [p]) (h Nat.zero [acc0])+/// leqVal' h Nat.zero p <=^ Nat.zero : Nat+/// leqApp: head mismatch h != Nat.zero+--- evaluating ---+acc0 has whnf (acc (aux0 Up ((a : Nat::Tm) -> (p : R a Nat.zero) -> Acc Nat R a)))+acc0 evaluates to acc (\ a~0 -> \ p~1 -> aux0 ~0 ~1)+bla has whnf (h zero acc0)+bla evaluates to h zero (Acc.acc (\ a~0 -> \ p~1 -> aux0 ~0 ~1))+--- closing "AccDestructorErasedIndex.ma" ---
test/succeed/AccDestructorErasedIndex.ma view
@@ -2,35 +2,35 @@ -- 2010-07-08 bug fixed -- 2012-01-22 parameters gone from constructors -data Nat : Set -{ zero : Nat +data Nat : Set+{ zero : Nat ; succ : Nat -> Nat } {- R (S x) x if x < 2- -} + -} data R : Nat -> Nat -> Set { r1 : (x : Nat) -> R (succ (succ x)) (succ zero)-; r2 : R (succ zero) zero -} +; r2 : R (succ zero) zero+} -- ERROR: data AccPar [A : Set](Lt : A -> A -> Set)(b : A) : Set data Acc (A : Set) (Lt : A -> A -> Set) *(b : A) : Set { acc : (accParOut : (a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +} {- 2011-04-23 does not work due to new polarities data AccOk (A : Set)(Lt : A -> A -> Set) : A -> Set { accOk : [b : A] -> (accOkOut : (a : A) -> Lt a b -> AccOk A Lt a) -> AccOk A Lt b-} +} -- WAS: BUG -- destructor generation does not work if indices are not erased data Acc (A : Set) (Lt : A -> A -> Set) : A -> Set { acc : (b : A) -> (accOut : (a : A) -> Lt a b -> Acc A Lt a) -> Acc A Lt b-} +} -} -fun acc_dest : (n : Nat) -> (p : Acc Nat R n) -> +fun acc_dest : (n : Nat) -> (p : Acc Nat R n) -> (m : Nat) -> R m n -> Acc Nat R m { acc_dest n (acc p) = p }@@ -38,11 +38,11 @@ {- fun succR : (n : Nat) -> R (succ n) n { succR zero = r2-; succR (succ n) = +; succR (succ n) = -} let acc2 : (n : Nat) -> Acc Nat R (succ (succ n))- = \ n -> acc -- Nat R (succ (succ n)) + = \ n -> acc -- Nat R (succ (succ n)) (\ a -> \ p -> case p {}) fun aux1 : (a : Nat) -> (p : R a (succ zero)) -> Acc Nat R a@@ -50,7 +50,7 @@ } let acc1 : Acc Nat R (succ zero)- = acc -- Nat R (succ zero) + = acc -- Nat R (succ zero) aux1 fun aux0 : (a : Nat) -> (p : R a zero) -> Acc Nat R a@@ -58,16 +58,16 @@ } eval let acc0 : Acc Nat R zero- = acc -- Nat R zero + = acc -- Nat R zero aux0- + fun accR : (n : Nat) -> Acc Nat R n { accR zero = acc0 ; accR (succ zero) = acc1-; accR (succ (succ n)) = acc2 n +; accR (succ (succ n)) = acc2 n } -fun f : (x : Nat) -> Acc Nat R x -> Nat +fun f : (x : Nat) -> Acc Nat R x -> Nat { f x (acc {-.Nat .R .x-} p) = case x { zero -> f (succ x) (p (succ x) r2) ; (succ zero) -> f (succ x) (p (succ x) (r1 zero))@@ -77,7 +77,7 @@ {- -- In Coq, g and h are accepted by the termination checker-fun g : (x : Nat) -> [Acc Nat R x] -> Nat +fun g : (x : Nat) -> [Acc Nat R x] -> Nat { g x p = case x { zero -> g (succ x) (acc_dest zero p (succ x) r2) ; (succ zero) -> g (succ x) (acc_dest (succ zero) p (succ x) (r1 zero))@@ -85,7 +85,7 @@ } } -fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero p = h (succ zero) (acc_dest zero p (succ zero) r2) ; h (succ zero) p = h (succ (succ zero)) (acc_dest (succ zero) p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero@@ -93,7 +93,7 @@ -} -- h needs to be rejected, Acc cannot be erased at compile-time!-fun h : (x : Nat) -> [Acc Nat R x] -> Nat +fun h : (x : Nat) -> [Acc Nat R x] -> Nat { h zero (acc {-.Nat .R .zero-} p) = h (succ zero) (p (succ zero) r2) ; h (succ zero) (acc {-.Nat .R .(succ zero)-} p) = h (succ (succ zero)) (p (succ (succ zero)) (r1 zero)) ; h (succ (succ y)) p = zero
+ test/succeed/AgdaIssue1052.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1052.ma" ---+--- scope checking ---+--- type checking ---+type Eq : .[A : Set] -> ^(a : A) -> ^(b : A) -> Set+term Eq.refl : .[A : Set] -> .[a : A] -> .[a : A] -> < Eq.refl : Eq [A] a a >+type X : Set+{}+none f : X -> X+{}+type StepsTo : ^(x : X) -> ^(z : X) -> Set+term StepsTo.done : .[x : X] -> .[x : X] -> < StepsTo.done : StepsTo x x >+term StepsTo.next : .[x : X] -> .[z : X] -> ^(y : X) -> ^(y1 : Eq [X] (f y) z) -> ^(y2 : StepsTo x y) -> < StepsTo.next y y1 y2 : StepsTo x z >+term trans : (x : X) -> (y : X) -> (z : X) -> StepsTo x y -> StepsTo y z -> StepsTo x z+{ trans x y .y p StepsTo.done = p+; trans x y z p (StepsTo.next z' r q) = StepsTo.next z' r (trans x y z' p q)+}+term const : (x : X) -> (y : X) -> StepsTo x y -> Eq [X] (f x) x -> Eq [X] x y+{ const x .x StepsTo.done q = Eq.refl+}+--- evaluating ---+--- closing "AgdaIssue1052.ma" ---
test/succeed/AgdaIssue1052.ma view
+ test/succeed/AgdaIssue1055.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AgdaIssue1055.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term p : (m : Nat) -> (n : Nat) -> (r : Nat) -> Nat+{ p m n (Nat.suc r) = p m r n+; p m (Nat.suc n) Nat.zero = p Nat.zero n m+; p m Nat.zero Nat.zero = m+}+--- evaluating ---+--- closing "AgdaIssue1055.ma" ---
test/succeed/AgdaIssue1055.ma view
+ test/succeed/AppendAddSize.golden view
@@ -0,0 +1,15 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "AppendAddSize.ma" ---+--- scope checking ---+--- type checking ---+type List : ^(A : Set) -> + Size -> Set+term List.nil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> List A s!ze+term List.nil : .[A : Set] -> .[i : Size] -> < List.nil i : List A $i >+term List.cons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ List A i -> List A s!ze+term List.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : List A i) -> < List.cons i y1 y2 : List A $i >+term append : .[A : Set] -> .[i : Size] -> .[j : Size] -> List A i -> List A $j -> List A (i + j)+{ append [A] [i] [j] (List.nil [i' < i]) l = l+; append [A] [i] [j] (List.cons [i' < i] a as) l = List.cons [i' + j] a (append [A] [i'] [j] as l)+}+--- evaluating ---+--- closing "AppendAddSize.ma" ---
+ test/succeed/BelowLeInfty.golden view
@@ -0,0 +1,52 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BelowLeInfty.ma" ---+--- scope checking ---+--- type checking ---+type Nat : +(i <= #) -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i <= #] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^(n : Nat i) -> Nat s!ze+term Nat.succ : .[i <= #] -> ^(n : Nat i) -> < Nat.succ i n : Nat $i >+term sib00 : (.[i : Size] -> Nat i) -> .[i : Size] -> Nat i+term sib00 = \ x -> x+term sib01 : (.[i : Size] -> Nat i) -> .[i < #] -> Nat i+term sib01 = \ x -> x+term sib11 : (.[i < #] -> Nat i) -> .[i < #] -> Nat i+term sib11 = \ x -> x+block fails as expected, error message:+sib10+/// checkExpr 0 |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// checkForced fromList [] |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// new x : (.[i < #] -> Nat i)+/// checkExpr 1 |- x : .[i : Size] -> Nat i+/// leqVal' (subtyping) .[i < #] -> < x i : Nat i > <=+ .[i : Size] -> Nat i+/// leqVal' (subtyping) < # <=- Size+/// leSize # <- #+/// leSize: # < # failed+term sub00 : (.[i <= #] -> Nat i) -> .[i <= #] -> Nat i+term sub00 = \ x -> x+term sub01 : (.[i <= #] -> Nat i) -> .[i < #] -> Nat i+term sub01 = \ x -> x+term sub11 : (.[i < #] -> Nat i) -> .[i < #] -> Nat i+term sub11 = \ x -> x+block fails as expected, error message:+sub10+/// checkExpr 0 |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// checkForced fromList [] |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i+/// new x : (.[i < #] -> Nat i)+/// checkExpr 1 |- x : .[i : Size] -> Nat i+/// leqVal' (subtyping) .[i < #] -> < x i : Nat i > <=+ .[i : Size] -> Nat i+/// leqVal' (subtyping) < # <=- Size+/// leSize # <- #+/// leSize: # < # failed+term sub1 : (.[i : Size] -> Nat i) -> .[i <= #] -> Nat i+term sub1 = \ x -> x+term sub2 : (.[i <= #] -> Nat i) -> .[i : Size] -> Nat i+term sub2 = \ x -> x+type MNat : +(i <= #) -> Set+term MNat.mzero : .[s!ze : Size] -> .[i < s!ze] -> MNat s!ze+term MNat.mzero : .[i : Size] -> < MNat.mzero i : MNat $i >+term MNat.msucc : .[s!ze : Size] -> .[i < s!ze] -> ^(n : MNat i) -> MNat s!ze+term MNat.msucc : .[i <= #] -> ^(n : MNat i) -> < MNat.msucc i n : MNat $i >+--- evaluating ---+--- closing "BelowLeInfty.ma" ---
test/succeed/BelowLeInfty.ma view
@@ -3,17 +3,17 @@ ; succ [i <= #] (n : Nat i) : Nat $i } -let sib00 : ([i : Size] -> Nat i) -> ([i : Size] -> Nat i) = \ x -> x -let sib01 : ([i : Size] -> Nat i) -> ([i < #] -> Nat i) = \ x -> x +let sib00 : ([i : Size] -> Nat i) -> ([i : Size] -> Nat i) = \ x -> x+let sib01 : ([i : Size] -> Nat i) -> ([i < #] -> Nat i) = \ x -> x let sib11 : ([i < #] -> Nat i) -> ([i < #] -> Nat i) = \ x -> x -fail let sib10 : ([i < #] -> Nat i) -> ([i : Size] -> Nat i) = \ x -> x +fail let sib10 : ([i < #] -> Nat i) -> ([i : Size] -> Nat i) = \ x -> x -let sub00 : ([i <= #] -> Nat i) -> ([i <= #] -> Nat i) = \ x -> x -let sub01 : ([i <= #] -> Nat i) -> ([i < #] -> Nat i) = \ x -> x +let sub00 : ([i <= #] -> Nat i) -> ([i <= #] -> Nat i) = \ x -> x+let sub01 : ([i <= #] -> Nat i) -> ([i < #] -> Nat i) = \ x -> x let sub11 : ([i < #] -> Nat i) -> ([i < #] -> Nat i) = \ x -> x -fail let sub10 : ([i < #] -> Nat i) -> ([i <= #] -> Nat i) = \ x -> x +fail let sub10 : ([i < #] -> Nat i) -> ([i <= #] -> Nat i) = \ x -> x let sub1 : ([i : Size] -> Nat i) -> ([i <= #] -> Nat i) = \ x -> x
+ test/succeed/BigWrap.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BigWrap.ma" ---+--- scope checking ---+--- type checking ---+ty-u BigWrap : Set 1+term BigWrap.inn : ^(out : Set) -> < BigWrap.inn out : BigWrap >+type out : (inn : BigWrap) -> Set+{ out (BigWrap.inn #out) = #out+}+type NotBig : ^ Set -> Set+term NotBig.notBig : .[A : Set] -> < NotBig.notBig A : NotBig A >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+ty-u NAT : Set 1+term NAT.ZERO : < NAT.ZERO : NAT >+term NAT.SUCC : ^(y0 : NAT) -> < NAT.SUCC y0 : NAT >+term NATnat : NAT -> Nat+{ NATnat NAT.ZERO = Nat.zero+; NATnat (NAT.SUCC n) = Nat.succ (NATnat n)+}+type Exists : Set+term Exists.inEx : .[A : Set] -> ^(outEx : A) -> < Exists.inEx A outEx : Exists >+ty-u EXISTS : Set 1+term EXISTS.inEX : ^(OutType : Set) -> ^(outValue : OutType) -> < EXISTS.inEX OutType outValue : EXISTS >+type OutType : (inEX : EXISTS) -> Set+{ OutType (EXISTS.inEX #OutType #outValue) = #OutType+}+term outValue : (inEX : EXISTS) -> OutType inEX+{ outValue (EXISTS.inEX #OutType #outValue) = #outValue+}+--- evaluating ---+--- closing "BigWrap.ma" ---
+ test/succeed/BoundedQ.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BoundedQ.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term mySucc : .[i : Size] -> .[j < i] -> Nat j -> Nat i+{ mySucc [i] [j < i] n = Nat.succ [j] n+}+term boundedId : .[i : Size] -> .[j <= i] -> (n : Nat j) -> Nat j+term boundedId = [\ i ->] [\ j ->] \ n -> n+term explicitCast : .[i : Size] -> .[j <= i] -> Nat j -> Nat i+term explicitCast = [\ i ->] [\ j ->] \ n -> n+term explicitCast' : .[i : Size] -> .[j : Size] -> |j| <= |i| -> Nat j -> Nat i+{ explicitCast' [i] [j] n = n+}+--- evaluating ---+--- closing "BoundedQ.ma" ---
+ test/succeed/BuiltinSigma.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "BuiltinSigma.ma" ---+--- scope checking ---+--- type checking ---+term fst' : .[A : Set] -> .[B : Set] -> (A & B) -> A+{ fst' [A] [B] (a, b) = a+}+term snd' : .[A : Set] -> .[B : Set] -> (A & B) -> B+{ snd' [A] [B] (a, b) = b+}+term swap : .[A : Set] -> .[B : Set] -> (A & B) -> B & A+term swap = [\ A ->] [\ B ->] \ p -> (snd' [A] [B] p , fst' [A] [B] p)+term reassoc' : .[A : Set] -> .[B : Set] -> .[C : Set] -> ((A & B) & C) -> A & B & C+{ reassoc' [A] [B] [C] ((a, b), c) = let bc : B & C+ = (b , c)+ in (a , bc)+}+term reassoc'' : .[A : Set] -> .[B : Set] -> .[C : Set] -> ((A & B) & C) -> A & B & C+{ reassoc'' [A] [B] [C] ((a, b), c) = (a , (b , c))+}+term reassoc3 : .[A : Set] -> .[B : Set] -> .[C : Set] -> .[D : Set] -> (((A & B) & C) & D) -> A & B & C & D+{ reassoc3 [A] [B] [C] [D] (((a, b), c), d) = (a , (b , (c , d)))+}+term fst : .[A : Set] -> .[B : A -> Set] -> ((x : A) & B x) -> A+{ fst [A] [B] (a, b) = a+}+term snd : .[A : Set] -> .[B : A -> Set] -> (p : (x : A) & B x) -> B (fst [A] [B] p)+{ snd [A] [B] (a, b) = b+}+term curry : .[A : Set] -> .[B : A -> Set] -> .[C : (x : A) -> B x -> Set] -> ((p : (x : A) & B x) -> C (fst [A] [B] p) (snd [A] [B] p)) -> (x : A) -> (y : B x) -> C x y+term curry = [\ A ->] [\ B ->] [\ C ->] \ f -> \ x -> \ y -> f (x , y)+term uncurry : .[A : Set] -> .[B : A -> Set] -> .[C : (x : A) -> B x -> Set] -> ((x : A) -> (y : B x) -> C x y) -> (p : (x : A) & B x) -> C (fst [A] [B] p) (snd [A] [B] p)+{ uncurry [A] [B] [C] f (x, y) = f x y+}+--- evaluating ---+--- closing "BuiltinSigma.ma" ---
test/succeed/BuiltinSigma.ma view
@@ -13,7 +13,7 @@ = \ A B p -> (snd' A B p, fst' A B p) fun reassoc' : (A, B, C : Set) -> (A & B) & C -> A & B & C-{ reassoc' A B C ((a , b) , c) = let bc : B & C = b , c in a , bc +{ reassoc' A B C ((a , b) , c) = let bc : B & C = b , c in a , bc } fun reassoc'' : (A, B, C : Set) -> (A & B) & C -> A & B & C@@ -34,13 +34,13 @@ { snd A B (a, b) = b } -let curry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) -> - ((p : (x : A) & B x) -> C (fst A B p) (snd A B p)) -> - ((x : A) -> (y : B x) -> C x y) +let curry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) ->+ ((p : (x : A) & B x) -> C (fst A B p) (snd A B p)) ->+ ((x : A) -> (y : B x) -> C x y) = \ A B C f x y -> f (x , y) -fun uncurry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) -> - ((x : A) -> (y : B x) -> C x y) -> +fun uncurry : (A : Set) -> (B : A -> Set) -> (C : (x : A) -> B x -> Set) ->+ ((x : A) -> (y : B x) -> C x y) -> (p : (x : A) & B x) -> C (fst A B p) (snd A B p) { uncurry A B C f (x , y) = f x y }
+ test/succeed/CoFunReturnsProduct.golden view
@@ -0,0 +1,67 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "CoFunReturnsProduct.ma" ---+--- scope checking ---+--- type checking ---+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >+term head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A+{ head [A] [i] (Stream.cons [.i] #head #tail) = #head+}+term tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i+{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail+}+type Tree : ++(A : Set) -> - Size -> Set+term Tree.leaf : .[A : Set] -> .[i : Size] -> < Tree.leaf i : Tree A $i >+term Tree.node : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Tree A i) -> ^(y3 : Tree A i) -> < Tree.node i y1 y2 y3 : Tree A $i >+term lab : .[i : Size] -> .[A : Set] -> .[B : Set] -> Tree A i -> Stream (Stream B #) i -> Prod (Tree B i) (Stream (Stream B #) i)+{ lab $[i < #] [A] [B] (Tree.leaf [.i]) bss = Prod.pair (Tree.leaf [i]) bss+; lab $[i < #] [A] [B] (Tree.node [.i] x l r) (Stream.cons [.i] (Stream.cons [.#] b bs) bss) = let pl : Prod (Tree B i) (Stream (Stream B #) i)+ = lab [i] [A] [B] l bss+ in let pr : Prod (Tree B i) (Stream (Stream B #) i)+ = lab [i] [A] [B] r (snd pl)+ in Prod.pair (Tree.node [i] b (fst pl) (fst pr)) (Stream.cons [i] bs (snd pr))+}+term label2 : .[i : Size] -> .[A : Set] -> .[B : Set] -> Tree A i -> Stream B # -> Stream (Stream B #) i+{ label2 $[i < #] [A] [B] t bs = snd (lab [$i] [A] [B] t (Stream.cons [i] bs (label2 [i] [A] [B] t bs)))+}+term label : .[i : Size] -> .[A : Set] -> .[B : Set] -> Tree A i -> Stream B # -> Tree B i+{ label [i] [A] [B] t bs = fst (lab [i] [A] [B] t (Stream.cons [i] bs (label2 [i] [A] [B] t bs)))+}+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Nat : Set+term Nat.Z : < Nat.Z : Nat >+term Nat.S : ^(y0 : Nat) -> < Nat.S y0 : Nat >+term nats : .[i : Size] -> Nat -> Stream Nat i+{ nats $[i < #] n = Stream.cons [i] n (nats [i] (Nat.S n))+}+term finTree : Nat -> Tree Unit #+{ finTree Nat.Z = Tree.leaf [#]+; finTree (Nat.S n) = Tree.node [#] Unit.unit (finTree n) (finTree n)+}+term t0 : Tree Nat #+term t0 = label [#] [Unit] [Nat] (finTree Nat.Z) (nats [#] Nat.Z)+term t1 : Tree Nat #+term t1 = label [#] [Unit] [Nat] (finTree (Nat.S Nat.Z)) (nats [#] Nat.Z)+term t2 : Tree Nat #+term t2 = label [#] [Unit] [Nat] (finTree (Nat.S (Nat.S Nat.Z))) (nats [#] Nat.Z)+term t3 : Tree Nat #+term t3 = label [#] [Unit] [Nat] (finTree (Nat.S (Nat.S (Nat.S Nat.Z)))) (nats [#] Nat.Z)+--- evaluating ---+t0 has whnf (lab # Unit Nat (finTree Z) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree Z), B = Nat, A = Unit, i = #}} .fst)+t0 evaluates to lab # Unit Nat (finTree Z) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree Z) (nats # Z))) .fst+t1 has whnf (lab # Unit Nat (finTree (S Z)) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree (S Z)), B = Nat, A = Unit, i = #}} .fst)+t1 evaluates to lab # Unit Nat (finTree (S Z)) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree (S Z)) (nats # Z))) .fst+t2 has whnf (lab # Unit Nat (finTree (S (S Z))) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree (S (S Z))), B = Nat, A = Unit, i = #}} .fst)+t2 evaluates to lab # Unit Nat (finTree (S (S Z))) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree (S (S Z))) (nats # Z))) .fst+t3 has whnf (lab # Unit Nat (finTree (S (S (S Z)))) {Stream.cons [i] bs (label2 [i] [A] [B] t bs) {bs = ((nats # Z) Up (Stream {Nat {i = #}} #)), t = (finTree (S (S (S Z)))), B = Nat, A = Unit, i = #}} .fst)+t3 evaluates to lab # Unit Nat (finTree (S (S (S Z)))) (Stream.cons # (nats # Z) (label2 # Unit Nat (finTree (S (S (S Z)))) (nats # Z))) .fst+--- closing "CoFunReturnsProduct.ma" ---
test/succeed/CoFunReturnsProduct.ma view
@@ -3,7 +3,7 @@ -- see Nils Anders Danielsson, Beating the Productivity Checker (PAR 2010, FLoC) -- 2012-01-22 parameters gone from constructors -data Prod (+ A : Set)(+ B : Set) : Set +data Prod (+ A : Set)(+ B : Set) : Set { pair : (fst : A) -> (snd : B) -> Prod A B } fields fst, snd @@ -11,7 +11,7 @@ { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A ($ i) } fields head, tail -sized codata Tree (+ A : Set) : Size -> Set +sized codata Tree (+ A : Set) : Size -> Set { leaf : [i : Size] -> Tree A ($ i) ; node : [i : Size] -> A -> Tree A i -> Tree A i -> Tree A ($ i) }@@ -19,40 +19,40 @@ -- this definition is fine since the result type is a product -- where each of its components is coinductive in i (TLCA, 2003) cofun lab : [i : Size] -> [A : Set] -> [B : Set] ->- Tree A i -> Stream (Stream B #) i -> + Tree A i -> Stream (Stream B #) i -> Prod (Tree B i) (Stream (Stream B #) i) {- lab ($ i) A B (leaf {-.A-} .i) bss = + lab ($ i) A B (leaf {-.A-} .i) bss = pair {- (Tree B ($ i)) (Stream (Stream B #) ($ i)) -} (leaf {-B-} i) bss -; lab ($ i) A B (node {-.A-} .i x l r) +; lab ($ i) A B (node {-.A-} .i x l r) (cons {- .(Stream B #) -} .i (cons {-.B-} .# b bs) bss) = -- recursive call on left subtree let pl : Prod (Tree B i) (Stream (Stream B #) i)- = lab i A B l bss + = lab i A B l bss -- recursive call on right subtree, threading the label stream-stream in let pr : Prod (Tree B i) (Stream (Stream B #) i)- = lab i A B r (snd {- (Tree B i) (Stream (Stream B #) i) -} pl) + = lab i A B r (snd {- (Tree B i) (Stream (Stream B #) i) -} pl) in pair {- (Tree B ($ i)) (Stream (Stream B #) ($ i)) -} (node {-B-} i b (fst {- (Tree B i) (Stream (Stream B #) i) -} pl) (fst {- (Tree B i) (Stream (Stream B #) i) -} pr))- (cons {- (Stream B #) -} i bs + (cons {- (Stream B #) -} i bs (snd {- (Tree B i) (Stream (Stream B #) i) -} pr)) } -- this auxiliary function replaces the original circular program-cofun label2 : [i : Size] -> [A : Set] -> [B : Set] -> - Tree A i -> Stream B # -> Stream (Stream B #) i +cofun label2 : [i : Size] -> [A : Set] -> [B : Set] ->+ Tree A i -> Stream B # -> Stream (Stream B #) i { label2 ($ i) A B t bs = snd {- (Tree B ($ i)) (Stream (Stream B #) ($ i)) -} (lab ($ i) A B t (cons {- (Stream B #)-} i bs (label2 i A B t bs))) } -- main program-fun label : [i : Size] -> [A : Set] -> [B : Set] -> +fun label : [i : Size] -> [A : Set] -> [B : Set] -> Tree A i -> Stream B # -> Tree B i { label i A B t bs = fst {- (Tree B i) (Stream (Stream B #) i) -} (lab i A B t (cons {-(Stream B #)-} i bs (label2 i A B t bs)))@@ -64,7 +64,7 @@ { unit : Unit } -data Nat : Set +data Nat : Set { Z : Nat ; S : Nat -> Nat }@@ -82,7 +82,4 @@ eval let t1 : Tree Nat # = label # Unit Nat (finTree (S Z)) (nats # Z) eval let t2 : Tree Nat # = label # Unit Nat (finTree (S (S Z))) (nats # Z) eval let t3 : Tree Nat # = label # Unit Nat (finTree (S (S (S Z)))) (nats # Z)---
+ test/succeed/ConorMcBrideCalco09inflationary.golden view
@@ -0,0 +1,49 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ConorMcBrideCalco09inflationary.ma" ---+--- scope checking ---+--- type checking ---+type Map : (F : Set -> Set) -> Set 1+type Map = \ F -> .[A : Set] -> .[B : Set] -> (A -> B) -> F A -> F B+type Nu : (F : Set -> Set) -> -(i : Size) -> Set+{ Nu F i = .[j < i] -> F (Nu F j)+}+type Inf : (G : Size -> Set) -> -(i : Size) -> Set+{ Inf G i = .[j < i] -> G j+}+term usc : .[F : Set -> Set] -> (r : Inf (Nu F) #) -> Nu F #+term usc = [\ F ->] \ r -> r [#]+term toInf : .[F : Set -> Set] -> (r : Nu F #) -> Inf (Nu F) #+{ toInf [F] r [i < #] [j < i] = r [j]+}+type All : (G : Size -> Set) -> Set+type All = \ G -> .[i : Size] -> G i+term fromAll : .[F : Set -> Set] -> (r : All (Nu F)) -> Nu F #+term fromAll = [\ F ->] \ r -> r [#]+term toAll : .[F : Set -> Set] -> (r : Nu F #) -> All (Nu F)+{ toAll [F] r [i] [j < i] = r [j]+}+term postfp : .[F : Set -> Set] -> (r : Nu F #) -> F (Nu F #)+block fails as expected, error message:+postfp+/// clause 1+/// right hand side+/// checkExpr 2 |- r # : F (Nu (F ) #)+/// inferExpr' r #+/// checkApp (.[j < #] -> F (Nu F j){i = #, F = (v0 Up (Set -> Set))}) eliminated by #+/// leqVal' (subtyping) < # : Size > <=+ < #+/// leSize # <+ #+/// leSize: # < # failed+term out : .[F : Set -> Set] -> .[i : Size] -> (r : Nu F $i) -> F (Nu F i)+term out = [\ F ->] [\ i ->] \ r -> r [i]+term inn : .[F : + Set -> Set] -> .[i : Size] -> F (Nu F i) -> Nu F $i+{ inn [F] [i] t [j < $i] = t+}+term inn : .[F : + Set -> Set] -> .[i : Size] -> (t : F (Nu F i)) -> Nu F $i+term inn = [\ F ->] [\ i ->] \ t -> [\ j ->] t+term coit : .[F : + Set -> Set] -> (map : Map F) -> .[S : Set] -> (step : S -> F S) -> .[i : Size] -> (start : S) -> Nu F i+{ coit [F] map [S] step [i] = \ start -> [\ j ->] map [S] [Nu F j] (coit [F] map [S] step [j]) (step start)+}+term caseNu : .[F : + Set -> Set] -> .[P : (i : Size) -> Nu F i -> Set] -> (f : .[i : Size] -> (t : F (Nu F i)) -> P $i (inn [F] [i] t)) -> .[i : Size] -> (x : Nu F $i) -> P $i x+term caseNu = [\ F ->] [\ P ->] \ f -> [\ i ->] \ x -> f [i] (x [i])+--- evaluating ---+--- closing "ConorMcBrideCalco09inflationary.ma" ---
+ test/succeed/ConstructorTelescopes.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ConstructorTelescopes.ma" ---+--- scope checking ---+--- type checking ---+type List : ++(A : Set) -> ++(i : Size) -> Set+term List.nil : .[A : Set] -> .[i : Size] -> .[j < i] -> < List.nil j : List A i >+term List.cons : .[A : Set] -> .[i : Size] -> .[j < i] -> ^(x : A) -> ^(xs : List A j) -> < List.cons j x xs : List A i >+type SList : ++(A : Set) -> + Size -> Set+term SList.snil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> SList A s!ze+term SList.snil : .[A : Set] -> .[i : Size] -> < SList.snil i : SList A $i >+term SList.scons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^(x : A) -> ^(xs : SList A i) -> SList A s!ze+term SList.scons : .[A : Set] -> .[i : Size] -> ^(x : A) -> ^(xs : SList A i) -> < SList.scons i x xs : SList A $i >+--- evaluating ---+--- closing "ConstructorTelescopes.ma" ---
+ test/succeed/ConstructorVeiledTarget.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ConstructorVeiledTarget.ma" ---+--- scope checking ---+--- type checking ---+type Id : ++(A : Set) -> Set+type Id = \ A -> A+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Id Bool >+--- evaluating ---+--- closing "ConstructorVeiledTarget.ma" ---
+ test/succeed/DataTypesNotFamilies.golden view
@@ -0,0 +1,27 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DataTypesNotFamilies.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(head : A) -> ^(tail : List A) -> < List.cons head tail : List A >+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type Id : ^(a : Bool) -> ^ Bool -> Set+block fails as expected, error message:+Id+/// constructor Id.refl+/// new Id : (^(a : Bool::Tm) -> ^ Bool -> Set)+/// new a : Bool+/// inferExpr: expected Id a to be a type!+--- evaluating ---+--- closing "DataTypesNotFamilies.ma" ---
test/succeed/DataTypesNotFamilies.ma view
@@ -4,7 +4,7 @@ data List ++(A : Set) : Set { nil ; cons (head : A) (tail : List A)-} +} record Prod ++(A, B : Set) : Set { pair (fst : A) (snd : B)
+ test/succeed/DeepMatch.golden view
@@ -0,0 +1,18 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DeepMatch.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.Z : < Nat.Z : Nat >+term Nat.S : ^(y0 : Nat) -> < Nat.S y0 : Nat >+term plus : Nat -> Nat -> Nat+{ plus Nat.Z m = m+; plus (Nat.S n) m = Nat.S (plus n m)+}+term fib : Nat -> Nat+{ fib Nat.Z = Nat.S Nat.Z+; fib (Nat.S Nat.Z) = Nat.S Nat.Z+; fib (Nat.S (Nat.S n)) = plus (fib n) (fib (Nat.S n))+}+--- evaluating ---+--- closing "DeepMatch.ma" ---
test/succeed/DeepMatch.ma view
@@ -1,5 +1,5 @@ -data Nat : Set +data Nat : Set { Z : Nat ; S : Nat -> Nat }
+ test/succeed/DescendAscendTerm.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DescendAscendTerm.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term plus : Nat -> Nat -> Nat+{}+term f : Nat -> Nat+term g : Nat -> Nat -> Nat+{ f (Nat.succ (Nat.succ (Nat.succ n))) = g n n+}+{ g (Nat.succ n) m = plus (g n (Nat.succ m)) (f n)+}+--- evaluating ---+--- closing "DescendAscendTerm.ma" ---
test/succeed/DescendAscendTerm.ma view
+ test/succeed/DotPatternNotLeftToRightBinding.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DotPatternNotLeftToRightBinding.ma" ---+--- scope checking ---+--- type checking ---+type A : Set+{}+type B : Set+{}+none f : A -> A+{}+type Fix : (a : A) -> ^ A -> Set+term Fix.fix : .[a : A] -> < Fix.fix : Fix a (f a) >+term eta : (a : A) -> (b : A) -> Fix a b -> Fix a b+{ eta a .(f a) Fix.fix = Fix.fix+}+none bla : (b : A) -> (a : A) -> Fix a b -> A+{ bla .(f a) a Fix.fix = a+}+type Inv : ^(g : A -> B) -> ^ B -> Set+term Inv.mkInv : .[g : A -> B] -> ^(getInv : A) -> < Inv.mkInv getInv : Inv g (g getInv) >+none getInv : (g : A -> B) -> (b : B) -> Inv g b -> A+{ getInv g .(g a) (Inv.mkInv a) = a+}+--- evaluating ---+--- closing "DotPatternNotLeftToRightBinding.ma" ---
test/succeed/DotPatternNotLeftToRightBinding.ma view
@@ -12,12 +12,12 @@ -- eta not definable unconditionally (like for Id) fun eta : (a, b : A) -> Fix a b -> Fix a b { eta a .(f a) (fix) = fix-} +} -- variable a used in dot pattern left of its binding fun bla : (b, a : A) -> Fix a b -> A { bla .(f a) a (fix) = a-} +} -- Function inverse @@ -27,7 +27,7 @@ -- MiniAgda does not generate destructor getInv fun getInv : (g : A -> B) -> (b : B) -> Inv g b -> A- { getInv g .(g a) (mkInv a) = a + { getInv g .(g a) (mkInv a) = a } {- Analysis:
+ test/succeed/DottedConstructors.golden view
@@ -0,0 +1,68 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DottedConstructors.ma" ---+--- scope checking ---+--- type checking ---+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term plus : Nat -> Nat -> Nat+{ plus Nat.zero m = m+; plus (Nat.suc n) m = Nat.suc (plus n m)+}+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+type Vec : ++(A : Set) -> ^(n : Nat) -> Set+term Vec.vnil : .[A : Set] -> < Vec.vnil : Vec A Nat.zero >+term Vec.vcons : .[A : Set] -> .[n : Nat] -> ^(vhead : A) -> ^(vtail : Vec A n) -> < Vec.vcons vhead vtail : Vec A (Nat.suc n) >+term vhead : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> A+{ vhead [A] [n] (Vec.vcons #vhead #vtail) = #vhead+}+term vtail : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> Vec A n+{ vtail [A] [n] (Vec.vcons #vhead #vtail) = #vtail+}+term append : .[A : Set] -> .[n : Nat] -> .[m : Nat] -> Vec A n -> Vec A m -> Vec A (plus n m)+{ append [A] [.Nat.zero] [m] Vec.vnil ys = ys+; append [A] [.Nat.suc [n]] [m] (Vec.vcons x xs) ys = Vec.vcons x (append [A] [n] [m] xs ys)+}+type Fin : ^(n : Nat) -> Set+term Fin.fzero : .[n : Nat] -> < Fin.fzero : Fin (Nat.suc n) >+term Fin.fsuc : .[n : Nat] -> ^(i : Fin n) -> < Fin.fsuc i : Fin (Nat.suc n) >+term lookup : .[A : Set] -> .[n : Nat] -> (i : Fin n) -> (xs : Vec A n) -> A+{ lookup [A] [.Nat.zero] () Vec.vnil+; lookup [A] [.Nat.suc [n]] Fin.fzero (.Vec.vcons x xs) = x+; lookup [A] [.Nat.suc [n]] (Fin.fsuc i) (.Vec.vcons x xs) = lookup [A] [n] i xs+}+type Ty : Set+term Ty.nat : < Ty.nat : Ty >+term Ty.arr : ^(a : Ty) -> ^(b : Ty) -> < Ty.arr a b : Ty >+type Cxt : Set+type Cxt = List Ty+type Var : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term Var.vzero : .[a : Ty] -> .[cxt : List Ty] -> .[a : Ty] -> < Var.vzero : Var (List.cons a cxt) a >+term Var.vsuc : .[a : Ty] -> .[cxt : List Ty] -> .[b : Ty] -> ^(x : Var cxt b) -> < Var.vsuc x : Var (List.cons a cxt) b >+type Tm : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term Tm.var : .[cxt : Cxt] -> .[a : Ty] -> ^(x : Var cxt a) -> < Tm.var x : Tm cxt a >+term Tm.app : .[cxt : List Ty] -> .[b : Ty] -> .[a : Ty] -> ^(r : Tm cxt (Ty.arr a b)) -> ^(s : Tm cxt a) -> < Tm.app a r s : Tm cxt b >+term Tm.abs : .[cxt : List Ty] -> .[a : Ty] -> .[b : Ty] -> ^(t : Tm (List.cons a cxt) b) -> < Tm.abs t : Tm cxt (Ty.arr a b) >+type Sem : Ty -> Set+{ Sem Ty.nat = Nat+; Sem (Ty.arr a b) = Sem a -> Sem b+}+type Env : Cxt -> Set+{ Env List.nil = Unit+; Env (List.cons a as) = Sem a & Env as+}+term val : .[cxt : Cxt] -> .[a : Ty] -> Var cxt a -> Env cxt -> Sem a+{ val [.List.cons [a] [cxt]] [.a] Var.vzero (v, vs) = v+; val [.List.cons [a] [cxt]] [b] (Var.vsuc x) (v, vs) = val [cxt] [b] x vs+}+term sem : .[cxt : Cxt] -> .[a : Ty] -> Tm cxt a -> Env cxt -> Sem a+{ sem [cxt] [a] (Tm.var x) rho = val [cxt] [a] x rho+; sem [cxt] [b] (Tm.app [a] r s) rho = sem [cxt] [Ty.arr a b] r rho (sem [cxt] [a] s rho)+; sem [cxt] [.Ty.arr [a] [b]] (Tm.abs t) rho v = sem [List.cons a cxt] [b] t (v , rho)+}+--- evaluating ---+--- closing "DottedConstructors.ma" ---
+ test/succeed/DottedPatSyn.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "DottedPatSyn.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.false : < Bool.false : Bool >+term Bool.true : < Bool.true : Bool >+type Maybe : ^(A : Set) -> Set+term Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term Maybe.just : .[A : Set] -> ^(fromJust : A) -> < Maybe.just fromJust : Maybe A >+type Three : Set+type Three = Maybe Bool+pattern one = nothing+pattern two = just false+pattern three = just true+type D : ^(b : Three) -> Set+term D.c : < D.c : D (Maybe.just Bool.true) >+ty-u f : .[b : Three] -> D b -> Set 1+{ f [.Maybe.just [.Bool.true]] D.c = Set+}+--- evaluating ---+--- closing "DottedPatSyn.ma" ---
+ test/succeed/Empty.golden view
@@ -0,0 +1,35 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Empty.ma" ---+--- scope checking ---+--- type checking ---+type Empty : Set+term abort : .[A : Set] -> (x : Empty) -> A+term abort = [\ A ->] \ x -> x+term abort1 : .[A : Set] -> (x : Empty) -> A -> A+term abort1 = [\ A ->] \ x -> x+term abort2 : .[F : + Set -> Set] -> .[A : Set] -> (x : F Empty) -> F A+term abort2 = [\ F ->] [\ A ->] \ x -> x+term toEmp : .[A : Set] -> .[B : Set] -> (x : A -> B) -> Empty -> B+term toEmp = [\ A ->] [\ B ->] \ x -> x+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+term abort3 : (x : Empty) -> Unit+term abort3 = \ x -> x+warning: ignoring error: hypothetical constraint |i| < |0| ignored+term abort5 : (x : Empty) -> .[i < 0] -> Unit+term abort5 = \ x -> x+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term f : Bool -> Unit+{ f x = x+}+term noReturnNeeded : .[M : + Set -> Set] -> .[A : Set] -> (x : M A) -> M Unit+term noReturnNeeded = [\ M ->] [\ A ->] \ x -> x+term g : Unit -> Bool+{ g un!t = Bool.true+}+term test : .[T : Bool -> Set] -> (x : T (g Unit.unit)) -> T Bool.true+term test = [\ T ->] \ x -> x+--- evaluating ---+--- closing "Empty.ma" ---
+ test/succeed/EvalBoveCaprettaNotSized.golden view
@@ -0,0 +1,61 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "EvalBoveCaprettaNotSized.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+type Exp : Set+term Exp.var : ^(y0 : Nat) -> < Exp.var y0 : Exp >+term Exp.abs : ^(y0 : Exp) -> < Exp.abs y0 : Exp >+term Exp.app : ^(y0 : Exp) -> ^(y1 : Exp) -> < Exp.app y0 y1 : Exp >+type D : Set+term D.clos : ^(y0 : Exp) -> ^(y1 : List D) -> < D.clos y0 y1 : D >+type Env : Set+type Env = List D+term empty : Env+term empty = List.nil+term update : Env -> D -> Env+term update = \ rho -> \ d -> List.cons d rho+term dummy : D+term dummy = D.clos (Exp.var Nat.zero) empty+term lookup : Env -> Nat -> D+{ lookup List.nil n = dummy+; lookup (List.cons d rho) Nat.zero = d+; lookup (List.cons d rho) (Nat.succ n) = lookup rho n+}+type Eval : ^ Exp -> ^ Env -> ^ D -> Set+term Eval.evVar : .[k : Nat] -> .[rho : Env] -> < Eval.evVar k rho : Eval (Exp.var k) rho (lookup rho k) >+term Eval.evAbs : .[e : Exp] -> .[rho : Env] -> < Eval.evAbs e rho : Eval (Exp.abs e) rho (D.clos e rho) >+term Eval.evApp : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> ^(evldFun : Exp) -> ^(evldEnv : Env) -> ^(evldArg : D) -> .[d' : D] -> ^(theFun : Eval f rho (D.clos evldFun evldEnv)) -> ^(theArg : Eval e rho evldArg) -> ^(theApp : Eval evldFun (update evldEnv evldArg) d') -> < Eval.evApp f e rho evldFun evldEnv evldArg d' theFun theArg theApp : Eval (Exp.app f e) rho d' >+term evldFun : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Exp+{ evldFun [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #evldFun+}+term evldEnv : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Env+{ evldEnv [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #evldEnv+}+term evldArg : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> D+{ evldArg [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #evldArg+}+term theFun : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Eval f rho (D.clos (evldFun [f] [e] [rho] [d'] evApp) (evldEnv [f] [e] [rho] [d'] evApp))+{ theFun [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #theFun+}+term theArg : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Eval e rho (evldArg [f] [e] [rho] [d'] evApp)+{ theArg [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #theArg+}+term theApp : .[f : Exp] -> .[e : Exp] -> .[rho : Env] -> .[d' : D] -> (evApp : Eval (Exp.app f e) rho d') -> Eval (evldFun [f] [e] [rho] [d'] evApp) (update (evldEnv [f] [e] [rho] [d'] evApp) (evldArg [f] [e] [rho] [d'] evApp)) d'+{ theApp [f] [e] [rho] [d'] (Eval.evApp [.f] [.e] [.rho] #evldFun #evldEnv #evldArg [.d'] #theFun #theArg #theApp) = #theApp+}+term evaluate : (e : Exp) -> (rho : Env) -> .[d : D] -> .[Eval e rho d] -> < d : D >+term apply : .[f' : Exp] -> .[rho' : Env] -> < D.clos f' rho' : D > -> (d : D) -> .[d' : D] -> .[Eval f' (update rho' d) d'] -> < d' : D >+{ evaluate (Exp.var k) rho [.(lookup rho k)] [Eval.evVar [.k] [.rho]] = lookup rho k+; evaluate (Exp.abs e) rho [.(clos e rho)] [Eval.evAbs [.e] [.rho]] = D.clos e rho+; evaluate (Exp.app f e) rho [.d'] [Eval.evApp [.f] [.e] [.rho] [f'] [rho'] [d] [d'] [evF] [evE] [evF']] = apply [f'] [rho'] (evaluate f rho [D.clos f' rho'] [evF]) (evaluate e rho [d] [evE]) [d'] [evF']+}+{ apply [.f'] [.rho'] (D.clos f' rho') d [d'] [p] = evaluate f' (update rho' d) [d'] [p]+}+--- evaluating ---+--- closing "EvalBoveCaprettaNotSized.ma" ---
test/succeed/EvalBoveCaprettaNotSized.ma view
@@ -1,7 +1,7 @@ -- 2009-11-29 A partial normalizer for untyped lambda calculus in MiniAgda -- 2012-01-22 parameters gone from constructors -data Nat : Set +data Nat : Set { zero : Nat ; succ : Nat -> Nat }@@ -15,7 +15,7 @@ data Exp : Set { var : Nat -> Exp-; abs : Exp -> Exp +; abs : Exp -> Exp ; app : Exp -> Exp -> Exp } @@ -34,7 +34,7 @@ = nil let update : Env -> D -> Env- = \ rho -> \ d -> cons d rho + = \ rho -> \ d -> cons d rho let dummy : D = clos (var zero) empty@@ -48,23 +48,23 @@ -- inductive graph of the evaluation function data Eval : Exp -> Env -> D -> Set-{ evVar : [k : Nat] -> [rho : Env] -> +{ evVar : [k : Nat] -> [rho : Env] -> ------------------------------- Eval (var k) rho (lookup rho k) -; evAbs : [e : Exp] -> [rho : Env] -> +; evAbs : [e : Exp] -> [rho : Env] -> ------------------------------ Eval (abs e) rho (clos e rho) + Eval (abs e) rho (clos e rho) -; evApp : [f : Exp] -> [e : Exp] -> [rho : Env] -> - (evldFun : Exp) -> (evldEnv : Env) -> (evldArg : D) -> [d' : D] -> +; evApp : [f : Exp] -> [e : Exp] -> [rho : Env] ->+ (evldFun : Exp) -> (evldEnv : Env) -> (evldArg : D) -> [d' : D] -> (theFun : Eval f rho (clos evldFun evldEnv)) -> (theArg : Eval e rho evldArg) -> (theApp : Eval evldFun (update evldEnv evldArg) d') ->- ----------------------------- + ----------------------------- Eval (app f e) rho d' } @@ -76,7 +76,7 @@ mutual { - fun evaluate : (e : Exp) -> (rho : Env) -> + fun evaluate : (e : Exp) -> (rho : Env) -> [d : D] -> [Eval e rho d] -> <d : D> { evaluate (var k) rho .(lookup rho k) (evVar .k .rho) = lookup rho k ; evaluate (abs e) rho .(clos e rho) (evAbs .e .rho) = clos e rho@@ -85,9 +85,9 @@ (evaluate e rho d evE) d' evF' } - fun apply : [f' : Exp] -> [rho' : Env] -> <clos f' rho' : D> -> - (d : D) -> [d' : D] -> [Eval f' (update rho' d) d'] -> <d' : D> - { apply .f' .rho' (clos f' rho') d d' p = evaluate f' (update rho' d) d' p + fun apply : [f' : Exp] -> [rho' : Env] -> <clos f' rho' : D> ->+ (d : D) -> [d' : D] -> [Eval f' (update rho' d) d'] -> <d' : D>+ { apply .f' .rho' (clos f' rho') d d' p = evaluate f' (update rho' d) d' p } }
+ test/succeed/EvenOdd.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "EvenOdd.ma" ---+--- scope checking ---+--- type checking ---+type Even : Set+term Even.ev0 : < Even.ev0 : Even >+term Even.evS : ^(y0 : Odd) -> < Even.evS y0 : Even >+type Odd : Set+term Odd.oddS : ^(y0 : Even) -> < Odd.oddS y0 : Odd >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+term evenToNat : Even -> Nat+term oddToNat : Odd -> Nat+{ evenToNat Even.ev0 = Nat.zero+; evenToNat (Even.evS o) = Nat.suc (oddToNat o)+}+{ oddToNat (Odd.oddS e) = Nat.suc (evenToNat e)+}+--- evaluating ---+--- closing "EvenOdd.ma" ---
test/succeed/EvenOdd.ma view
@@ -2,7 +2,7 @@ mutual { - data Even : Set + data Even : Set { ev0 : Even ; evS : Odd -> Even }@@ -28,4 +28,4 @@ fun oddToNat : Odd -> Nat { oddToNat (oddS e) = suc (evenToNat e) }-} +}
+ test/succeed/Evens.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Evens.ma" ---+--- scope checking ---+--- type checking ---+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >+term head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A+{ head [A] [i] (Stream.cons [.i] #head #tail) = #head+}+term tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i+{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail+}+term evens : .[A : Set] -> .[i : Size] -> Stream A (i + i) -> Stream A i+{ evens [A] $[i < #] (Stream.cons [.(i + i + 1)] a (Stream.cons [.(i + i)] b as)) = Stream.cons [i] a (evens [A] [i] as)+}+term map2 : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Stream A (i + i) -> Stream B (i + i)+{ map2 [A] [B] f $[i < #] (Stream.cons [.$(i + i)] a1 (Stream.cons [.(i + i)] a2 as)) = Stream.cons [$(i + i)] (f a1) (Stream.cons [i + i] (f a2) (map2 [A] [B] f [i] as))+}+--- evaluating ---+--- closing "Evens.ma" ---
test/succeed/Evens.ma view
@@ -1,7 +1,7 @@--- 2010-11-01 +-- 2010-11-01 -- 2012-01-22 parameters gone from constructors -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i } @@ -11,7 +11,7 @@ cons i a (evens A i as) } -cofun map2 : [A, B : Set] -> (A -> B) -> +cofun map2 : [A, B : Set] -> (A -> B) -> [i : Size] -> Stream A (2 * i) -> Stream B (2 * i) { map2 A B f ($ i) (cons .$(2 * i) a1 (cons .(2 * i) a2 as)) = cons $(2 * i) (f a1) (cons (2 * i) (f a2) (map2 A B f i as))
+ test/succeed/ExtractLets.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ExtractLets.ma" ---+--- scope checking ---+--- type checking ---+term id : .[A : Set] -> A -> A+term id = [\ A ->] \ x -> x+term s : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> (A -> B) -> A -> C+term s = [\ A ->] [\ B ->] [\ C ->] \ x -> \ y -> \ z -> x z (y z)+term k : .[A : Set] -> .[B : Set] -> A -> B -> A+term k = [\ A ->] [\ B ->] \ x -> \ y -> x+term skk : .[A : Set] -> A -> A+term skk = [\ A ->] s [A] [A -> A] [A] (k [A] [A -> A]) (k [A] [A])+--- evaluating ---+--- closing "ExtractLets.ma" ---
test/succeed/ExtractLets.ma view
+ test/succeed/FakeMutual.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "FakeMutual.ma" ---+--- scope checking ---+--- type checking ---+type E : Set+term E.e0 : < E.e0 : E >+term E.eS : ^(y0 : O) -> < E.eS y0 : E >+type O : Set+term O.oS : ^(y0 : E) -> < O.oS y0 : O >+type D1 : Set+term D1.d1 : ^(y0 : D2) -> < D1.d1 y0 : D1 >+type D2 : Set+term D2.d2 : ^(y0 : D3) -> < D2.d2 y0 : D2 >+type D3 : Set+term D3.d3 : ^(y0 : D1) -> < D3.d3 y0 : D3 >+type A : Set+term A.a1 : < A.a1 : A >+term A.a2 : ^(y0 : A) -> < A.a2 y0 : A >+type B : Set+term B.b1 : < B.b1 : B >+term B.b2 : ^(y0 : A -> B) -> < B.b2 y0 : B >+type D : Set+term D.c : < D.c : D >+term D.d : ^(y0 : D) -> < D.d y0 : D >+{ T X = D -> X+}+--- evaluating ---+--- closing "FakeMutual.ma" ---
test/succeed/FakeMutual.ma view
@@ -2,7 +2,7 @@ -- real mutuals -mutual { +mutual { data E : Set { e0 : E ; eS : O -> E } data O : Set { oS : E -> O }@@ -17,16 +17,16 @@ -- fake mutuals -mutual { +mutual { -- A is spos in its def.- data A : Set + data A : Set { a1 : A ; a2 : A -> A } -- but not in B- data B : Set + data B : Set { b1 : B ; b2 : (A -> B) -> B }@@ -35,7 +35,7 @@ mutual { -- D is spos in its definition- data D : Set + data D : Set { c : D ; d : D -> D }
+ test/succeed/Fields.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Fields.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+term f : Nat -> Nat+{}+type D : ++(A : Nat -> Set) -> ^ Nat -> Set+term D.mkD : .[A : Nat -> Set] -> ^(index : Nat) -> ^(content : A index) -> < D.mkD index content : D A (f index) >+--- evaluating ---+--- closing "Fields.ma" ---
test/succeed/Fields.ma view
@@ -10,7 +10,7 @@ -- but it is not computable from D A (f index) data D ++(A : Nat -> Set) : Nat -> Set { mkD : (index : Nat) -> (content : A index) -> D A (f index)-} +} {- generates fun content : [A : Nat -> Set] -> (index : Nat) -> (d : D A (_f index)) -> A index
+ test/succeed/FinBranchMutual.golden view
@@ -0,0 +1,24 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "FinBranchMutual.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type Tree : Set+term Tree.node : ^(numBranches : Nat) -> ^(y1 : VecTree numBranches) -> < Tree.node numBranches y1 : Tree >+{ VecTree Nat.zero = Unit+; VecTree (Nat.suc n) = Prod Tree (VecTree n)+}+--- evaluating ---+--- closing "FinBranchMutual.ma" ---
test/succeed/FinBranchMutual.ma view
+ test/succeed/Fix.golden view
@@ -0,0 +1,9 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Fix.ma" ---+--- scope checking ---+--- type checking ---+term fix : .[A : Size -> Set] -> (f : .[i : Size] -> (.[j < i] -> A j) -> A i) -> .[i : Size] -> A i+{ fix [A] f [i] = f [i] (fix [A] f)+}+--- evaluating ---+--- closing "Fix.ma" ---
test/succeed/Fix.ma view
@@ -1,7 +1,7 @@ -- 2012-01-27 fix-point principle -fun fix : [A : Size -> Set] -> +fun fix : [A : Size -> Set] -> (f : [i : Size] -> ([j < i] -> A j) -> A i) ->- [i : Size] -> |i| -> A i + [i : Size] -> |i| -> A i { fix A f i = f i (fix A f) }
+ test/succeed/ForceInConType.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForceInConType.ma" ---+--- scope checking ---+--- type checking ---+type Id : ++(A : Set) -> ^(x : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[x : A] -> < Id.refl : Id A x x >+type Either : ++(A : Set) -> ++(B : Set) -> Set+term Either.left : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Either.left y0 : Either A B >+term Either.right : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Either.right y0 : Either A B >+type P : ++(A : Set) -> Set+{ P A = Either A A+}+type Foo : ++(A : Set) -> P A -> Set+{ Foo A x = (z : A) & Id (P A) x (Either.left z)+}+term foo : .[A : Set] -> (x : P A) -> Foo A x+{ foo [A] (Either.left x) = (x , Id.refl)+}+--- evaluating ---+--- closing "ForceInConType.ma" ---
+ test/succeed/ForcedMatch.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForcedMatch.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type D : ^ Bool -> ^ Bool -> Set+term D.d00 : < D.d00 : D Bool.false Bool.false >+term D.d01 : < D.d01 : D Bool.false Bool.true >+term D.d11 : < D.d11 : D Bool.true Bool.true >+term f : (b : Bool) -> .[D b b] -> Bool+{ f Bool.false [D.d00] = Bool.false+; f Bool.true [D.d11] = Bool.true+}+--- evaluating ---+--- closing "ForcedMatch.ma" ---
test/succeed/ForcedMatch.ma view
+ test/succeed/ForcedMatchIdType.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForcedMatchIdType.ma" ---+--- scope checking ---+--- type checking ---+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term subst : .[A : Set] -> .[a : A] -> .[b : A] -> .[Id A a b] -> .[P : A -> Set] -> P a -> P b+{ subst [A] [a] [.a] [Id.refl] [P] h = h+}+term p1 : .[A : Set] -> .[a : A] -> .[p : Id A a a] -> .[P : A -> Set] -> (h : P a) -> Id (P a) (subst [A] [a] [a] [p] [P] h) (subst [A] [a] [a] [Id.refl] [P] h)+term p1 = [\ A ->] [\ a ->] [\ p ->] [\ P ->] \ h -> Id.refl+term p2 : .[A : Set] -> .[a : A] -> .[p : Id A a a] -> .[P : A -> Set] -> (h : P a) -> Id (P a) (subst [A] [a] [a] [p] [P] h) h+term p2 = [\ A ->] [\ a ->] [\ p ->] [\ P ->] \ h -> Id.refl+term p3 : .[A : Set] -> .[a : A] -> .[b : A] -> .[p : Id A a b] -> .[q : Id A a b] -> .[P : A -> Set] -> (h : P a) -> Id (P b) (subst [A] [a] [b] [p] [P] h) (subst [A] [a] [b] [q] [P] h)+term p3 = [\ A ->] [\ a ->] [\ b ->] [\ p ->] [\ q ->] [\ P ->] \ h -> Id.refl+--- evaluating ---+--- closing "ForcedMatchIdType.ma" ---
+ test/succeed/ForestRose.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ForestRose.ma" ---+--- scope checking ---+--- type checking ---+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+type Rose : ++(A : Set) -> Set+term Rose.rose : .[A : Set] -> ^(label : A) -> ^(subtrees : Forest A) -> < Rose.rose label subtrees : Rose A >+term label : .[A : Set] -> (rose : Rose A) -> A+{ label [A] (Rose.rose #label #subtrees) = #label+}+term subtrees : .[A : Set] -> (rose : Rose A) -> Forest A+{ subtrees [A] (Rose.rose #label #subtrees) = #subtrees+}+{ Forest A = List (Rose A)+}+--- evaluating ---+--- closing "ForestRose.ma" ---
test/succeed/ForestRose.ma view
@@ -3,7 +3,7 @@ data List ++(A : Set) : Set { nil : List A ; cons : A -> List A -> List A-} +} mutual {
+ test/succeed/GADT.golden view
@@ -0,0 +1,18 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "GADT.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type Pair : ^(A : Set) -> ^(B : Set) -> Set+term Pair.pair : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> ^(y1 : B) -> < Pair.pair y0 y1 : Pair A B >+ty-u Exp : ^ Set -> Set 1+term Exp.nat : ^(y0 : Nat) -> < Exp.nat y0 : Exp Nat >+term Exp.bool : ^(y0 : Bool) -> < Exp.bool y0 : Exp Bool >+term Exp.tup : .[A : Set] -> .[B : Set] -> ^(y2 : Pair A B) -> < Exp.tup A B y2 : Exp (Pair A B) >+--- evaluating ---+--- closing "GADT.ma" ---
test/succeed/GADT.ma view
@@ -18,4 +18,4 @@ { nat : Nat -> Exp Nat ; bool : Bool -> Exp Bool ; tup : (A, B : Set) -> Pair A B -> Exp (Pair A B)-} +}
+ test/succeed/GoodConstraint.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "GoodConstraint.ma" ---+--- scope checking ---+--- type checking ---+term f : .[A : Set] -> (.[i : Size] -> |i| < |i| -> A) -> A+{}+term f : .[A : Set] -> (.[i : Size] -> |i| < |i| -> |i| < |i| -> A) -> A+{}+--- evaluating ---+--- closing "GoodConstraint.ma" ---
+ test/succeed/HEq.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "HEq.ma" ---+--- scope checking ---+--- type checking ---+type HEq : .[A : Set] -> ^(a : A) -> .[B : Set] -> ^ B -> Set+term HEq.refl : .[A : Set] -> .[a : A] -> < HEq.refl : HEq [A] a [A] a >+type HEq' : .[i : Size] -> .[A : Set i] -> ^(a : A) -> .[B : Set i] -> ^ B -> Set+term HEq'.refl' : .[i : Size] -> .[A : Set i] -> .[a : A] -> < HEq'.refl' : HEq' [i] [A] a [A] a >+--- evaluating ---+--- closing "HEq.ma" ---
test/succeed/HEq.ma view
@@ -5,4 +5,4 @@ data HEq' [i : Size][A : Set i](a : A) : [B : Set i] -> B -> Set { refl' : HEq' i A a A a }- +
+ test/succeed/HVec.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "HVec.ma" ---+--- scope checking ---+--- type checking ---+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+ty-u Prod : .[i : Size] -> ^(A : Set i) -> ^(B : Set i) -> Set i+term Prod.pair : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod [i] A B >+mixk fst : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> (pair : Prod [i] A B) -> A+{ fst [i] [A] [B] (Prod.pair #fst #snd) = #fst+}+mixk snd : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> (pair : Prod [i] A B) -> B+{ snd [i] [A] [B] (Prod.pair #fst #snd) = #snd+}+mixk fst' : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> Prod [i] A B -> A+{ fst' [i] [A] [B] (Prod.pair a b) = a+}+ty-u List : .[i : Size] -> ^(A : Set i) -> Set i+term List.nil : .[i : Size] -> .[A : Set i] -> < List.nil : List [i] A >+term List.cons : .[i : Size] -> .[A : Set i] -> ^(y0 : A) -> ^(y1 : List [i] A) -> < List.cons y0 y1 : List [i] A >+type HVecR : List [1] Set -> Set+{ HVecR List.nil = Unit+; HVecR (List.cons A As) = Prod [0] A (HVecR As)+}+ty-u HVec : ^ List [1] Set -> Set 1+term HVec.vnil : < HVec.vnil : HVec List.nil >+term HVec.vcons : .[A : Set] -> .[As : List [1] Set] -> ^(y2 : A) -> ^(y3 : HVec As) -> < HVec.vcons A As y2 y3 : HVec (List.cons A As) >+--- evaluating ---+--- closing "HVec.ma" ---
+ test/succeed/HungryEtaRecord.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "HungryEtaRecord.ma" ---+--- scope checking ---+--- type checking ---+type Hungry : -(i : Size) -> Set+{ Hungry i = .[j < i] -> Hungry j+}+type D : .[i : Size] -> Hungry i -> Set+{}+--- evaluating ---+--- closing "HungryEtaRecord.ma" ---
+ test/succeed/IdTypePos.golden view
@@ -0,0 +1,16 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IdTypePos.ma" ---+--- scope checking ---+--- type checking ---+type Id : ++(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+type Exists : ^(A : Set) -> ++(P : A -> Set) -> Set+term Exists.exI : .[A : Set] -> .[P : A -> Set] -> ^(witness : A) -> ^(proof : P witness) -> < Exists.exI witness proof : Exists A P >+term witness : .[A : Set] -> .[P : A -> Set] -> (exI : Exists A P) -> A+{ witness [A] [P] (Exists.exI #witness #proof) = #witness+}+term proof : .[A : Set] -> .[P : A -> Set] -> (exI : Exists A P) -> P (witness [A] [P] exI)+{ proof [A] [P] (Exists.exI #witness #proof) = #proof+}+--- evaluating ---+--- closing "IdTypePos.ma" ---
test/succeed/IdTypePos.ma view
@@ -6,4 +6,4 @@ data Exists (A : Set) ++(P : A -> Set) : Set { exI : (witness : A) -> (proof : P witness) -> Exists A P-} +}
+ test/succeed/IrrHeterogeneousFun.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IrrHeterogeneousFun.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type T : Bool -> Set+{ T Bool.true = Nat+; T Bool.false = Bool+}+term good : .[F : Nat -> Set] -> .[f : .[b : Bool] -> (.[T b] -> Nat) -> Nat] -> (g : (n : Nat) -> F (f [Bool.true] ([\ x ->] n))) -> (h : F (f [Bool.false] ([\ x ->] Nat.zero)) -> Bool) -> Bool+{ good [F] [f] g h = h (g Nat.zero)+}+term good' : .[F : .[b : Bool] -> (.[T b] -> Nat) -> Set] -> (g : F [Bool.false] ([\ x ->] Nat.zero) -> Bool) -> (h : (n : Nat) -> F [Bool.true] ([\ x ->] n)) -> Bool+term good' = [\ F ->] \ g -> \ h -> g (h Nat.zero)+--- evaluating ---+--- closing "IrrHeterogeneousFun.ma" ---
test/succeed/IrrHeterogeneousFun.ma view
@@ -18,20 +18,19 @@ ; T false = Bool } -fun good : +fun good : [F : Nat -> Set] -> [f : [b : Bool] -> ([T b] -> Nat) -> Nat] -> (g : (n : Nat) -> F (f true (\ x -> n))) ->- (h : F (f false (\ x -> zero)) -> Bool) -> + (h : F (f false (\ x -> zero)) -> Bool) -> Bool { good F f g h = h (g zero) } -let good' : +let good' : [F : [b : Bool] -> ([T b] -> Nat) -> Set] ->- (g : F false (\ x -> zero) -> Bool) -> + (g : F false (\ x -> zero) -> Bool) -> (h : (n : Nat) -> F true (\ x -> n)) -> Bool = \ F g h -> g (h zero)-
+ test/succeed/IrrHeterogeneousSingleton.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IrrHeterogeneousSingleton.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type T : Bool -> Set+{ T Bool.true = Nat+; T Bool.false = < Nat.zero : Nat >+}+term good : .[F : Nat -> Set] -> .[f : .[x : Bool] -> T x -> Nat] -> (z : T Bool.false) -> (g : (n : Nat) -> F (f [Bool.true] n)) -> (h : F (f [Bool.false] z) -> Bool) -> Bool+{ good [F] [f] z g h = h (g Nat.zero)+}+--- evaluating ---+--- closing "IrrHeterogeneousSingleton.ma" ---
test/succeed/IrrHeterogeneousSingleton.ma view
@@ -17,12 +17,12 @@ ; T false = <zero : Nat> } -fun good : +fun good : [F : Nat -> Set] -> [f : [x : Bool] -> T x -> Nat] -> (z : T false) -> (g : (n : Nat) -> F (f true n)) ->- (h : F (f false z) -> Bool) -> + (h : F (f false z) -> Bool) -> Bool { good F f z g h = h (g zero) }
+ test/succeed/IrrHeterogeneousSize.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "IrrHeterogeneousSize.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type good : .[Size] -> .[f : .[i : Size] -> Nat i -> Set] -> (g : .[i : Size] -> (n : Nat i) -> f [i] n) -> (h : f [#] (Nat.zero [#]) -> Set) -> Set+{ good [i] [f] g h = h (g [$i] (Nat.zero [i]))+}+--- evaluating ---+--- closing "IrrHeterogeneousSize.ma" ---
test/succeed/IrrHeterogeneousSize.ma view
@@ -7,11 +7,11 @@ ; succ : [i : Size] -> Nat i -> Nat $i } -fun good : - [Size] -> +fun good :+ [Size] -> [f : [i : Size] -> Nat i -> Set] -> (g : [i : Size] -> (n : Nat i) -> f i n) ->- (h : f # (zero #) -> Set) -> + (h : f # (zero #) -> Set) -> Set { good i f g h = h (g $i (zero i)) }
+ test/succeed/LargeElim.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "LargeElim.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero n = n+; add (Nat.succ m) n = Nat.succ (add m n)+}+type Sum : Nat -> Set+{ Sum Nat.zero = Nat+; Sum (Nat.succ n) = Nat -> Sum n+}+term sum : (n : Nat) -> Nat -> Sum n+{ sum Nat.zero x = x+; sum (Nat.succ n) x = \ y -> sum n (add x y)+}+term one : Nat+term one = Nat.succ Nat.zero+term two : Nat+term two = Nat.succ one+term three : Nat+term three = Nat.succ two+term four : Nat+term four = Nat.succ three+term six : Nat+term six = sum four three two one Nat.zero Nat.zero+--- evaluating ---+six has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = (add zero zero)}}}}}}+six evaluates to Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ (add zero zero))))))+--- closing "LargeElim.ma" ---
test/succeed/LargeElim.ma view
@@ -15,7 +15,7 @@ ; Sum (succ n) = Nat -> Sum n } -fun sum : (n : Nat) -> Nat -> Sum n +fun sum : (n : Nat) -> Nat -> Sum n { sum zero x = x ; sum (succ n) x = \ y -> sum n (add x y) }
+ test/succeed/LetTele.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "LetTele.ma" ---+--- scope checking ---+--- type checking ---+mixk id0 : .[i : Size] -> .[A : Set i] -> (a : A) -> A+mixk id0 = [\ i ->] [\ A ->] \ a -> a+mixk id : .[i : Size] -> .[A : Set i] -> (a : A) -> A+mixk id = [\ i ->] [\ A ->] \ a -> a+mixk id' : .[i : Size] -> .[A : Set i] -> (a : A) -> A+mixk id' = [\ i ->] [\ A ->] \ a -> a+term two : .[A : Set] -> (f : A -> A) -> (x : A) -> A+term two = [\ A ->] \ f -> \ x -> let y : A+ = f x+ in f y+term two' : .[A : Set] -> (f : A -> A) -> (x : A) -> A+term two' = [\ A ->] \ f -> \ x -> let y : A+ = f x+ in f y+--- evaluating ---+--- closing "LetTele.ma" ---
test/succeed/LetTele.ma view
@@ -1,6 +1,6 @@ -- 2012-01-24 telescopes for let -let id0 : [i : Size] -> [A : Set i] -> (a : A) -> A +let id0 : [i : Size] -> [A : Set i] -> (a : A) -> A = \ i A a -> a let id [i : Size][A : Set i](a : A) : A = a@@ -11,9 +11,9 @@ let two [A : Set] (f : A -> A) (x : A) : A = let y = f x- in f y + in f y let two' : [A : Set] -> (f : A -> A) -> (x : A) -> A = \ A f x -> let y = f x- in f y + in f y
+ test/succeed/LowerSemiCont.golden view
@@ -0,0 +1,59 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "LowerSemiCont.ma" ---+--- scope checking ---+--- type checking ---+type sup : (F : Size -> Set) -> +(i : Size) -> Set+{ sup F i = .[j < i] & F j+}+term pairF : .[F : - Size -> Set] -> (a : F #) -> sup F #+term pairF = [\ F ->] \ a -> ([#] , a)+term supsup : .[F : Size -> Set] -> (a : sup F #) -> sup (sup F) #+term supsup = [\ F ->] \ a -> ([#] , a)+type bsup : (F : Size -> Set) -> +(i : Size) -> Set+{ bsup F i = .[j <= i] & F j+}+term bsupsup : .[F : Size -> Set] -> (a : sup F #) -> bsup (sup F) #+term bsupsup = [\ F ->] \ a -> ([#] , a)+type SNat : + Size -> Set+term SNat.szero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.szero : .[i : Size] -> < SNat.szero i : SNat $i >+term SNat.ssuc : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.ssuc : .[i : Size] -> ^(y1 : SNat i) -> < SNat.ssuc i y1 : SNat $i >+term pairSNat : (a : SNat #) -> .[j < #] & SNat j+term pairSNat = \ a -> ([#] , a)+term pairSNat2 : (a : SNat #) -> .[j < #] & SNat j & SNat j+term pairSNat2 = \ a -> ([#] , (a , a))+type Fork : ++(A : Set) -> Set+term Fork.fork : .[A : Set] -> ^(fst : A) -> ^(snd : A) -> < Fork.fork fst snd : Fork A >+term fst : .[A : Set] -> (fork : Fork A) -> A+{ fst [A] (Fork.fork #fst #snd) = #fst+}+term snd : .[A : Set] -> (fork : Fork A) -> A+{ snd [A] (Fork.fork #fst #snd) = #snd+}+term forkSNat : (a : SNat #) -> .[j < #] & Fork (SNat j)+term forkSNat = \ a -> ([#] , Fork.fork a a)+type Maybe : ++(A : Set) -> Set+term Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term Maybe.just : .[A : Set] -> ^(fromJust : A) -> < Maybe.just fromJust : Maybe A >+term maybeSNat : (a : SNat #) -> .[j < #] & Maybe (SNat j)+term maybeSNat = \ a -> ([#] , Maybe.just a)+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+block fails as expected, error message:+listSNat+/// new a : (SNat #)+/// checkExpr 1 |- (# , cons a nil) : .[j < #] & List (SNat j)+/// checkForced fromList [(a,0)] |- (# , cons a nil) : .[j < #] & List (SNat j)+/// checkExpr 1 |- # : < #+/// leqVal' (subtyping) < # : Size > <=+ < #+/// leSize # <+ #+/// leSize: # < # failed+type Nat : +(i : Size) -> Set+term Nat.zero : .[i : Size] -> < Nat.zero : Nat i >+term Nat.suc : .[i : Size] -> ^(jn : .[j < i] & Nat j) -> < Nat.suc jn : Nat i >+term one : Nat #+term one = Nat.suc ([#] , Nat.zero)+--- evaluating ---+--- closing "LowerSemiCont.ma" ---
+ test/succeed/MeasureInFunTele.golden view
@@ -0,0 +1,12 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MeasureInFunTele.ma" ---+--- scope checking ---+--- type checking ---+type T : -(i : Size) -> Set+{ T i = .[j < i] -> T j+}+term bla : .[i : Size] -> T i+{ bla [i] = bla+}+--- evaluating ---+--- closing "MeasureInFunTele.ma" ---
test/succeed/MeasureInFunTele.ma view
+ test/succeed/MeasuredHerSubst1.golden view
@@ -0,0 +1,77 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MeasuredHerSubst1.ma" ---+--- scope checking ---+--- type checking ---+type Maybe : ^(A : Set) -> Set+term Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term Maybe.just : .[A : Set] -> ^(y0 : A) -> < Maybe.just y0 : Maybe A >+term just_ : .[A : Set] -> A -> Maybe A+term just_ = [\ A ->] \ a -> Maybe.just a+term mapMaybe : .[A : Set] -> .[B : Set] -> (A -> B) -> Maybe A -> Maybe B+{ mapMaybe [A] [B] f Maybe.nothing = Maybe.nothing+; mapMaybe [A] [B] f (Maybe.just a) = Maybe.just (f a)+}+type Ty : + Size -> Set+term Ty.base : .[s!ze : Size] -> .[i < s!ze] -> Ty s!ze+term Ty.base : .[i : Size] -> < Ty.base i : Ty $i >+term Ty.arr : .[s!ze : Size] -> .[i < s!ze] -> ^ Ty i -> ^ Ty i -> Ty s!ze+term Ty.arr : .[i : Size] -> ^(y1 : Ty i) -> ^(y2 : Ty i) -> < Ty.arr i y1 y2 : Ty $i >+type Tm : ^(A : Set) -> + Size -> Set+term Tm.var : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> Tm A s!ze+term Tm.var : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> < Tm.var i y1 : Tm A $i >+term Tm.app : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ Tm A i -> ^ Tm A i -> Tm A s!ze+term Tm.app : .[A : Set] -> .[i : Size] -> ^(y1 : Tm A i) -> ^(y2 : Tm A i) -> < Tm.app i y1 y2 : Tm A $i >+term Tm.abs : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ Ty # -> ^ Tm (Maybe A) i -> Tm A s!ze+term Tm.abs : .[A : Set] -> .[i : Size] -> ^(y1 : Ty #) -> ^(y2 : Tm (Maybe A) i) -> < Tm.abs i y1 y2 : Tm A $i >+term mapTm : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Tm A i -> Tm B i+{ mapTm [A] [B] [i] f (Tm.var [j < i] x) = Tm.var [j] (f x)+; mapTm [A] [B] [i] f (Tm.app [j < i] r s) = Tm.app [j] (mapTm [A] [B] [j] f r) (mapTm [A] [B] [j] f s)+; mapTm [A] [B] [i] f (Tm.abs [j < i] a r) = Tm.abs [j] a (mapTm [Maybe A] [Maybe B] [j] (mapMaybe [A] [B] f) r)+}+term shiftTm : .[A : Set] -> .[i : Size] -> Tm A i -> Tm (Maybe A) i+term shiftTm = [\ A ->] [\ i ->] \ t -> mapTm [A] [Maybe A] [i] (just_ [A]) t+type Res : ^(A : Set) -> +(i : Size) -> Set+term Res.ne : .[A : Set] -> .[i : Size] -> ^(y0 : Tm A #) -> < Res.ne y0 : Res A i >+term Res.nf : .[A : Set] -> .[i : Size] -> ^(y0 : Tm A #) -> ^(y1 : Ty i) -> < Res.nf y0 y1 : Res A i >+term tm : .[A : Set] -> .[i : Size] -> Res A i -> Tm A #+{ tm [A] [i] (Res.ne t) = t+; tm [A] [i] (Res.nf t a) = t+}+term shiftRes : .[A : Set] -> .[i : Size] -> Res A i -> Res (Maybe A) i+{ shiftRes [A] [i] (Res.ne t) = Res.ne (shiftTm [A] [#] t)+; shiftRes [A] [i] (Res.nf t a) = Res.nf (shiftTm [A] [#] t) a+}+term varRes : .[A : Set] -> .[i : Size] -> A -> Res A i+term varRes = [\ A ->] [\ i ->] \ x -> Res.ne (Tm.var [#] x)+term absRes : .[A : Set] -> .[i : Size] -> Ty # -> Res (Maybe A) # -> Res A i+term absRes = [\ A ->] [\ i ->] \ a -> \ r -> Res.ne (Tm.abs [#] a (tm [Maybe A] [#] r))+term appRes : .[A : Set] -> .[i : Size] -> Res A # -> Res A # -> Res A i+term appRes = [\ A ->] [\ i ->] \ t -> \ u -> Res.ne (Tm.app [#] (tm [A] [#] t) (tm [A] [#] u))+type Env : Set -> Set -> Size -> Set+type Env = \ A -> \ B -> \ i -> A -> Res B i+term sg : .[A : Set] -> .[i : Size] -> Tm A # -> Ty i -> Env (Maybe A) A i+{ sg [A] [i] s a Maybe.nothing = Res.nf s a+; sg [A] [i] s a (Maybe.just y) = varRes [A] [i] y+}+term lift : .[A : Set] -> .[B : Set] -> .[i : Size] -> Env A B i -> Env (Maybe A) (Maybe B) i+{ lift [A] [B] [i] rho Maybe.nothing = varRes [Maybe B] [i] Maybe.nothing+; lift [A] [B] [i] rho (Maybe.just x) = shiftRes [B] [i] (rho x)+}+term subst : .[i : Size] -> Ty i -> .[A : Set] -> Tm A # -> Tm (Maybe A) # -> Tm A #+term simsubst : .[i : Size] -> .[j : Size] -> .[A : Set] -> .[B : Set] -> Tm A j -> Env A B i -> Res B i+term normApp : .[i : Size] -> .[B : Set] -> Res B i -> Res B i -> Res B i+{ subst [i] a [A] s t = tm [A] [i] (simsubst [i] [#] [Maybe A] [A] t (sg [A] [i] s a))+}+{ simsubst [i] [j] [A] [B] (Tm.var [j' < j] x) rho = rho x+; simsubst [i] [j] [A] [B] (Tm.abs [j' < j] b t) rho = absRes [B] [i] b (simsubst [i] [j'] [Maybe A] [Maybe B] t (lift [A] [B] [i] rho))+; simsubst [i] [j] [A] [B] (Tm.app [j' < j] t u) rho = let t' : Res B i+ = simsubst [i] [j'] [A] [B] t rho+ in let u' : Res B i+ = simsubst [i] [j'] [A] [B] u rho+ in normApp [i] [B] t' u'+}+{ normApp [i] [B] (Res.nf (Tm.abs [.#] b' r') (Ty.arr [i' < i] b c)) u' = Res.nf (subst [i'] b [B] (tm [B] [i] u') r') c+; normApp [i] [B] t' u' = appRes [B] [i] t' u'+}+--- evaluating ---+--- closing "MeasuredHerSubst1.ma" ---
test/succeed/MeasuredHerSubst1.ma view
@@ -16,7 +16,7 @@ ; mapMaybe A B f (just a) = just (f a) } -sized data Ty : Size -> Set +sized data Ty : Size -> Set { base : [i : Size] -> Ty $i ; arr : [i : Size] -> Ty i -> Ty i -> Ty $i }@@ -30,7 +30,7 @@ fun mapTm : [A, B : Set] -> [i : Size] -> |i| -> (A -> B) -> Tm A i -> Tm B i { mapTm A B i f (var (i > j) x) = var j (f x) ; mapTm A B i f (app (i > j) r s) = app j (mapTm A B j f r) (mapTm A B j f s)-; mapTm A B i f (abs (i > j) a r) = +; mapTm A B i f (abs (i > j) a r) = abs j a (mapTm (Maybe A) (Maybe B) j (mapMaybe A B f) r) } @@ -76,29 +76,29 @@ fun lift : [A, B : Set] -> [i : Size] -> Env A B i -> Env (Maybe A) (Maybe B) i { lift A B i rho (nothing) = varRes (Maybe B) i (nothing) ; lift A B i rho (just x) = shiftRes B i (rho x)-} +} -- hereditary substitution mutual { -fun subst : [i : Size] -> |i,$$0,#| -> Ty i -> +fun subst : [i : Size] -> |i,$$0,#| -> Ty i -> [A : Set] -> Tm A # -> Tm (Maybe A) # -> Tm A # { subst i a A s t = tm A i (simsubst i # (Maybe A) A t (sg A i s a))-} +} -fun simsubst : [i, j : Size] -> |i,$0,j| -> +fun simsubst : [i, j : Size] -> |i,$0,j| -> [A, B : Set] -> Tm A j -> Env A B i -> Res B i { simsubst i j A B (var (j > j') x) rho = rho x-; simsubst i j A B (abs (j > j') b t) rho = - absRes B i b (simsubst i j' (Maybe A) (Maybe B) t (lift A B i rho)) +; simsubst i j A B (abs (j > j') b t) rho =+ absRes B i b (simsubst i j' (Maybe A) (Maybe B) t (lift A B i rho)) ; simsubst i j A B (app (j > j') t u) rho = let t' : Res B i = simsubst i j' A B t rho in let u' : Res B i = simsubst i j' A B u rho in normApp i B t' u' } -fun normApp : [i : Size] -> |i,0,#| -> +fun normApp : [i : Size] -> |i,0,#| -> [B : Set] -> Res B i -> Res B i -> Res B i { normApp i B (nf (abs .# b' r') (arr (i > i') b c)) u' = nf (subst i' b B (tm B i u') r') c
+ test/succeed/MeasuredRose.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MeasuredRose.ma" ---+--- scope checking ---+--- type checking ---+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+term mapList : .[A : Set] -> .[B : Set] -> (A -> B) -> List A -> List B+{ mapList [A] [B] f List.nil = List.nil+; mapList [A] [B] f (List.cons a as) = List.cons (f a) (mapList [A] [B] f as)+}+type Rose : ++(A : Set) -> + Size -> Set+term Rose.rose : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ List (Rose A i) -> Rose A s!ze+term Rose.rose : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : List (Rose A i)) -> < Rose.rose i y1 y2 : Rose A $i >+term mapRose : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Rose A i -> Rose B i+{ mapRose [A] [B] f [i] (Rose.rose [j < i] a rs) = Rose.rose [j] (f a) (mapList [Rose A j] [Rose B j] (mapRose [A] [B] f [j]) rs)+}+term mapRose' : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Rose A i -> Rose B i+{ mapRose' [A] [B] f [i] (Rose.rose [j < i] a rs) = Rose.rose [j] (f a) (mapList [Rose A j] [Rose B j] (mapRose' [A] [B] f [j]) rs)+}+--- evaluating ---+--- closing "MeasuredRose.ma" ---
test/succeed/MeasuredRose.ma view
@@ -14,18 +14,18 @@ -- sized Roses sized data Rose (+ A : Set) : Size -> Set-{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) +{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) } -fun mapRose : [A : Set] -> [B : Set] -> (A -> B) -> +fun mapRose : [A : Set] -> [B : Set] -> (A -> B) -> [i : Size] -> |i| -> Rose A i -> Rose B i-{ mapRose A B f i (rose (i > j) a rs) = +{ mapRose A B f i (rose (i > j) a rs) = rose j (f a) (mapList (Rose A j) (Rose B j) (mapRose A B f j) rs) } -- 2012-01-27 it is also possible to place the measure after the rec.arg.-fun mapRose' : [A : Set] -> [B : Set] -> (A -> B) -> +fun mapRose' : [A : Set] -> [B : Set] -> (A -> B) -> [i : Size] -> Rose A i -> |i| -> Rose B i-{ mapRose' A B f i (rose (i > j) a rs) = +{ mapRose' A B f i (rose (i > j) a rs) = rose j (f a) (mapList (Rose A j) (Rose B j) (mapRose' A B f j) rs) }
+ test/succeed/MergeWith.golden view
@@ -0,0 +1,26 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MergeWith.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type List : Set+term List.nil : < List.nil : List >+term List.cons : ^(y0 : Nat) -> ^(y1 : List) -> < List.cons y0 y1 : List >+term leq : Nat -> Nat -> Bool+{}+term merge : List -> List -> List+term merge_aux : Nat -> List -> List -> Nat -> List -> List -> Bool -> List+{ merge List.nil l = l+; merge l List.nil = l+; merge (List.cons x xs) (List.cons y ys) = merge_aux x xs (List.cons x xs) y ys (List.cons y ys) (leq x y)+}+{ merge_aux x xs xxs y ys yys Bool.true = List.cons x (merge xs yys)+; merge_aux x xs xxs y ys yys Bool.false = List.cons y (merge xxs ys)+}+--- evaluating ---+--- closing "MergeWith.ma" ---
test/succeed/MergeWith.ma view
@@ -9,7 +9,7 @@ } data List : Set-{ nil : List +{ nil : List ; cons : Nat -> List -> List } @@ -24,6 +24,6 @@ } fun merge_aux : Nat -> List -> List -> Nat -> List -> List -> Bool -> List { merge_aux x xs xxs y ys yys true = cons x (merge xs yys)- ; merge_aux x xs xxs y ys yys false = cons y (merge xxs ys) + ; merge_aux x xs xxs y ys yys false = cons y (merge xxs ys) } }
+ test/succeed/MockSig.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MockSig.ma" ---+--- scope checking ---+--- type checking ---+type MockSig : ++(A : Set) -> ++(B : .[A] -> Set) -> Set+term MockSig.pair : .[A : Set] -> .[B : .[A] -> Set] -> ^(fst : A) -> ^(snd : B [fst]) -> < MockSig.pair fst snd : MockSig A B >+term fst : .[A : Set] -> .[B : .[A] -> Set] -> (pair : MockSig A B) -> A+{ fst [A] [B] (MockSig.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : .[A] -> Set] -> (pair : MockSig A B) -> B [fst [A] [B] pair]+{ snd [A] [B] (MockSig.pair #fst #snd) = #snd+}+--- evaluating ---+--- closing "MockSig.ma" ---
test/succeed/MockSig.ma view
+ test/succeed/Mu.golden view
@@ -0,0 +1,44 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Mu.ma" ---+--- scope checking ---+--- type checking ---+type Empty : Set+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Sum : ++(A : Set) -> ++(B : Set) -> Set+term Sum.inl : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Sum.inl y0 : Sum A B >+term Sum.inr : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Sum.inr y0 : Sum A B >+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+type Mu : ++(F : ++ Set -> Set) -> + Size -> Set+term Mu.inn : .[F : ++ Set -> Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^(out : F (Mu F i)) -> Mu F s!ze+term Mu.inn : .[F : ++ Set -> Set] -> .[i : Size] -> ^(out : F (Mu F i)) -> < Mu.inn i out : Mu F $i >+term out : .[F : ++ Set -> Set] -> .[i : Size] -> (inn : Mu F $i) -> F (Mu F i)+{ out [F] [i] (Mu.inn [.i] #out) = #out+}+term myout : .[F : ++ Set -> Set] -> .[i : Size] -> Mu F $i -> F (Mu F i)+{ myout [F] [i] (Mu.inn [.i] t) = t+}+term iter : .[F : ++ Set -> Set] -> (mapF : .[A : Set] -> .[B : Set] -> (A -> B) -> F A -> F B) -> .[G : Set] -> (step : F G -> G) -> .[i : Size] -> Mu F i -> G+{ iter [F] mapF [G] step [i] (Mu.inn [j < i] t) = step (mapF [Mu F j] [G] (iter [F] mapF [G] step [j]) t)+}+type NatF : ++ Set -> Set+type NatF = \ X -> Sum Unit X+type Nat : + Size -> Set+type Nat = Mu NatF+term zero : .[i : Size] -> Nat $i+term zero = [\ i ->] Mu.inn [i] (Sum.inl Unit.unit)+term succ : .[i : Size] -> Nat i -> Nat $i+term succ = [\ i ->] \ n -> Mu.inn [i] (Sum.inr n)+type ListF : ++ Set -> ++ Set -> Set+type ListF = \ A -> \ X -> Sum Unit (Prod A X)+type List : ++ Set -> + Size -> Set+type List = \ A -> Mu (ListF A)+--- evaluating ---+--- closing "Mu.ma" ---
test/succeed/Mu.ma view
@@ -9,7 +9,7 @@ ; inr : B -> Sum A B } data Prod ++(A : Set) ++(B : Set) : Set-{ pair : (fst : A) -> (snd : B) -> Prod A B +{ pair : (fst : A) -> (snd : B) -> Prod A B } sized data Mu ++(F : ++Set -> Set) : +Size -> Set@@ -21,7 +21,7 @@ } -- iteration (universal property of Mu)-fun iter : [F : ++Set -> Set] -> +fun iter : [F : ++Set -> Set] -> (mapF : [A : Set] -> [B : Set] -> (A -> B) -> F A -> F B) -> [G : Set] -> (step : F G -> G) -> [i : Size] -> Mu F i -> G@@ -36,11 +36,11 @@ let Nat : +Size -> Set = Mu NatF let zero : [i : Size] -> Nat ($ i)- = \ i -> inn i (inl unit) + = \ i -> inn i (inl unit) let succ : [i : Size] -> Nat i -> Nat ($ i)- = \ i -> \ n -> inn i (inr n) + = \ i -> \ n -> inn i (inr n) let ListF : ++Set -> ++Set -> Set = \ A -> \ X -> Sum Unit (Prod A X)-let List : ++Set -> +Size -> Set = \ A -> Mu (ListF A) +let List : ++Set -> +Size -> Set = \ A -> Mu (ListF A)
+ test/succeed/MultiSigma.golden view
@@ -0,0 +1,8 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MultiSigma.ma" ---+--- scope checking ---+--- type checking ---+univ test : Set 1+univ test = (A : Set) & (B : Set) & Set+--- evaluating ---+--- closing "MultiSigma.ma" ---
test/succeed/MultiSigma.ma view
+ test/succeed/MutualBigDataKindInf.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MutualBigDataKindInf.ma" ---+--- scope checking ---+--- type checking ---+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+ty-u MaybeBig : Set 1+term MaybeBig.Nothing : < MaybeBig.Nothing : MaybeBig >+term MaybeBig.Just : ^(y0 : Unit) -> ^(y1 : Big) -> < MaybeBig.Just y0 y1 : MaybeBig >+ty-u Big : Set 1+term Big.BigIn : ^(BigOut : Set) -> < Big.BigIn BigOut : Big >+type BigOut : (BigIn : Big) -> Set+{ BigOut (Big.BigIn #BigOut) = #BigOut+}+type Maybe : MaybeBig -> Set -> (Set -> Set) -> Set+{ Maybe MaybeBig.Nothing A F = A+; Maybe (MaybeBig.Just u B) A F = F (BigOut B)+}+--- evaluating ---+--- closing "MutualBigDataKindInf.ma" ---
test/succeed/MutualBigDataKindInf.ma view
@@ -2,7 +2,7 @@ data Unit : Set { unit : Unit } mutual {- + data MaybeBig : Set 1 { Nothing : MaybeBig ; Just : Unit -> Big -> MaybeBig@@ -17,4 +17,4 @@ fun Maybe : MaybeBig -> Set -> (Set -> Set) -> Set { Maybe Nothing A F = A ; Maybe (Just u B) A F = F (BigOut B)-} +}
+ test/succeed/MutualRecordsNoEta.golden view
@@ -0,0 +1,23 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "MutualRecordsNoEta.ma" ---+--- scope checking ---+--- type checking ---+type D : -(i : Size) -> Set+term D.inn : .[i : Size] -> ^(out : R i) -> < D.inn out : D i >+term out : .[i : Size] -> (inn : D i) -> R i+{ out [i] (D.inn #out) = #out+}+type R : -(i : Size) -> Set+term R.delay : .[i : Size] -> ^(force : .[j < i] -> D j) -> < R.delay force : R i >+term force : .[i : Size] -> (delay : R i) -> .[j < i] -> D j+{ force [i] (R.delay #force) = #force+}+term inh : .[i : Size] -> R i+{ inh [i] .force [j < i] = D.inn (inh [j])+}+type Empty : Set+term elim : D # -> (D # -> Empty) -> Empty+{ elim (D.inn r) f = f (r .force [#])+}+--- evaluating ---+--- closing "MutualRecordsNoEta.ma" ---
+ test/succeed/Nested.golden view
@@ -0,0 +1,15 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Nested.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term nested : .[i : Size] -> Nat i -> Nat i+{ nested [i] (Nat.zero [j < i]) = Nat.zero [j]+; nested [i] (Nat.succ [j < i] n) = nested [j] (nested [j] n)+}+--- evaluating ---+--- closing "Nested.ma" ---
test/succeed/Nested.ma view
+ test/succeed/NewSyntaxTour.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "NewSyntaxTour.ma" ---+--- scope checking ---+--- type checking ---+term two : .[A : Set] -> (f : A -> A) -> (a : A) -> A+term two = [\ A ->] \ f -> \ a -> f (f a)+term two1 : .[A : Set] -> (f : A -> A) -> (a : A) -> A+term two1 = [\ A ->] \ f -> \ a -> f (f a)+term two2 : .[A : Set] -> (f : A -> A) -> (a : A) -> A+term two2 = [\ A ->] \ f -> \ a -> f (f a)+block fails as expected, error message:+boundedSize+/// new j <= #+/// new i < v0+/// adding size rel. v1 + 1 <= v0+/// cannot add hypothesis v1 + 1 <= v0 because it is not satisfyable under all possible valuations of the current hypotheses+term twice : .[F : Set -> Set] -> (f : .[A : Set] -> A -> F A) -> .[A : Set] -> (a : A) -> F (F A)+term twice = [\ F ->] \ f -> [\ A ->] \ a -> let [FA : Set]+ = F A+ in let fa : F A+ = f [A] a+ in f [FA] fa+size localLetTel : Size+size localLetTel = let two1 : .[A : Set] -> (f : A -> A) -> (a : A) -> A+ = [\ A ->] \ f -> \ a -> f (f a)+in 0+size localLetIrr : .[A : Set] -> (f : .[A -> A] -> Size) -> .[a : A] -> Size+size localLetIrr = [\ A ->] \ f -> [\ a ->] let [g : (x : A) -> A]+ = \ x -> a+ in f [g]+size localLetIrr1 : .[A : Set] -> (f : .[A -> A] -> Size) -> .[a : A] -> Size+size localLetIrr1 = [\ A ->] \ f -> [\ a ->] let [g : (x : A) -> A]+ = \ x -> a+ in f [g]+--- evaluating ---+--- closing "NewSyntaxTour.ma" ---
+ test/succeed/Nisse2012-02-17.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Nisse2012-02-17.ma" ---+--- scope checking ---+--- type checking ---+type Id : ++(A : Set) -> ^(x : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[x : A] -> < Id.refl : Id A x x >+type Either : ++(A : Set) -> ++(B : Set) -> Set+term Either.left : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Either.left y0 : Either A B >+term Either.right : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Either.right y0 : Either A B >+type P : ++(A : Set) -> Set+{ P A = Either A A+}+type Foo : ++(A : Set) -> P A -> Set+{ Foo A x = (z : A) & Id (P A) x (Either.left z)+}+term foo : .[A : Set] -> (x : P A) -> Foo A x+{ foo [A] (Either.left x) = (x , Id.refl)+}+--- evaluating ---+--- closing "Nisse2012-02-17.ma" ---
+ test/succeed/Nisse2012-03-06.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Nisse2012-03-06.ma" ---+--- scope checking ---+--- type checking ---+type Id : ++(A : Set) -> ^(x : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[x : A] -> < Id.refl : Id A x x >+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Either : ++(A : Set) -> ++(B : Set) -> Set+term Either.left : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> < Either.left y0 : Either A B >+term Either.right : .[A : Set] -> .[B : Set] -> ^(y0 : B) -> < Either.right y0 : Either A B >+type Maybe : ++(A : Set) -> Set+type Maybe = \ A -> Either Unit A+pattern nothing = left unit+pattern just x = right x+ty-u Monad : ^(F : + Set -> Set) -> Set 1+term Monad.monad : .[F : + Set -> Set] -> ^(return : .[A : Set] -> A -> F A) -> ^(bind : .[A : Set] -> .[B : Set] -> F A -> (A -> F B) -> F B) -> ^(leftIdentity : .[A : Set] -> .[B : Set] -> (x : A) -> (f : A -> F B) -> Id (F B) (bind [A] [B] (return [A] x) f) (f x)) -> < Monad.monad return bind leftIdentity : Monad F >+term return : .[F : + Set -> Set] -> (monad : Monad F) -> .[A : Set] -> A -> F A+{ return [F] (Monad.monad #return #bind #leftIdentity) = #return+}+term bind : .[F : + Set -> Set] -> (monad : Monad F) -> .[A : Set] -> .[B : Set] -> F A -> (A -> F B) -> F B+{ bind [F] (Monad.monad #return #bind #leftIdentity) = #bind+}+term leftIdentity : .[F : + Set -> Set] -> (monad : Monad F) -> .[A : Set] -> .[B : Set] -> (x : A) -> (f : A -> F B) -> Id (F B) (bind [F] monad [A] [B] (return [F] monad [A] x) f) (f x)+{ leftIdentity [F] (Monad.monad #return #bind #leftIdentity) = #leftIdentity+}+term maybeT : (F : + Set -> Set) -> (M : Monad F) -> Monad (\ A -> F (Maybe A))+term maybeT = \ F -> \ M -> Monad.monad ([\ A ->] \ x -> return M [Maybe A] (Either.right x)) ([\ A ->] [\ B ->] \ m -> \ f -> bind M [Maybe A] [Maybe B] m (\ x -> case x : Either Unit A+ { Either.left un!t -> return M [Maybe B] (Either.left Unit.unit)+ ; Either.right x -> f x+ })) ([\ A ->] [\ B ->] \ x -> \ f -> leftIdentity M [Maybe A] [Maybe B] (Either.right x) (\ x -> case x : Either Unit A+ { Either.left un!t -> return M [Maybe B] (Either.left Unit.unit)+ ; Either.right x -> f x+ }))+--- evaluating ---+--- closing "Nisse2012-03-06.ma" ---
+ test/succeed/OverloadedConstructors.golden view
@@ -0,0 +1,52 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "OverloadedConstructors.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term one : Nat+term one = Nat.suc Nat.zero+term two : Nat+term two = Nat.suc one+term add : Nat -> Nat -> Nat+{ add Nat.zero n = n+; add (Nat.suc m) n = Nat.suc (add m n)+}+type Fin : ^(n : Nat) -> Set+term Fin.zero : .[n : Nat] -> < Fin.zero : Fin (Nat.suc n) >+term Fin.suc : .[n : Nat] -> ^(i : Fin n) -> < Fin.suc i : Fin (Nat.suc n) >+term weakF1 : .[m : Nat] -> Fin m -> Fin (Nat.suc m)+{ weakF1 [.Nat.suc [m]] Fin.zero = Fin.zero+; weakF1 [.Nat.suc [m]] (Fin.suc i) = Fin.suc (weakF1 [m] i)+}+term weakF : (n : Nat) -> .[m : Nat] -> Fin m -> Fin (add n m)+{ weakF Nat.zero [m] i = i+; weakF (Nat.suc n) [m] i = weakF1 [add n m] (weakF n [m] i)+}+term addF : (n : Nat) -> .[m : Nat] -> Fin n -> Fin m -> Fin (add n m)+{ addF (.Nat.suc n) [m] Fin.zero j = weakF (Nat.suc n) [m] j+; addF (.Nat.suc n) [m] (Fin.suc i) j = Fin.suc (addF n [m] i j)+}+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+term lookupL : .[A : Set] -> (i : Nat) -> (xs : List A) -> A+{ lookupL [A] Nat.zero (List.cons x xs) = x+; lookupL [A] (Nat.suc i) (List.cons x xs) = lookupL [A] i xs+}+type Vec : ++(A : Set) -> ^(n : Nat) -> Set+term Vec.nil : .[A : Set] -> < Vec.nil : Vec A Nat.zero >+term Vec.cons : .[A : Set] -> .[n : Nat] -> ^(head : A) -> ^(tail : Vec A n) -> < Vec.cons head tail : Vec A (Nat.suc n) >+term head : .[A : Set] -> .[n : Nat] -> (cons : Vec A (Nat.suc n)) -> A+{ head [A] [n] (Vec.cons #head #tail) = #head+}+term tail : .[A : Set] -> .[n : Nat] -> (cons : Vec A (Nat.suc n)) -> Vec A n+{ tail [A] [n] (Vec.cons #head #tail) = #tail+}+term lookup : .[A : Set] -> .[n : Nat] -> (i : Fin n) -> (xs : Vec A n) -> A+{ lookup [A] [.Nat.suc [n]] Fin.zero (.Vec.cons x xs) = x+; lookup [A] [.Nat.suc [n]] (Fin.suc i) (.Vec.cons x xs) = lookup [A] [n] i xs+}+--- evaluating ---+--- closing "OverloadedConstructors.ma" ---
+ test/succeed/PTSRule.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "PTSRule.ma" ---+--- scope checking ---+--- type checking ---+mixk T : (i : Size) -> Set $$i+mixk T = \ i -> Set $i -> Set i+mixk U : (i : Size) -> Set ?0+mixk U = \ i -> Set $?1 -> Set ?2+--- evaluating ---+--- closing "PTSRule.ma" ---
+ test/succeed/ParseMultBind.golden view
@@ -0,0 +1,16 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ParseMultBind.ma" ---+--- scope checking ---+--- type checking ---+type K : (A : Set) -> (B : Set) -> Set+type K = \ A -> \ B -> A+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(y0 : A) -> ^(y1 : B) -> < Prod.pair y0 y1 : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> Prod A B -> A+{ fst [A] [B] (Prod.pair a b) = a+}+term snd : .[A : Set] -> .[B : Set] -> (p : Prod A B) -> B+{ snd [A] [B] (Prod.pair a b) = b+}+--- evaluating ---+--- closing "ParseMultBind.ma" ---
test/succeed/ParseMultBind.ma view
+ test/succeed/ParsePipeOperators.golden view
@@ -0,0 +1,54 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ParsePipeOperators.ma" ---+--- scope checking ---+--- type checking ---+term three : .[A : Set] -> (f : A -> A) -> (x : A) -> A+term three = [\ A ->] \ f -> \ x -> f (f (f x))+size sbla : (f : Size -> Size) -> (x : Size) -> (y : Size) -> Size+size sbla = \ f -> \ x -> \ y -> f (x + y)+term threeId : (f : .[A : Set] -> A -> A) -> .[A : Set] -> (x : A) -> A+term threeId = \ f -> [\ A ->] \ x -> f [A] (f [A] (f [A] x))+block fails as expected, error message:+failure+/// new F : (Size -> Set)+/// new i <= #+/// new B : Set+/// not a type: F (i -> B)+/// inferExpr' F (i -> B)+/// checkApp (Size -> Set) eliminated by i -> B+/// checkExpr 3 |- i -> B : Size+/// checkForced fromList [(i,1),(F,0),(B,2)] |- i -> B : Size+/// inferExpr' i -> B+/// inferExpr: expected i to be a type!+size success : .[F : Size -> Set] -> .[i : Size] -> .[B : Set] -> (x : B -> F i) -> Size+size success = [\ F ->] [\ i ->] [\ B ->] \ x -> 0+term one : .[A : Set] -> (f : A -> A) -> A -> A+term one = [\ A ->] \ f -> \ x -> f x+term binApp : .[A : Set] -> .[B : Set] -> .[C : Set] -> (f : A -> B -> C) -> (x : A) -> (y : B) -> C+term binApp = [\ A ->] [\ B ->] [\ C ->] \ f -> \ x -> \ y -> f x y+term redex : .[A : Set] -> A -> A+term redex = [\ A ->] \ x -> let y : A+ = x+ in y+type List : ^(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(head : A) -> ^(tail : List A) -> < List.cons head tail : List A >+term evens : .[A : Set] -> List A -> List A+{ evens [A] List.nil = List.nil+; evens [A] (List.cons x List.nil) = List.nil+; evens [A] (List.cons x (List.cons y xs)) = List.cons x (evens [A] xs)+}+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+term fork : .[A : Set] -> (a : A) -> Prod A A+{ fork [A] a .fst = a+; fork [A] a .snd = a+}+--- evaluating ---+--- closing "ParsePipeOperators.ma" ---
test/succeed/ParsePipeOperators.ma view
@@ -27,7 +27,7 @@ = 0 -- parsed as B -> F i -let one [A : Set] (f : A -> A) : A -> A +let one [A : Set] (f : A -> A) : A -> A = \ x -> f <| x -- parsed as \ x -> f x @@ -41,7 +41,7 @@ = \ x -> x |> \ y -> y -- parsed as \ x -> (\ y -> y) x -data List (A : Set) : Set +data List (A : Set) : Set { nil : List A ; cons (head : A) (tail : List A) : List A }@@ -51,7 +51,7 @@ { evens A nil = nil ; evens A <| cons x <| nil = nil ; evens A <| cons x <| cons y <| xs = cons x <| evens A xs-} +} -- ever tried parens? {- fails@@ -60,7 +60,7 @@ } -} -record Prod ++(A, B : Set) : Set +record Prod ++(A, B : Set) : Set { pair (fst : A) (snd : B) : Prod A B } fields fst, snd @@ -76,5 +76,4 @@ ; fork' A <| a .snd = a } -}-
+ test/succeed/Pattern.golden view
@@ -0,0 +1,44 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Pattern.ma" ---+--- scope checking ---+--- type checking ---+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+mixk if : .[i : Size] -> (A : Set i) -> Bool -> ++(a : A) -> ++(b : A) -> A+{ if [i] A Bool.true a b = a+; if [i] A Bool.false a b = b+}+type If : Bool -> ++(A : Set) -> ++(B : Set) -> Set+{ If Bool.true A B = A+; If Bool.false A B = B+}+type Plus : ++(A : Set) -> ++(B : Set) -> Set+type Plus = \ A -> \ B -> (b : Bool) & If b A B+pattern inl a = (true, a)+pattern inr b = (false, b)+term casePlus : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> C) -> (B -> C) -> Plus A B -> C+{ casePlus [A] [B] [C] f g (Bool.true, a) = f a+; casePlus [A] [B] [C] f g (Bool.false, b) = g b+}+type Maybe : ++(A : Set) -> Set+type Maybe = Plus Unit+pattern nothing = inl unit+pattern just a = inr a+term maybe : .[A : Set] -> .[B : Set] -> B -> (A -> B) -> Maybe A -> B+{ maybe [A] [B] b f (Bool.true, un!t) = b+; maybe [A] [B] b f (Bool.false, a) = f a+}+term mapMaybe : .[A : Set] -> .[B : Set] -> (A -> B) -> Maybe A -> Maybe B+term mapMaybe = [\ A ->] [\ B ->] \ f -> maybe [A] [Maybe B] (Bool.true , Unit.unit) (\ a -> (Bool.false , f a))+type ListF : ++(A : Set) -> ++(X : Set) -> Set+type ListF = \ A -> \ X -> Maybe (A & X)+type List : ++(A : Set) -> ++(i : Size) -> Set+{ List A i = .[j < i] & ListF A (List A j)+}+pattern nil j = (j, nothing)+pattern cons j a as = (j, just (a, as))+--- evaluating ---+--- closing "Pattern.ma" ---
test/succeed/Pattern.ma view
@@ -4,7 +4,7 @@ -- * Booleans -data Bool : Set +data Bool : Set { true : Bool ; false : Bool }
+ test/succeed/PatternParameters.golden view
@@ -0,0 +1,95 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "PatternParameters.ma" ---+--- scope checking ---+--- type checking ---+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Bool : Set+term Bool.false : < Bool.false : Bool >+term Bool.true : < Bool.true : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(n : Nat) -> < Nat.suc n : Nat >+term plus : Nat -> Nat -> Nat+{ plus Nat.zero m = m+; plus (Nat.suc n) m = Nat.suc (plus n m)+}+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(x : A) -> ^(xs : List A) -> < List.cons x xs : List A >+type OldVec : ++(A : Set) -> ^(n : Nat) -> Set+term OldVec.oldvnil : .[A : Set] -> < OldVec.oldvnil : OldVec A Nat.zero >+term OldVec.oldvcons : .[A : Set] -> .[n : Nat] -> ^(oldvhead : A) -> ^(oldvtail : OldVec A n) -> < OldVec.oldvcons n oldvhead oldvtail : OldVec A (Nat.suc n) >+term oldvhead : .[A : Set] -> ^(n : Nat) -> (oldvcons : OldVec A (Nat.suc n)) -> A+{ oldvhead [A] n (OldVec.oldvcons [.n] #oldvhead #oldvtail) = #oldvhead+}+term oldvtail : .[A : Set] -> ^(n : Nat) -> (oldvcons : OldVec A (Nat.suc n)) -> OldVec A n+{ oldvtail [A] n (OldVec.oldvcons [.n] #oldvhead #oldvtail) = #oldvtail+}+type Vec : ++(A : Set) -> ^(n : Nat) -> Set+term Vec.vnil : .[A : Set] -> < Vec.vnil : Vec A Nat.zero >+term Vec.vcons : .[A : Set] -> .[n : Nat] -> ^(vhead : A) -> ^(vtail : Vec A n) -> < Vec.vcons vhead vtail : Vec A (Nat.suc n) >+term vhead : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> A+{ vhead [A] [n] (Vec.vcons #vhead #vtail) = #vhead+}+term vtail : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> Vec A n+{ vtail [A] [n] (Vec.vcons #vhead #vtail) = #vtail+}+term append : .[A : Set] -> (n : Nat) -> .[m : Nat] -> Vec A n -> Vec A m -> Vec A (plus n m)+{ append [A] Nat.zero [m] Vec.vnil ys = ys+; append [A] (Nat.suc n) [m] (Vec.vcons x xs) ys = Vec.vcons x (append [A] n [m] xs ys)+}+type Fin : ^(n : Nat) -> Set+term Fin.fzero : .[n : Nat] -> < Fin.fzero : Fin (Nat.suc n) >+term Fin.fsuc : .[n : Nat] -> ^(i : Fin n) -> < Fin.fsuc i : Fin (Nat.suc n) >+term lookup : .[A : Set] -> (n : Nat) -> (i : Fin n) -> (xs : Vec A n) -> A+{ lookup [A] Nat.zero () Vec.vnil+; lookup [A] (Nat.suc n) Fin.fzero (Vec.vcons x xs) = x+; lookup [A] (Nat.suc n) (Fin.fsuc i) (Vec.vcons x xs) = lookup [A] n i xs+}+type Ty : Set+term Ty.nat : < Ty.nat : Ty >+term Ty.arr : ^(a : Ty) -> ^(b : Ty) -> < Ty.arr a b : Ty >+type Cxt : Set+type Cxt = List Ty+type Var : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term Var.vzero : .[a : Ty] -> .[cxt : List Ty] -> .[a : Ty] -> < Var.vzero : Var (List.cons a cxt) a >+term Var.vsuc : .[a : Ty] -> .[cxt : List Ty] -> .[b : Ty] -> ^(x : Var cxt b) -> < Var.vsuc x : Var (List.cons a cxt) b >+type Tm : ^(cxt : Cxt) -> ^(a : Ty) -> Set+term Tm.var : .[cxt : Cxt] -> .[a : Ty] -> ^(x : Var cxt a) -> < Tm.var x : Tm cxt a >+term Tm.app : .[cxt : List Ty] -> .[b : Ty] -> ^(a : Ty) -> ^(r : Tm cxt (Ty.arr a b)) -> ^(s : Tm cxt a) -> < Tm.app a r s : Tm cxt b >+term Tm.abs : .[cxt : List Ty] -> .[a : Ty] -> .[b : Ty] -> ^(t : Tm (List.cons a cxt) b) -> < Tm.abs t : Tm cxt (Ty.arr a b) >+type Sem : Ty -> Set+{ Sem Ty.nat = Nat+; Sem (Ty.arr a b) = Sem a -> Sem b+}+type Env : Cxt -> Set+{ Env List.nil = Unit+; Env (List.cons a as) = Sem a & Env as+}+term val : (cxt : Cxt) -> .[a : Ty] -> Var cxt a -> Env cxt -> Sem a+{ val (List.cons a cxt) [.a] Var.vzero (v, vs) = v+; val (List.cons a cxt) [b] (Var.vsuc x) (v, vs) = val cxt [b] x vs+}+term sem : (cxt : Cxt) -> (a : Ty) -> Tm cxt a -> Env cxt -> Sem a+{ sem cxt a (Tm.var x) rho = val cxt [a] x rho+; sem cxt b (Tm.app a r s) rho = sem cxt (Ty.arr a b) r rho (sem cxt a s rho)+; sem cxt (Ty.arr a b) (Tm.abs t) rho v = sem (List.cons a cxt) b t (v , rho)+}+type Id : ^(A : Set) -> ^(x : A) -> ^(y : A) -> Set+term Id.refl : .[A : Set] -> .[x : A] -> .[x : A] -> < Id.refl : Id A x x >+term subst : .[A : Set] -> .[P : A -> Set] -> .[x : A] -> .[y : A] -> Id A x y -> P x -> P y+{ subst [A] [P] [x] [.x] Id.refl h = h+}+block fails as expected, error message:+trueIsFalse+/// checkExpr 0 |- refl : Id Bool Bool.true Bool.false+/// checkForced fromList [] |- refl : Id Bool Bool.true Bool.false+/// instConLType'+/// instConType:+cannot match parameters [Bool, Bool.true, Bool.false]+against patterns [A, x, x]+when instantiating type .[A : Set] -> .[x : A] -> .[x : A] -> < Id.refl : Id A x x >+of constructor Id.refl+--- evaluating ---+--- closing "PatternParameters.ma" ---
+ test/succeed/Polarities.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Polarities.ma" ---+--- scope checking ---+--- type checking ---+type Const : ++ Set -> .[Set] -> Set+type Const = \ A -> [\ X ->] A+type DNeg : ^ Set -> + Set -> Set+type DNeg = \ B -> \ A -> (A -> B) -> B+type Empty : Set+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type Cont' : + Set -> Set+type Cont' = DNeg Empty+term cast' : .[i : Size] -> ^ Cont' (Nat i) -> Cont' (Nat #)+term cast' = [\ i ->] \ x -> x+type Cont : +(A : Set) -> Set+term Cont.cont : .[A : Set] -> ^(uncont : DNeg Empty A) -> < Cont.cont uncont : Cont A >+term uncont : .[A : Set] -> (cont : Cont A) -> DNeg Empty A+{ uncont [A] (Cont.cont #uncont) = #uncont+}+term cast : .[i : Size] -> ^ Cont (Nat i) -> Cont (Nat #)+term cast = [\ i ->] \ x -> x+type Id : Nat # -> ++ Set -> Set+{ Id (Nat.zero [.#]) A = A+; Id (Nat.succ [.#] n) A = A+}+term kast : .[i : Size] -> .[n : Nat i] -> Id n (Nat i) -> Id n (Nat #)+term kast = [\ i ->] [\ n ->] \ x -> x+type Tree : -(B : Set) -> ++(A : Set) -> Set+term Tree.leaf : .[B : Set] -> .[A : Set] -> < Tree.leaf : Tree B A >+term Tree.node : .[B : Set] -> .[A : Set] -> ^(y0 : A) -> ^(y1 : B -> Tree B A) -> < Tree.node y0 y1 : Tree B A >+type STree : -(B : Set) -> ++(A : Set) -> + Size -> Set+term STree.sleaf : .[B : Set] -> .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> STree B A s!ze+term STree.sleaf : .[B : Set] -> .[A : Set] -> .[i : Size] -> < STree.sleaf i : STree B A $i >+term STree.snode : .[B : Set] -> .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ (B -> STree B A i) -> STree B A s!ze+term STree.snode : .[B : Set] -> .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : B -> STree B A i) -> < STree.snode i y1 y2 : STree B A $i >+type Mu : ++(F : ++ Set -> Set) -> Set+term Mu.inn : .[F : ++ Set -> Set] -> ^(y0 : F (Mu F)) -> < Mu.inn y0 : Mu F >+--- evaluating ---+--- closing "Polarities.ma" ---
test/succeed/Polarities.ma view
@@ -1,6 +1,6 @@ -- 2010-06-19, 2010-11-09 -let Const : ++ Set -> . Set -> Set +let Const : ++ Set -> . Set -> Set = \ A -> \ X -> A let DNeg : ^ Set -> + Set -> Set@@ -20,7 +20,7 @@ let cast' : [i : Size] -> ^ Cont' (Nat i) -> Cont' (Nat #) = \ i -> \ x -> x -data Cont +(A : Set) : Set +data Cont +(A : Set) : Set { cont : (uncont : DNeg Empty A) -> Cont A } @@ -59,7 +59,7 @@ -(++) = - -(+) = - -(-) = +- -(p) = p + -(p) = p o(o) = o o(++) = . o(+) = .@@ -76,7 +76,7 @@ -------------------------------- p in {++,+,o} Gamma, p(x : A), Gamma' |- x : A- + Gamma, p(x : A) |- t : B ---------------------------- Gamma |- \xt : p(x : A) -> B@@ -84,6 +84,6 @@ Gamma |- r : p(x : A) -> B p(Gamma) |- s : A ---------------------------------------------- Gamma |- r s: B[s/x]- + -}
+ test/succeed/PredDepType.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "PredDepType.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type Pred : (i : Size) -> (x : Nat $i) -> Set+{ Pred i (Nat.succ [.i] n) = Nat i+; Pred i (Nat.zero [.i]) = Nat $i+}+term pred : .[i : Size] -> (x : Nat $i) -> Pred i x+{ pred [i] (Nat.succ [.i] n) = n+; pred [i] (Nat.zero [.i]) = Nat.zero [i]+}+--- evaluating ---+--- closing "PredDepType.ma" ---
test/succeed/PredDepType.ma view
@@ -16,6 +16,6 @@ {- DOES NOT WORK fun minus : [i : Size] -> Nat i -> Nat # -> Nat i { minus i n (zero .#) = n-; minus i n (succ .# m) = minus i (pred i n) m +; minus i n (succ .# m) = minus i (pred i n) m } -}
+ test/succeed/Prelude.golden view
@@ -0,0 +1,40 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Prelude.ma" ---+--- scope checking ---+--- type checking ---+type Empty : Set+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type If : (b : Bool) -> ++(A : Set) -> ++(B : Set) -> Set+{ If Bool.true A B = A+; If Bool.false A B = B+}+type Either : ++(A : Set) -> ++(B : Set) -> Set+type Either = \ A -> \ B -> (b : Bool) & If b B A+pattern left a = (false, a)+pattern right b = (true, b)+type Maybe : ++(A : Set) -> Set+type Maybe = \ A -> Either Unit A+pattern nothing = left unit+pattern just a = right a+type Nat : + Size -> Set+{ Nat i = .[j < i] & Maybe (Nat j)+}+pattern zero j = (j, nothing)+pattern succ j n = (j, just n)+term zer : .[i : Size] -> Nat $i+term zer = [\ i ->] ([0] , (Bool.false , Unit.unit))+term suc : .[i < #] -> (n : Nat i) -> Nat $i+term suc = [\ i ->] \ n -> ([i] , (Bool.true , n))+term suc : .[i : Size] -> (n : Nat i) -> Nat $i+{ suc [i] ([i' < i], m) = ([$i'] , (Bool.true , ([i'] , m)))+}+term plus : .[i : Size] -> (n : Nat i) -> .[j : Size] -> (m : Nat j) -> Nat (i + j)+{ plus [i] ([i' < i], (Bool.false, un!t)) [j] m = m+; plus [i] ([i' < i], (Bool.true, n)) [j] m = suc [i' + j] (plus [i'] n [j] m)+}+--- evaluating ---+--- closing "Prelude.ma" ---
test/succeed/Prelude.ma view
@@ -26,11 +26,11 @@ let zer [i : Size] : Nat $i = zero 0 check let suc [i < #] (n : Nat i) : Nat $i = succ i n -fun suc : [i : Size] (n : Nat i) -> Nat $i +fun suc : [i : Size] (n : Nat i) -> Nat $i { suc i (i', m) = succ $i' (i', m) } -fun plus : [i : Size] -> (n : Nat i) -> +fun plus : [i : Size] -> (n : Nat i) -> [j : Size] -> (m : Nat j) -> Nat (i+j) { plus i (zero i') j m = m ; plus i (succ i' n) j m = suc (i'+j) <| plus i' n j m
+ test/succeed/Prod.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Prod.ma" ---+--- scope checking ---+--- type checking ---+type Prod : ^(A : Set) -> ^(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+--- evaluating ---+--- closing "Prod.ma" ---
+ test/succeed/Projections.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Projections.ma" ---+--- scope checking ---+--- type checking ---+type Sigma : ++(A : Set) -> ++(B : A -> Set) -> Set+term Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+term eta : .[A : Set] -> .[B : Set] -> Sigma A (\ x -> B) -> Sigma A (\ x -> B)+{ eta [A] [B] p = Sigma.pair (fst p) (snd p)+}+term builtinEta : .[A : Set] -> .[B : Set] -> (p : Sigma A (\ x -> B)) -> < Sigma.pair (fst p) (snd p) : Sigma A (\ x -> B) >+term builtinEta = [\ A ->] [\ B ->] \ p -> p+--- evaluating ---+--- closing "Projections.ma" ---
test/succeed/Projections.ma view
@@ -9,6 +9,6 @@ { eta A B p = pair (fst p) (snd p) } -let builtinEta [A, B : Set] (p : Sigma A (\ x -> B)) +let builtinEta [A, B : Set] (p : Sigma A (\ x -> B)) : < pair (fst p) (snd p) : Sigma A (\ x -> B) > = p
+ test/succeed/Rose.golden view
@@ -0,0 +1,19 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Rose.ma" ---+--- scope checking ---+--- type checking ---+type List : ++(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+term mapList : .[A : Set] -> .[B : Set] -> (A -> B) -> List A -> List B+{ mapList [A] [B] f List.nil = List.nil+; mapList [A] [B] f (List.cons a as) = List.cons (f a) (mapList [A] [B] f as)+}+type Rose : ++(A : Set) -> + Size -> Set+term Rose.rose : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ List (Rose A i) -> Rose A s!ze+term Rose.rose : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : List (Rose A i)) -> < Rose.rose i y1 y2 : Rose A $i >+term mapRose : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Rose A i -> Rose B i+{ mapRose [A] [B] f [.$i] (Rose.rose [i] a rs) = Rose.rose [i] (f a) (mapList [Rose A i] [Rose B i] (mapRose [A] [B] f [i]) rs)+}+--- evaluating ---+--- closing "Rose.ma" ---
test/succeed/Rose.ma view
@@ -9,11 +9,11 @@ } sized data Rose (+ A : Set) : Size -> Set-{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) +{ rose : [i : Size] -> A -> List (Rose A i) -> Rose A ($ i) } -fun mapRose : [A : Set] -> [B : Set] -> (A -> B) -> +fun mapRose : [A : Set] -> [B : Set] -> (A -> B) -> [i : Size] -> Rose A i -> Rose B i-{ mapRose A B f .($ i) (rose i a rs) = +{ mapRose A B f .($ i) (rose i a rs) = rose i (f a) (mapList (Rose A i) (Rose B i) (mapRose A B f i) rs) }
+ test/succeed/SP.golden view
@@ -0,0 +1,26 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "SP.ma" ---+--- scope checking ---+--- type checking ---+type Str : ++(A : Set) -> - Size -> Set+term Str.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Str A i) -> < Str.cons i y1 y2 : Str A $i >+type A : Set+{}+type B : Set+{}+type SP' : ++(X : Set) -> + Size -> Set+term SP'.get : .[X : Set] -> .[s!ze : Size] -> .[j < s!ze] -> ^ (A -> SP' X j) -> SP' X s!ze+term SP'.get : .[X : Set] -> .[j : Size] -> ^(y1 : A -> SP' X j) -> < SP'.get j y1 : SP' X $j >+term SP'.out : .[X : Set] -> .[s!ze : Size] -> .[j < s!ze] -> ^ X -> SP' X s!ze+term SP'.out : .[X : Set] -> .[j : Size] -> ^(y1 : X) -> < SP'.out j y1 : SP' X $j >+type SP : - Size -> Set+term SP.put : .[i : Size] -> ^(y1 : B) -> ^(y2 : SP' (SP i) #) -> < SP.put i y1 y2 : SP $i >+term run' : .[i : Size] -> (SP i -> Str A # -> Str B i) -> .[j : Size] -> SP' (SP i) j -> Str A # -> Str B i+{ run' [i] r [j] (SP'.get [k < j] f) (Str.cons [.#] a as) = run' [i] r [k] (f a) as+; run' [i] r [j] (SP'.out [k < j] sp) as = r sp as+}+term run : .[i : Size] -> SP i -> Str A # -> Str B i+{ run $[i < #] (SP.put [.i] b sp) as = Str.cons [i] b (run' [i] (run [i]) [#] sp as)+}+--- evaluating ---+--- closing "SP.ma" ---
test/succeed/SP.ma view
@@ -11,12 +11,12 @@ fun A : Set {} fun B : Set {} -sized data SP' (+ X : Set) : Size -> Set +sized data SP' (+ X : Set) : Size -> Set { get : [j : Size] -> (A -> SP' X j) -> SP' X ($ j) ; out : [j : Size] -> X -> SP' X ($ j) } -sized codata SP : Size -> Set +sized codata SP : Size -> Set { put : [i : Size] -> B -> SP' (SP i) # -> SP ($ i) } @@ -29,5 +29,4 @@ cofun run : [i : Size] -> SP i -> Str A # -> Str B i { run ($ i) (put .i b sp) as = cons i b (run' i (run i) # sp as) }-
+ test/succeed/ScopeCheckFunDef.golden view
@@ -0,0 +1,24 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ScopeCheckFunDef.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term not : Bool -> Bool+{ not Bool.true = Bool.false+; not Bool.false = Bool.true+}+term notnot : Bool -> Bool+{ notnot x = not (not x)+}+type T : Bool -> Set+{ T Bool.true = Bool+; T Bool.false = Bool+}+term f : (b : Bool) -> T b -> T b+{ f Bool.true x = x+; f Bool.false x = x+}+--- evaluating ---+--- closing "ScopeCheckFunDef.ma" ---
+ test/succeed/SgPredWrongMon.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "SgPredWrongMon.ma" ---+--- scope checking ---+--- type checking ---+univ Pred : - Set -> Set 1+univ Pred = \ A -> A -> Set+type Sg : ++(A : Set) -> ^ A -> Set+term Sg.sg : .[A : Set] -> .[elem : A] -> < Sg.sg elem : Sg A elem >+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type Sg' : +(A : Set) -> A -> Set+type Sg' = Sg+--- evaluating ---+--- closing "SgPredWrongMon.ma" ---
test/succeed/SgPredWrongMon.ma view
+ test/succeed/SolverBugStreamFixed.golden view
@@ -0,0 +1,120 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "SolverBugStreamFixed.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term ifthenelse : Bool -> .[A : Set] -> A -> A -> A+{ ifthenelse Bool.tt [A] a1 a2 = a1+; ifthenelse Bool.ff [A] a1 a2 = a2+}+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type Nat : Set+type Nat = SNat #+term add : Nat -> Nat -> Nat+{ add (SNat.zero [.#]) = \ y -> y+; add (SNat.succ [.#] x) = \ y -> SNat.succ [#] (add x y)+}+term leq : Nat -> Nat -> Bool+{ leq (SNat.zero [.#]) y = Bool.tt+; leq (SNat.succ [.#] x) (SNat.zero [.#]) = Bool.ff+; leq (SNat.succ [.#] x) (SNat.succ [.#] y) = leq x y+}+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] x xs) = xs+}+term head : .[A : Set] -> .[i : Size] -> Stream A $i -> A+{ head [A] [i] (Stream.cons [.i] x xs) = x+}+term nth : .[A : Set] -> .[i : Size] -> SNat i -> Stream A i -> A+{ nth [A] [i] (SNat.zero [j < i]) xs = head [A] [j] xs+; nth [A] [i] (SNat.succ [j < i] n) xs = nth [A] [j] n (tail [A] [j] xs)+}+term map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+term zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> .[i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith [A] [B] [C] f $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] f [i] as bs)+}+term merge : .[i : Size] -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ merge $[i < #] le (Stream.cons [.i] x xs) (Stream.cons [.i] y ys) = ifthenelse (le x y) [Stream Nat $i] (Stream.cons [i] x (merge [i] le xs (Stream.cons [i] y ys))) (Stream.cons [i] y (merge [i] le (Stream.cons [i] x xs) ys))+}+term n0 : Nat+term n0 = SNat.zero [#]+term n1 : Nat+term n1 = SNat.succ [#] n0+term n2 : Nat+term n2 = SNat.succ [#] n1+term n3 : Nat+term n3 = SNat.succ [#] n2+term n4 : Nat+term n4 = SNat.succ [#] n3+term n5 : Nat+term n5 = SNat.succ [#] n4+term double : Nat -> Nat+term double = \ n -> add n n+term triple : Nat -> Nat+term triple = \ n -> add n (double n)+term ham : .[i : Size] -> Stream Nat i+{ ham $[i < #] = Stream.cons [i] n1 (merge [i] leq (map [Nat] [Nat] [i] double (ham [i])) (map [Nat] [Nat] [i] triple (ham [i])))+}+term fib : .[i : Size] -> Stream Nat i+{ fib $[i < #] = Stream.cons [i] n0 (zipWith [Nat] [Nat] [Nat] add [i] (Stream.cons [i] n1 (fib [i])) (fib [i]))+}+term fibIter' : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream Nat i+{ fibIter' x y $[i < #] = Stream.cons [i] x (fibIter' y (add x y) [i])+}+term fibIter : Stream Nat #+term fibIter = fibIter' n1 n1 [?14]+term fibIter4 : Nat+term fibIter4 = nth [Nat] [#] n4 fibIter+term fib1 : Nat+term fib1 = nth [Nat] [#] n1 (fib [#])+term fib2 : Nat+term fib2 = nth [Nat] [#] n2 (fib [#])+term fib3 : Nat+term fib3 = nth [Nat] [#] n3 (fib [#])+term fib4 : Nat+term fib4 = nth [Nat] [#] n4 (fib [#])+term fib5 : Nat+term fib5 = nth [Nat] [#] n5 (fib [#])+type Leq : ^ Nat -> ^ Nat -> Set+term Leq.lqz : .[x : Nat] -> < Leq.lqz x : Leq (SNat.zero [#]) x >+term Leq.lqs : .[x : Nat] -> .[y : Nat] -> ^(y2 : Leq x y) -> < Leq.lqs x y y2 : Leq (SNat.succ [#] x) (SNat.succ [#] y) >+type Increasing : - Size -> ^ Stream Nat # -> Set+term Increasing.inc : .[i : Size] -> .[x : Nat] -> .[y : Nat] -> ^(y3 : Leq x y) -> .[tl : Stream Nat #] -> ^(y5 : Increasing i (Stream.cons [#] y tl)) -> < Increasing.inc i x y y3 tl y5 : Increasing $i (Stream.cons [#] x (Stream.cons [#] y tl)) >+type Eq : ++(A : Set) -> ^ A -> ^ A -> Set+term Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl a : Eq A a a >+term proof : Eq (Stream Nat #) (tail [Nat] [#] fibIter) (tail [Nat] [#] fibIter)+term proof = Eq.refl [tail [Nat] [#] fibIter]+term succ_ : .[i : Size] -> SNat i -> SNat $i+term succ_ = [\ i ->] \ x -> SNat.succ [i] x+term evil : .[i : Size] -> Stream Nat i+{ evil $[i < #] = map [Nat] [Nat] [$i] (succ_ [#]) (Stream.cons [i] (SNat.zero [#]) (evil [i]))+}+term cons_ : .[A : Set] -> .[i : Size] -> A -> Stream A i -> Stream A $i+term cons_ = [\ A ->] [\ i ->] \ a -> \ as -> Stream.cons [i] a as+term dmerge : .[A : Set] -> .[i : Size] -> Stream (Stream A i) i -> Stream A i+{ dmerge [A] $[i < #] (Stream.cons [.i] ys yss) = Stream.cons [i] (head [A] [i] ys) (dmerge [A] [i] (zipWith [A] [Stream A i] [Stream A i] (cons_ [A] [i]) [i] (tail [A] [i] ys) yss))+}+--- evaluating ---+fibIter4 has whnf (head (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (fibIter' n1 n1 ?14))))))+fibIter4 evaluates to head (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (tail (SNat #) # (fibIter' (SNat.succ # (SNat.zero #)) (SNat.succ # (SNat.zero #)) ?14)))))+fib1 has whnf SNat.succ{i = #; y1 = SNat.zero{i = #}}+fib1 evaluates to SNat.succ # (SNat.zero #)+fib2 has whnf SNat.succ{i = #; y1 = SNat.zero{i = #}}+fib2 evaluates to SNat.succ # (SNat.zero #)+fib3 has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}+fib3 evaluates to SNat.succ # (SNat.succ # (SNat.zero #))+fib4 has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}}+fib4 evaluates to SNat.succ # (SNat.succ # (SNat.succ # (SNat.zero #)))+fib5 has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}}}}+fib5 evaluates to SNat.succ # (SNat.succ # (SNat.succ # (SNat.succ # (SNat.succ # (SNat.zero #)))))+--- closing "SolverBugStreamFixed.ma" ---
test/succeed/SolverBugStreamFixed.ma view
@@ -1,6 +1,6 @@ -- Booleans ---------------------------------------------------------- -data Bool : Set +data Bool : Set { tt : Bool ; ff : Bool }@@ -12,76 +12,76 @@ -- Nat --------------------------------------------------------------- -sized data SNat : Size -> Set +sized data SNat : Size -> Set { zero : [i : Size] -> SNat ($ i)-; succ : [i : Size] -> SNat i -> SNat ($ i) +; succ : [i : Size] -> SNat i -> SNat ($ i) } let Nat : Set = SNat # -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add (zero .#) = \ y -> y ; add (succ .# x) = \ y -> succ # (add x y) } fun leq : Nat -> Nat -> Bool { leq (zero .#) y = tt-; leq (succ .# x) (zero .#) = ff -; leq (succ .# x) (succ .# y) = leq x y +; leq (succ .# x) (zero .#) = ff+; leq (succ .# x) (succ .# y) = leq x y } -- Stream ------------------------------------------------------------ -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) }- + fun tail : [A : Set] -> [i : Size] -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs } -fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A +fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A { head A i (cons .i x xs) = x } -fun nth : [A : Set] -> [i : Size] -> SNat i -> Stream A i -> A +fun nth : [A : Set] -> [i : Size] -> SNat i -> Stream A i -> A { nth A i (zero (i > j)) xs = head A j xs-; nth A i (succ (i > j) n) xs = nth A j n (tail A j xs) +; nth A i (succ (i > j) n) xs = nth A j n (tail A j xs) } -- map, zip, merge --------------------------------------------------- -cofun map : [A : Set] -> [B : Set] -> [i : Size] -> - (A -> B) -> Stream A i -> Stream B i +cofun map : [A : Set] -> [B : Set] -> [i : Size] ->+ (A -> B) -> Stream A i -> Stream B i { map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) } cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] -> (A -> B -> C) -> [i : Size] ->- Stream A i -> Stream B i -> Stream C i + Stream A i -> Stream B i -> Stream C i {- zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = - cons i (f a b) (zipWith A B C f i as bs) + zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+ cons i (f a b) (zipWith A B C f i as bs) } -cofun merge : [i : Size] -> (Nat -> Nat -> Bool) -> +cofun merge : [i : Size] -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i {-merge ($ i) le (cons .i x xs) (cons .i y ys) = +merge ($ i) le (cons .i x xs) (cons .i y ys) = ifthenelse (le x y) (Stream Nat _) (cons _ x (merge _ le xs (cons _ y ys)))- (cons _ y (merge _ le (cons _ x xs) ys)) + (cons _ y (merge _ le (cons _ x xs) ys)) } {--cofun merge : [i : Size] -> (Nat -> Nat -> Bool) -> +cofun merge : [i : Size] -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i {-merge .($ i) le (cons .i x xs) (cons i y ys) = +merge .($ i) le (cons .i x xs) (cons i y ys) = ifthenelse (le x y) (Stream Nat _) (cons _ x (merge _ le xs (cons _ y ys)))- (cons _ y (merge _ le (cons _ x xs) ys)) + (cons _ y (merge _ le (cons _ x xs) ys)) } -} @@ -101,22 +101,22 @@ cofun ham : [i : Size] -> Stream Nat i {- ham ($ i) = cons _ n1 (merge i leq (map Nat Nat i double (ham i)) + ham ($ i) = cons _ n1 (merge i leq (map Nat Nat i double (ham i)) (map Nat Nat i triple (ham i))) } {- -- THIS SHOULD NOT TYPECHECK!!-cofun map2 : [i : Size] -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : [i : Size] -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) = +map2 .($ ($ i)) f (cons .($ i) u (cons i x xl)) = cons _ (f u) (cons _ (f x) (map2 _ f xl)) } cofun ham2 : [i : Size] -> Stream Nat i {- ham2 ($ i) = cons _ n1 (merge i leq (map2 i double (ham2 i)) + ham2 ($ i) = cons _ n1 (merge i leq (map2 i double (ham2 i)) (map2 i triple (ham2 i))) } @@ -148,23 +148,23 @@ cofun fib : [i : Size] -> Stream Nat i {- fib ($ i) = cons _ n0 (zipWith Nat Nat Nat add i + fib ($ i) = cons _ n0 (zipWith Nat Nat Nat add i (cons _ n1 (fib i)) (fib i)) } -cofun fibIter' : (x : Nat) -> (y : Nat) -> [i : Size] -> Stream Nat i +cofun fibIter' : (x : Nat) -> (y : Nat) -> [i : Size] -> Stream Nat i { fibIter' x y ($ i) = cons _ x (fibIter' y (add x y) _)-} +} let fibIter : Stream Nat # = (fibIter' n1 n1 _) -------------------------------------------- --- fibIter(4) = 5 -eval let fibIter4 : Nat = nth Nat # n4 fibIter +-- fibIter(4) = 5+eval let fibIter4 : Nat = nth Nat # n4 fibIter eval let fib1 : Nat = nth Nat # n1 (fib #) eval let fib2 : Nat = nth Nat # n2 (fib #)@@ -176,15 +176,15 @@ -------------------------------------------- data Leq : Nat -> Nat -> Set-{ lqz : (x : Nat) -> Leq (zero #) x +{ lqz : (x : Nat) -> Leq (zero #) x ; lqs : (x : Nat) -> (y : Nat) -> Leq x y -> Leq (succ # x) (succ # y) } sized codata Increasing : Size -> Stream Nat # -> Set {-inc : [i : Size] -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) -> +inc : [i : Size] -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) -> Increasing i (cons # y tl) ->- Increasing ($ i) (cons # x (cons # y tl)) + Increasing ($ i) (cons # x (cons # y tl)) } @@ -193,7 +193,7 @@ refl : [a : A] -> Eq A a a } -let proof : Eq (Stream Nat #) (tail Nat # fibIter) (tail Nat # fibIter) = +let proof : Eq (Stream Nat #) (tail Nat # fibIter) (tail Nat # fibIter) = refl (tail Nat # fibIter) @@ -207,21 +207,20 @@ evil ($ i) = map Nat Nat _ (succ_ _) (cons _ (zero _) (evil _)) } --- eval const zzz : Nat = head # (z #) +-- eval const zzz : Nat = head # (z #) -- convolution (Shin-Cheng Mu)- + let cons_ : [A : Set] -> [i : Size] -> A -> Stream A i -> Stream A $i = \ A i a as -> cons i a as cofun dmerge : [A : Set] -> [i : Size] -> Stream (Stream A i) i -> Stream A i {-dmerge A ($ i) (cons .i ys yss) = +dmerge A ($ i) (cons .i ys yss) = cons i (head A _ ys) (dmerge A i- (zipWith A (Stream A _) (Stream A _) (cons_ A _) i + (zipWith A (Stream A _) (Stream A _) (cons_ A _) i (tail A _ ys) yss)) }-
+ test/succeed/Squash.golden view
@@ -0,0 +1,102 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Squash.ma" ---+--- scope checking ---+--- type checking ---+type Id : .[A : Set] -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id [A] a a >+term elimId : .[A : Set] -> .[P : A -> Set] -> .[a : A] -> .[b : A] -> .[Id [A] a b] -> P a -> P b+{ elimId [A] [P] [a] [.a] [Id.refl] h = h+}+type Ex : ^(A : Set) -> ^(P : A -> Set) -> Set+term Ex.exIntro : .[A : Set] -> .[P : A -> Set] -> .[a : A] -> ^(y1 : P a) -> < Ex.exIntro a y1 : Ex A P >+type Exists : .[i : Size] -> ^(A : Set i) -> ^(P : A -> Set) -> Set+term Exists.ExIntro : .[i : Size] -> .[A : Set i] -> .[P : A -> Set] -> .[a : A] -> ^(y1 : P a) -> < Exists.ExIntro a y1 : Exists [i] A P >+mixk proj1 : .[i : Size] -> .[A : Set i] -> .[P : A -> Set] -> Exists [i] A P -> A+block fails as expected, error message:+proj1+/// clause 1+/// right hand side+/// checkExpr 5 |- a : A+/// inferExpr' a+/// inferExpr: variable a : A may not occur+/// , because it is marked as erased+term ExElim : .[i : Size] -> .[A : Set i] -> .[P : A -> Set] -> Exists [i] A P -> .[C : Set] -> (.[a : A] -> P a -> C) -> C+{ ExElim [i] [A] [P] (Exists.ExIntro [a] p) [C] k = k [a] p+}+type Subset : ^(A : Set) -> ^(P : A -> Set) -> Set+term Subset.inSub : .[A : Set] -> .[P : A -> Set] -> ^(outSub : A) -> .[y1 : P outSub] -> < Subset.inSub outSub y1 : Subset A P >+term outSub' : .[A : Set] -> .[P : A -> Set] -> Subset A P -> A+{ outSub' [A] [P] (Subset.inSub a [p]) = a+}+type Prf : ++(A : Set) -> Set+term Prf.prf : .[A : Set] -> .[y0 : A] -> < Prf.prf y0 : Prf A >+term proofIrr : .[A : Set] -> .[a : Prf A] -> .[b : Prf A] -> Id [Prf A] a b+{ proofIrr [A] [Prf.prf [a]] [Prf.prf [b]] = Id.refl+}+term proofIrr' : .[A : Set] -> .[a : Prf A] -> .[b : Prf A] -> Id [Prf A] a b+block fails as expected, error message:+proofIrr'+/// clause 1+/// right hand side+/// checkExpr 3 |- refl : Id (Prf A) a b+/// checkForced fromList [(a,1),(A,0),(b,2)] |- refl : Id (Prf A) a b+/// leqVal' (subtyping) < Id.refl : Id (Prf A) a a > <=+ Id (Prf A) a b+/// leqVal' (subtyping) Id (Prf A) a a <=+ Id (Prf A) a b+/// leqVal' a : Prf A <=^ b : Prf A+/// leqApp: head mismatch a != b+term mapPrf : .[A : Set] -> .[B : Set] -> (A -> B) -> Prf A -> Prf B+{ mapPrf [A] [B] f (Prf.prf [a]) = Prf.prf [f a]+}+term joinPrf : .[A : Set] -> Prf (Prf A) -> Prf A+{ joinPrf [A] (Prf.prf [Prf.prf [a]]) = Prf.prf [a]+}+term bindPrf : .[A : Set] -> .[B : Set] -> Prf A -> (A -> Prf B) -> Prf B+block fails as expected, error message:+bindPrf+/// clause 1+/// right hand side+/// checkExpr 4 |- f a : Prf B+/// inferExpr' f a+/// checkApp (v0::Tm -> {Prf B {B = v1, A = v0}}) eliminated by a+/// inferExpr' a+/// inferExpr: variable a : A may not occur+/// , because it is marked as erased+term bindPrf : .[A : Set] -> .[B : Set] -> Prf A -> (A -> Prf B) -> Prf B+term bindPrf = [\ A ->] [\ B ->] \ pa -> \ f -> joinPrf [B] (mapPrf [A] [Prf B] f pa)+term elimPrf : .[A : Set] -> .[P : Prf A -> Set] -> (f : .[a : A] -> P (Prf.prf [a])) -> .[x : Prf A] -> P x+{ elimPrf [A] [P] f [Prf.prf [a]] = f [a]+}+term isoForall1 : .[A : Set] -> .[B : A -> Set] -> ((x : A) -> Prf (B x)) -> Prf ((x : A) -> B x)+block fails as expected, error message:+isoForall1+/// clause 1+/// right hand side+/// checkExpr 3 |- prf (\ x -> f x) : Prf ((x : A) -> B x)+/// checkForced fromList [(B,1),(A,0),(f,2)] |- prf (\ x -> f x) : Prf ((x : A) -> B x)+/// checkApp (.[y0 : ((x : v0::Tm) -> B x{B = (v1 Up (v0::Tm -> {Set {A = v0}})), A = v0})::Tm] -> < Prf.prf y0 : Prf A >{A = {(x : A) -> B x {B = (v1 Up (v0::Tm -> {Set {A = v0}})), A = v0}}}) eliminated by \ x -> f x+/// checkExpr 3 |- \ x -> f x : (x : A) -> B x+/// checkForced fromList [(B,1),(A,0),(f,2)] |- \ x -> f x : (x : A) -> B x+/// new x : v0+/// checkExpr 4 |- f x : B x+/// leqVal' (subtyping) < f x x : Prf (B x) > <=+ B x+/// leqVal' (subtyping) Prf (B x) <=+ B x+/// leqApp: head mismatch Prf != B+term isoForall2 : .[A : Set] -> .[B : A -> Set] -> Prf ((x : A) -> B x) -> (x : A) -> Prf (B x)+{ isoForall2 [A] [B] (Prf.prf [f]) x = Prf.prf [f x]+}+type Prod : ++(A : Set) -> ++(B : Set) -> Set+term Prod.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> A+{ fst [A] [B] (Prod.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Prod A B) -> B+{ snd [A] [B] (Prod.pair #fst #snd) = #snd+}+term isoAnd1 : .[A : Set] -> .[B : Set] -> Prod (Prf A) (Prf B) -> Prf (Prod A B)+{ isoAnd1 [A] [B] (Prod.pair (Prf.prf [a]) (Prf.prf [b])) = Prf.prf [Prod.pair a b]+}+term isoAnd2 : .[A : Set] -> .[B : Set] -> Prf (Prod A B) -> Prod (Prf A) (Prf B)+{ isoAnd2 [A] [B] (Prf.prf [Prod.pair [a] [b]]) = Prod.pair (Prf.prf [a]) (Prf.prf [b])+}+--- evaluating ---+--- closing "Squash.ma" ---
test/succeed/Squash.ma view
@@ -17,19 +17,19 @@ { exIntro : [a : A] -> P a -> Ex A P } --- Large existentials +-- Large existentials impredicative data Exists [i : Size](A : Set i)(P : A -> Set) : Set { ExIntro : [a : A] -> P a -> Exists i A P } -- projections not definable (weak Sigma)-fail fun proj1 : [i : Size] -> [A : Set i] -> [P : A -> Set] -> +fail fun proj1 : [i : Size] -> [A : Set i] -> [P : A -> Set] -> Exists i A P -> A { proj1 i A P (ExIntro a p) = a -- a cannot appear here! } -- Exists elimination-fun ExElim : [i : Size] -> [A : Set i] -> [P : A -> Set] -> +fun ExElim : [i : Size] -> [A : Set i] -> [P : A -> Set] -> Exists i A P -> [C : Set] -> ([a : A] -> P a -> C) -> C { ExElim i A P (ExIntro a p) C k = k a p }@@ -93,7 +93,7 @@ fun elimPrf : [A : Set] -> [P : Prf A -> Set] -> (f : [a : A] -> P (prf a)) -> [x : Prf A] -> P x-{ elimPrf A P f (prf a) = f a +{ elimPrf A P f (prf a) = f a } -- More laws for bracket types@@ -120,8 +120,7 @@ } fun isoAnd2 : [A, B : Set] -> Prf (Prod A B) -> Prod (Prf A) (Prf B)-{ isoAnd2 A B (prf (pair a b)) = +{ isoAnd2 A B (prf (pair a b)) = pair (prf a) (prf b) }-
+ test/succeed/Stack.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Stack.ma" ---+--- scope checking ---+--- type checking ---+type Maybe : ^(A : Set) -> Set+term Maybe.nothing : .[A : Set] -> < Maybe.nothing : Maybe A >+term Maybe.just : .[A : Set] -> ^(y0 : A) -> < Maybe.just y0 : Maybe A >+type Stack : ^(A : Set) -> - Size -> Set+term Stack.stack : .[A : Set] -> .[i : Size] -> ^(top : Maybe A) -> ^(pop : Stack A i) -> ^(push : A -> Stack A i) -> < Stack.stack i top pop push : Stack A $i >+term top : .[A : Set] -> .[i : Size] -> (stack : Stack A $i) -> Maybe A+{ top [A] [i] (Stack.stack [.i] #top #pop #push) = #top+}+term pop : .[A : Set] -> .[i : Size] -> (stack : Stack A $i) -> Stack A i+{ pop [A] [i] (Stack.stack [.i] #top #pop #push) = #pop+}+term push : .[A : Set] -> .[i : Size] -> (stack : Stack A $i) -> A -> Stack A i+{ push [A] [i] (Stack.stack [.i] #top #pop #push) = #push+}+term pushFunc : .[A : Set] -> .[i : Size] -> (.[j : Size] -> |j| < |i| -> Stack A j -> A -> Stack A j) -> Stack A i -> A -> Stack A i+{ pushFunc [A] $[i < #] f s a = Stack.stack [i] (Maybe.just a) s (f [i] (pushFunc [A] [i] f s a))+}+term pushFix : .[A : Set] -> .[i : Size] -> Stack A i -> A -> Stack A i+{ pushFix [A] $[i < #] = pushFunc [A] [$i] (pushFix [A])+}+term empty : .[A : Set] -> .[i : Size] -> Stack A i+{ empty [A] $[i < #] = Stack.stack [i] Maybe.nothing (empty [A] [i]) (pushFix [A] [i] (empty [A] [i]))+}+--- evaluating ---+--- closing "Stack.ma" ---
test/succeed/Stack.ma view
@@ -11,14 +11,14 @@ (top : Maybe A) -> (pop : Stack A i) -> (push : A -> Stack A i) -> Stack A $i-} +} -- functional to construct push action cofun pushFunc : [A : Set] -> [i : Size] -> |i| -> ([j : Size] -> |j| < |i| -> Stack A j -> A -> Stack A j) -> Stack A i -> A -> Stack A i { pushFunc A ($ i) f s a = stack i (just a) s (f i (pushFunc A i f s a))-} +} -- f : [j : Size] -> |j| < |$i| -> Stack A j -> A -> Stack A j -- s : Stack A $i -- by subtyping@@ -39,16 +39,16 @@ cofun empty : [A : Set] -> [i : Size] -> |i| -> Stack A i { empty A ($ i) = stack i nothing (empty A i) (pushFix A i (empty A i)) }- + {- original circular program -data Stack a = Stack +data Stack a = Stack { top :: Maybe a , pop :: Stack a , push :: a -> Stack a- } + } --- circular auxiliary program to construct stacks +-- circular auxiliary program to construct stacks push' :: Stack a -> a -> Stack a push' s a = s' where s' = Stack (Just a) s (push' s')
+ test/succeed/StreamDupl.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "StreamDupl.ma" ---+--- scope checking ---+--- type checking ---+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >+term head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A+{ head [A] [i] (Stream.cons [.i] #head #tail) = #head+}+term tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i+{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail+}+term evens : .[A : Set] -> .[i : Size] -> Stream A (i + i) -> Stream A i+{ evens [A] $[i < #] (Stream.cons [.(i + i + 1)] a (Stream.cons [.(i + i)] b as)) = Stream.cons [i] a (evens [A] [i] as)+}+--- evaluating ---+--- closing "StreamDupl.ma" ---
test/succeed/StreamDupl.ma view
@@ -1,9 +1,9 @@--- 2010-11-01 +-- 2010-11-01 -sized codata Stream ++(A : Set) : -Size -> Set +sized codata Stream ++(A : Set) : -Size -> Set { cons : [i : Size] -> (head : A) -> (tail : Stream A i) -> Stream A $i }- + cofun evens : [A : Set] -> [i : Size] -> Stream A (i + i) -> Stream A i { evens A ($i) (cons .(i + i + 1) a (cons .(i + i) b as)) = cons i a (evens A i as)
+ test/succeed/StrictBoundedQCoinductive.golden view
@@ -0,0 +1,14 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "StrictBoundedQCoinductive.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type C : Size -> Set+type C = \ i -> .[j : Size] -> |j| < |i| -> Bool+term foo : .[i : Size] -> C i+{ foo $[i < #] [j] = Bool.true+}+--- evaluating ---+--- closing "StrictBoundedQCoinductive.ma" ---
test/succeed/StrictBoundedQCoinductive.ma view
+ test/succeed/UPolyList.golden view
@@ -0,0 +1,9 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "UPolyList.ma" ---+--- scope checking ---+--- type checking ---+ty-u List : .[i : Size] -> ^(A : Set i) -> Set i+term List.nil : .[i : Size] -> .[A : Set i] -> < List.nil : List [i] A >+term List.cons : .[i : Size] -> .[A : Set i] -> ^(y0 : A) -> ^(y1 : List [i] A) -> < List.cons y0 y1 : List [i] A >+--- evaluating ---+--- closing "UPolyList.ma" ---
test/succeed/UPolyList.ma view
@@ -2,4 +2,4 @@ { nil : List i A ; cons : A -> List i A -> List i A }- +
+ test/succeed/Universe.golden view
@@ -0,0 +1,15 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "Universe.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type U : Set+term U.nat : < U.nat : U >+term U.pi : ^(a : U) -> ^(y1 : El a -> U) -> < U.pi a y1 : U >+{ El U.nat = Nat+; El (U.pi a f) = (x : El a) -> El (f x)+}+--- evaluating ---+--- closing "Universe.ma" ---
test/succeed/Universe.ma view
@@ -7,7 +7,7 @@ mutual { - data U : Set + data U : Set { nat : U ; pi : (a : U) -> (El a -> U) -> U }
+ test/succeed/VecNotErased.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "VecNotErased.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(pred : Nat) -> < Nat.succ pred : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero y = y+; add (Nat.succ x) y = Nat.succ (add x y)+}+type Vec' : ++(A : Set) -> ^ Nat -> Set+term Vec'.vnil' : .[A : Set] -> < Vec'.vnil' : Vec' A Nat.zero >+term Vec'.vcons' : .[A : Set] -> .[n : Nat] -> ^(head' : A) -> ^(tail' : Vec' A n) -> < Vec'.vcons' n head' tail' : Vec' A (Nat.succ n) >+term head' : .[A : Set] -> ^(n : Nat) -> (vcons' : Vec' A (Nat.succ n)) -> A+{ head' [A] n (Vec'.vcons' [.n] #head' #tail') = #head'+}+term tail' : .[A : Set] -> ^(n : Nat) -> (vcons' : Vec' A (Nat.succ n)) -> Vec' A n+{ tail' [A] n (Vec'.vcons' [.n] #head' #tail') = #tail'+}+--- evaluating ---+--- closing "VecNotErased.ma" ---
test/succeed/VecNotErased.ma view
@@ -13,14 +13,14 @@ data Vec' (+A : Set) : Nat -> Set { vnil' : Vec' A zero;- vcons' : (n : Nat) -> (head' : A) -> (tail' : Vec' A n) -> Vec' A (succ n) + vcons' : (n : Nat) -> (head' : A) -> (tail' : Vec' A n) -> Vec' A (succ n) } {- data Vec (+A : Set) : Nat -> Set { vnil : Vec A zero;- vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n) + vcons : (head : A) -> [n : Nat] -> (tail : Vec A n) -> Vec A (succ n) } fun length : [A : Set] -> [n : Nat] -> Vec A n -> Nat@@ -29,11 +29,11 @@ length .A .(succ n) (vcons A x n xs) = succ (length A n xs); } -fun append : [A : Set] -> [n : Nat] -> Vec A n -> +fun append : [A : Set] -> [n : Nat] -> Vec A n -> [m : Nat] -> Vec A m -> Vec A (add n m) { append .A .zero (vnil A) m ys = ys;- append .A .(succ n) (vcons A x n xs) m ys = + append .A .(succ n) (vcons A x n xs) m ys = vcons A x (add n m) (append A n xs m ys) } @@ -44,5 +44,5 @@ let vec0vnil : (A : Set) -> (v : Vec A zero) -> Id (Vec A zero) v (vnil A) = \ A -> \ v -> refl (Vec A zero) v - + -}
+ test/succeed/WrapAbsurd.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "WrapAbsurd.ma" ---+--- scope checking ---+--- type checking ---+type Wrap : ++(A : Set) -> Set+term Wrap.wrap : .[A : Set] -> ^(unwrap : A) -> < Wrap.wrap unwrap : Wrap A >+term unwrap : .[A : Set] -> (wrap : Wrap A) -> A+{ unwrap [A] (Wrap.wrap #unwrap) = #unwrap+}+type Empty : Set+term wrap0Elim : Wrap Empty -> Empty+{ wrap0Elim (Wrap.wrap ())+}+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+term wrap1Elim : Wrap Unit -> Empty+block fails as expected, error message:+wrap1Elim+/// clause 1+/// absurd pattern does not match since type Unit is not empty+--- evaluating ---+--- closing "WrapAbsurd.ma" ---
test/succeed/WrapAbsurd.ma view
@@ -8,7 +8,7 @@ -- should succeed fun wrap0Elim : Wrap Empty -> Empty-{ wrap0Elim (wrap ()) +{ wrap0Elim (wrap ()) } data Unit : Set { unit : Unit }@@ -25,7 +25,7 @@ environ : [(".Unit",v0)] context : [[(Set 0)]] pattern : ()- at type : ((unwrap : v0) -> Wrap A{A = v0}) <>+ at type : ((unwrap : v0) -> Wrap A{A = v0}) <> the test whether there are matchingConstructors is too optimistic since v0 is not solved yet to be Unit, it finds no matching constructors
+ test/succeed/absurdPattern.golden view
@@ -0,0 +1,10 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "absurdPattern.ma" ---+--- scope checking ---+--- type checking ---+type Empty : Set+term magic : .[A : Set] -> .[x : Empty] -> A+{ magic [A] [()]+}+--- evaluating ---+--- closing "absurdPattern.ma" ---
test/succeed/absurdPattern.ma view
@@ -1,5 +1,5 @@ data Empty : Set {} fun magic : [A : Set] -> [x : Empty] -> A-{ magic A () +{ magic A () }
+ test/succeed/addWith.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "addWith.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term ote : .[i : Size] -> SNat i -> SNat i+{ ote [.$i] (SNat.zero [i]) = SNat.zero [i]+; ote [.$$i] (SNat.succ [.$i] (SNat.zero [i])) = SNat.zero [i]+; ote [.$$i] (SNat.succ [.$i] (SNat.succ [i] x)) = SNat.succ [$i] (SNat.succ [i] (ote [i] x))+}+term addWith : (.[k : Size] -> SNat k -> SNat k) -> .[i : Size] -> .[j : Size] -> SNat i -> SNat j -> SNat #+{ addWith f [.$i] [j] (SNat.zero [i]) y = y+; addWith f [.$i] [j] (SNat.succ [i] x) y = SNat.succ [#] (addWith f [j] [i] (f [j] y) (f [i] x))+}+term three : SNat #+term three = SNat.succ [#] (SNat.succ [#] (SNat.succ [#] (SNat.zero [#])))+term four : SNat #+term four = SNat.succ [#] three+term bla : SNat #+term bla = addWith ote [#] [#] four three+--- evaluating ---+bla has whnf SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.succ{i = #; y1 = SNat.zero{i = #}}}}+bla evaluates to SNat.succ # (SNat.succ # (SNat.succ # (SNat.zero #)))+--- closing "addWith.ma" ---
test/succeed/addWith.ma view
@@ -9,7 +9,7 @@ fun ote : (i : Size) -> SNat i -> SNat i { ote .($ i) (zero i) = zero i;-ote .($ $ i) (succ .($ i) (zero i)) = zero i; +ote .($ $ i) (succ .($ i) (zero i)) = zero i; ote .($ $ i) (succ .($ i) (succ i x)) = succ ($ i) (succ i (ote i x )) } @@ -18,11 +18,11 @@ fun addWith : ((k : Size ) -> SNat k -> SNat k ) -> (i : Size ) -> (j : Size ) -> SNat i -> SNat j -> SNat # { addWith f .($ i) j (zero i) y = y;-addWith f .($ i) j (succ i x) y = succ # (addWith f j i (f j y) (f i x)) +addWith f .($ i) j (succ i x) y = succ # (addWith f j i (f j y) (f i x)) } -let three : SNat # = succ # (succ # (succ # (zero #))) +let three : SNat # = succ # (succ # (succ # (zero #))) let four : SNat # = succ # three -eval let bla : SNat # = addWith ote # # four three +eval let bla : SNat # = addWith ote # # four three
+ test/succeed/casePair.golden view
@@ -0,0 +1,16 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "casePair.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term xor' : (a : Bool) -> (b : Bool) -> Bool+term xor' = \ a -> \ b -> case (a , b) : Bool & Bool+ { (Bool.true, Bool.true) -> Bool.false+ ; (Bool.false, Bool.true) -> Bool.true+ ; (Bool.true, Bool.false) -> Bool.true+ ; (Bool.false, Bool.false) -> Bool.false+ }+--- evaluating ---+--- closing "casePair.ma" ---
+ test/succeed/caseSList.golden view
@@ -0,0 +1,56 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "caseSList.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.suc m) Nat.zero = Bool.false+; leq (Nat.suc m) (Nat.suc n) = leq m n+}+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+type True : ^ Bool -> Set+{ True b = Id Bool b Bool.true+}+term triv : True Bool.true+term triv = Id.refl+type False : Bool -> Set+{ False b = Id Bool b Bool.false+}+term triv' : False Bool.false+term triv' = Id.refl+term leFalse : (n : Nat) -> (m : Nat) -> False (leq n m) -> True (leq m n)+{ leFalse n Nat.zero p = triv+; leFalse (Nat.suc n) (Nat.suc m) p = leFalse n m p+; leFalse Nat.zero (Nat.suc m) ()+}+type SList : ^ Nat -> Set+term SList.snil : < SList.snil : SList Nat.zero >+term SList.scons : .[shead : Nat] -> ^(stailindex : Nat) -> .[y2 : True (leq stailindex shead)] -> ^(stail : SList stailindex) -> < SList.scons shead stailindex y2 stail : SList shead >+term maxN : Nat -> Nat -> Nat+{ maxN n m = case leq n m : Bool+ { Bool.true -> m+ ; Bool.false -> n+ }+}+term maxLemma : (n : Nat) -> (m : Nat) -> (k : Nat) -> True (leq n k) -> True (leq m k) -> True (leq (maxN n m) k)+{ maxLemma n m k p q = case leq n m : Bool+ { Bool.true -> q+ ; Bool.false -> p+ }+}+term insert : (m : Nat) -> (n : Nat) -> SList n -> SList (maxN n m)+{ insert m .Nat.zero SList.snil = SList.scons [m] Nat.zero [triv] SList.snil+; insert m n (SList.scons [.n] k [p] l) = case leq n m : Bool+ { Bool.true -> SList.scons [m] n [triv] (SList.scons [n] k [p] l)+ ; Bool.false -> SList.scons [n] (maxN k m) [maxLemma k m n p (leFalse n m triv')] (insert m k l)+ }+}+--- evaluating ---+--- closing "caseSList.ma" ---
test/succeed/caseSList.ma view
@@ -1,13 +1,13 @@ -- 2012-01-22 parameters gone from constructors -data Nat : Set +data Nat : Set { zero : Nat ; suc : Nat -> Nat } data Bool : Set { true : Bool-; false : Bool +; false : Bool } fun leq : Nat -> Nat -> Bool@@ -43,13 +43,13 @@ ; scons : (shead : Nat) -> -- I can erase this at compile-time, but -- it should be present at run-time ?? (stailindex : Nat) -> -- this should be erased at run-time ??- [True (leq stailindex shead)] -> - (stail : SList stailindex) -> + [True (leq stailindex shead)] ->+ (stail : SList stailindex) -> SList shead-} +} fun maxN : Nat -> Nat -> Nat-{ maxN n m = case leq n m +{ maxN n m = case leq n m { true -> m ; false -> n }@@ -57,17 +57,17 @@ fun maxLemma : (n : Nat) -> (m : Nat) -> (k : Nat) -> True (leq n k) -> True (leq m k) -> True (leq (maxN n m) k)-{ maxLemma n m k p q = case leq n m +{ maxLemma n m k p q = case leq n m { true -> q ; false -> p- } + } } fun insert : (m : Nat) -> (n : Nat) -> SList n -> SList (maxN n m) { insert m .zero snil = scons m zero triv snil-; insert m n (scons .n k p l) = case leq n m +; insert m n (scons .n k p l) = case leq n m { true -> scons m n triv (scons n k p l)- ; false -> scons n (maxN k m) (maxLemma k m n p (leFalse n m triv')) + ; false -> scons n (maxN k m) (maxLemma k m n p (leFalse n m triv')) (insert m k l) } }
+ test/succeed/conat.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "conat.ma" ---+--- scope checking ---+--- type checking ---+type CoNat : - Size -> Set+term CoNat.zero : .[i : Size] -> < CoNat.zero i : CoNat $i >+term CoNat.succ : .[i : Size] -> ^(y1 : CoNat i) -> < CoNat.succ i y1 : CoNat $i >+type CoNatEq : -(i : Size) -> ^ CoNat i -> ^ CoNat i -> Set+term CoNatEq.eqz : .[i : Size] -> < CoNatEq.eqz i : CoNatEq $i (CoNat.zero [i]) (CoNat.zero [i]) >+term CoNatEq.eqs : .[i : Size] -> .[n : CoNat i] -> .[m : CoNat i] -> ^(y3 : CoNatEq i n m) -> < CoNatEq.eqs i n m y3 : CoNatEq $i (CoNat.succ [i] n) (CoNat.succ [i] m) >+term add : .[i : Size] -> CoNat i -> CoNat i -> CoNat i+{ add $[i < #] (CoNat.zero [.i]) n = n+; add $[i < #] (CoNat.succ [.i] m) n = CoNat.succ [i] (add [i] m n)+}+term mult : .[i : Size] -> CoNat i -> CoNat i -> CoNat i+{ mult $[i < #] (CoNat.zero [.i]) n = CoNat.zero [i]+; mult $[i < #] (CoNat.succ [.i] m) (CoNat.zero [.i]) = CoNat.zero [i]+; mult $[i < #] (CoNat.succ [.i] m) (CoNat.succ [.i] n) = CoNat.succ [i] (add [i] n (mult [i] m (CoNat.succ [i] n)))+}+--- evaluating ---+--- closing "conat.ma" ---
test/succeed/conat.ma view
@@ -1,11 +1,11 @@ sized codata CoNat : Size -> Set-{ zero : [i : Size] -> CoNat ($ i) -; succ : [i : Size] -> CoNat i -> CoNat ($ i) +{ zero : [i : Size] -> CoNat ($ i)+; succ : [i : Size] -> CoNat i -> CoNat ($ i) } sized codata CoNatEq : (i : Size) -> CoNat i -> CoNat i -> Set { eqz : [i : Size] -> CoNatEq ($ i) (zero i) (zero i)-; eqs : [i : Size] -> (n : CoNat i) -> (m : CoNat i) -> +; eqs : [i : Size] -> (n : CoNat i) -> (m : CoNat i) -> CoNatEq i n m -> CoNatEq ($ i) (succ i n) (succ i m) } @@ -37,19 +37,19 @@ -- pexp m n = (n+1)^m - 1 -- pexp 0 n = 0--- pexp (m+1) 0 = 0 --- pexp (m+1) 1 = 2^(m+1) - 1 -- ??? +-- pexp (m+1) 0 = 0+-- pexp (m+1) 1 = 2^(m+1) - 1 -- ??? -- pexp (m+1) (n+2) = 1 + n + (n+2) * pexp m (n+2) -- (n + 2)^(m + 1) = (n+2) * (n+2) ^ m = (n+2) ^ m + n * (n+1) ^ m {- cofun exp : [i : Size] -> CoNat i -> CoNat i -> CoNat i { exp ($ i) (zero .i ) n = succ i (zero i) ; exp ($ i) (succ .i m) (zero .i) = zero i-; exp ($ i) (succ .i m) (succ .i n) = succ i (case i +; exp ($ i) (succ .i m) (succ .i n) = succ i (case i { ($ j) -> case n of { (zero .j) -> ; (succ .j n) ->- } + } }) }
+ test/succeed/countConstructors.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "countConstructors.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term plus : Nat -> Nat -> Nat+{}+term f1 : Nat -> Nat+term g1 : Nat -> Nat+{ f1 Nat.zero = Nat.zero+; f1 (Nat.succ Nat.zero) = Nat.zero+; f1 (Nat.succ (Nat.succ n)) = g1 n+}+{ g1 Nat.zero = Nat.zero+; g1 (Nat.succ n) = f1 (Nat.succ (Nat.succ n))+}+term f : Nat -> Nat+term g : Nat -> Nat+{ f Nat.zero = Nat.zero+; f (Nat.succ Nat.zero) = Nat.zero+; f (Nat.succ (Nat.succ n)) = g n+}+{ g Nat.zero = Nat.zero+; g (Nat.succ n) = plus (f n) (plus (f (Nat.succ n)) (f (Nat.succ (Nat.succ n))))+}+--- evaluating ---+--- closing "countConstructors.ma" ---
test/succeed/countConstructors.ma view
@@ -1,6 +1,6 @@ -- 2010-01-13 -data Nat : Set +data Nat : Set { zero : Nat ; succ : Nat -> Nat }
+ test/succeed/crazys.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "crazys.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term o2e : .[i : Size] -> SNat i -> SNat i+{ o2e [.$i] (SNat.zero [i]) = SNat.zero [i]+; o2e [.$$i] (SNat.succ [.$i] (SNat.zero [i])) = SNat.zero [$i]+; o2e [.$$i] (SNat.succ [.$i] (SNat.succ [i] x)) = SNat.succ [$i] (SNat.succ [i] (o2e [i] x))+}+term crazy : .[i : Size] -> .[j : Size] -> SNat i -> SNat j -> SNat #+{ crazy [.$i] [j] (SNat.zero [i]) y = y+; crazy [.$i] [j] (SNat.succ [i] x) y = SNat.succ [#] (crazy [j] [i] y (o2e [i] x))+}+--- evaluating ---+--- closing "crazys.ma" ---
test/succeed/crazys.ma view
@@ -7,7 +7,7 @@ fun o2e : (i : Size ) -> SNat i -> SNat i { o2e .($ i) (zero i) = zero _;-o2e .($ $ i) (succ .($ i) (zero i)) = zero _; +o2e .($ $ i) (succ .($ i) (zero i)) = zero _; o2e .($ $ i) (succ .($ i) (succ i x)) = succ _ (succ _ (o2e _ x )) } @@ -15,5 +15,5 @@ fun crazy : (i : Size ) -> (j : Size ) -> SNat i -> SNat j -> SNat # { crazy .($ i) j (zero i) y = y;-crazy .($ i) j (succ i x) y = succ _ (crazy _ _ y (o2e _ x)) +crazy .($ i) j (succ i x) y = succ _ (crazy _ _ y (o2e _ x)) }
+ test/succeed/drop.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "drop.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type Stream : - Size -> Set+term Stream.cons : .[i : Size] -> ^(y1 : SNat #) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i >+term drop : .[i : Size] -> SNat i -> Stream # -> Stream #+{ drop [.$i] (SNat.zero [i]) xs = xs+; drop [.$i] (SNat.succ [i] y) (Stream.cons [.#] x xs) = drop [i] y xs+}+--- evaluating ---+--- closing "drop.ma" ---
+ test/succeed/eta.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "eta.ma" ---+--- scope checking ---+--- type checking ---+type P : ^(A : Set) -> ^ (A -> A) -> Set+term P.inn : .[A : Set] -> .[out : A -> A] -> < P.inn out : P A out >+term bla : .[A : Set] -> (f : (A -> A) -> A -> A) -> P (A -> A) f -> P (A -> A) (\ x -> f x)+{ bla [A] f p = p+}+--- evaluating ---+--- closing "eta.ma" ---
test/succeed/eta.ma view
@@ -1,9 +1,9 @@-data P (A : Set) : (A -> A) -> Set +data P (A : Set) : (A -> A) -> Set { inn : (out : A -> A) -> P A out } -fun bla : (A : Set) -> (f : (A -> A) -> (A -> A)) -> +fun bla : (A : Set) -> (f : (A -> A) -> (A -> A)) -> P (A -> A) f -> P (A -> A) (\ x -> f x) { bla A f p = p -- (c .(A -> A) f) = c (A -> A) (\ x -> f x)
+ test/succeed/eta_unit.golden view
@@ -0,0 +1,30 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "eta_unit.ma" ---+--- scope checking ---+--- type checking ---+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type P : Unit -> Set+{ P un!t = Unit+}+term p : (u : Unit) -> P u+{ p x = Unit.unit+}+term q : (u : Unit) -> P u+{ q un!t = Unit.unit+}+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term r' : Bool -> Unit+term r' = \ b -> Unit.unit+term pr' : (b : Bool) -> P (r' b)+term pr' = \ b -> Unit.unit+term r : Bool -> Unit+{ r Bool.true = Unit.unit+; r Bool.false = Unit.unit+}+term pr : (b : Bool) -> P (r b)+term pr = \ b -> Unit.unit+--- evaluating ---+--- closing "eta_unit.ma" ---
test/succeed/eta_unit.ma view
@@ -1,6 +1,6 @@ -- 2009-06-25 eta expansion for the unit type -data Unit : Set +data Unit : Set { unit : Unit }@@ -29,13 +29,13 @@ { true : Bool ; false : Bool }- + let r' : Bool -> Unit = \ b -> unit let pr' : (b : Bool) -> P (r' b)- = \ b -> unit - + = \ b -> unit+ fun r : Bool -> Unit { r true = unit ; r false = unit@@ -44,4 +44,4 @@ -- definitions need also to be eta-expanded -- otherwise the following does not typecheck let pr : (b : Bool) -> P (r b)- = \ b -> unit + = \ b -> unit
+ test/succeed/exists.golden view
@@ -0,0 +1,26 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "exists.ma" ---+--- scope checking ---+--- type checking ---+type Sigma : ^(A : Set) -> ^(B : A -> Set) -> Set+term Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+type Subset : ^(A : Set) -> ^(B : A -> Set) -> Set+term Subset.put : .[A : Set] -> .[B : A -> Set] -> ^(get : A) -> .[prf : B get] -> < Subset.put get prf : Subset A B >+type Exists : ^(A : Set) -> ^(B : A -> Set) -> Set+term Exists.exI : .[A : Set] -> .[B : A -> Set] -> .[a : A] -> ^(prop : B a) -> < Exists.exI a prop : Exists A B >+term exE : .[A : Set] -> .[B : A -> Set] -> .[C : Set] -> Exists A B -> (.[a : A] -> B a -> C) -> C+{ exE [A] [B] [C] (Exists.exI [a] b) k = k [a] b+}+type Bracket : ^(A : Set) -> Set+term Bracket.bI : .[A : Set] -> .[a : A] -> < Bracket.bI a : Bracket A >+term bE : .[A : Set] -> .[C : Set] -> Bracket A -> (.[A] -> C) -> C+{ bE [A] [C] (Bracket.bI [a]) k = k [a]+}+--- evaluating ---+--- closing "exists.ma" ---
test/succeed/exists.ma view
@@ -13,8 +13,8 @@ { exI : [a : A] -> (prop : B a) -> Exists A B } -fun exE : [A : Set] -> [B : A -> Set] -> [C : Set] -> - Exists A B -> ([a : A] -> B a -> C) -> C +fun exE : [A : Set] -> [B : A -> Set] -> [C : Set] ->+ Exists A B -> ([a : A] -> B a -> C) -> C { exE A B C (exI a b) k = k a b }
+ test/succeed/fib.golden view
@@ -0,0 +1,73 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "fib.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(n : Nat) -> < Nat.succ n : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+type Stream : - Size -> Set+term Stream.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i >+term tail : Stream # -> Stream #+{ tail (Stream.cons [.#] x xs) = xs+}+term head : Stream # -> Nat+{ head (Stream.cons [.#] x xs) = x+}+term nth : Nat -> Stream # -> Nat+{ nth Nat.zero xs = head xs+; nth (Nat.succ x) xs = nth x (tail xs)+}+term one : Nat+term one = Nat.succ Nat.zero+term fib' : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream i+{ fib' x y $[i < #] = Stream.cons [i] x (fib' y (add x y) [i])+}+term fib : Stream #+term fib = fib' one one [?2]+term four : Nat+term four = Nat.succ (Nat.succ (Nat.succ one))+term fibfour : Nat+term fibfour = nth four fib+type Leq : ^ Nat -> ^ Nat -> Set+term Leq.lqz : .[x : Nat] -> < Leq.lqz x : Leq Nat.zero x >+term Leq.lqs : .[x : Nat] -> .[y : Nat] -> ^(y2 : Leq x y) -> < Leq.lqs x y y2 : Leq (Nat.succ x) (Nat.succ y) >+type Increasing : - Size -> ^ Stream # -> Set+term Increasing.inc : .[i : Size] -> .[x : Nat] -> .[y : Nat] -> ^(y3 : Leq x y) -> .[tl : Stream #] -> ^(y5 : Increasing i (Stream.cons [#] y tl)) -> < Increasing.inc i x y y3 tl y5 : Increasing $i (Stream.cons [#] x (Stream.cons [#] y tl)) >+type Eq : ++(A : Set) -> ^(a : A) -> ^ A -> Set+term Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl : Eq A a a >+term proof : Eq (Stream #) (tail fib) (tail fib)+term proof = Eq.refl+term double : Stream # -> Stream #+term double = \ s -> Stream.cons [?3] (head s) s+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term leq : Nat -> Nat -> Bool+{ leq Nat.zero y = Bool.tt+; leq (Nat.succ x) Nat.zero = Bool.ff+; leq (Nat.succ x) (Nat.succ y) = leq x y+}+term ite : Bool -> .[A : Set] -> A -> A -> A+{ ite Bool.tt [A] a1 a2 = a1+; ite Bool.ff [A] a1 a2 = a2+}+term merge : .[i : Size] -> (Nat -> Nat -> Bool) -> Stream # -> Stream # -> Stream i+{ merge $[i < #] le (Stream.cons [.#] x xs) (Stream.cons [.#] y ys) = ite (le x y) [Stream $i] (Stream.cons [i] x (merge [i] le xs (Stream.cons [#] y ys))) (Stream.cons [i] y (merge [i] le (Stream.cons [#] x xs) ys))+}+term first : .[A : Set] -> .[B : Set] -> A -> B -> A+{ first [A] [B] a b = a+}+term map : .[i : Size] -> (Nat -> Nat) -> Stream i -> Stream i+{ map $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [i] f xl)+}+term evil : .[i : Size] -> Stream i+{ evil $[i < #] = map [$i] (\ y -> Nat.succ y) (Stream.cons [i] Nat.zero (evil [i]))+}+--- evaluating ---+fibfour has whnf (head (tail (tail (tail (tail (fib' one one ?2))))))+fibfour evaluates to head (tail (tail (tail (tail (fib' (Nat.succ Nat.zero) (Nat.succ Nat.zero) ?2)))))+--- closing "fib.ma" ---
test/succeed/fib.ma view
@@ -2,7 +2,7 @@ data Nat : Set { zero : Nat;- succ : (n : Nat) -> Nat + succ : (n : Nat) -> Nat } fun add : Nat -> Nat -> Nat {@@ -13,7 +13,7 @@ sized codata Stream : Size -> Set { cons : (i : Size) -> Nat -> Stream i -> Stream ($ i) }- + fun tail : Stream # -> Stream # { tail (cons .# x xs) = xs }@@ -27,31 +27,31 @@ head .($ i) (cons i n ns) = n } -cofun zipWith : (Nat -> Nat -> Nat ) -> ( i : Size ) - -> Stream i -> Stream i -> Stream i {- zipWith f ($ i) as bs = - cons i (f (head i as) (head i bs)) (zipWith f i (tail i as) (tail i bs)) +cofun zipWith : (Nat -> Nat -> Nat ) -> ( i : Size )+ -> Stream i -> Stream i -> Stream i {+ zipWith f ($ i) as bs =+ cons i (f (head i as) (head i bs)) (zipWith f i (tail i as) (tail i bs)) } -} fun nth : Nat -> Stream # -> Nat { nth zero xs = head xs;- nth (succ x) xs = nth x (tail xs) + nth (succ x) xs = nth x (tail xs) } let one : Nat = (succ zero) -cofun fib' : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream i +cofun fib' : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream i { fib' x y ($ i) = cons _ x (fib' y (add x y) _)-} +} let fib : Stream # = (fib' one one _) let four : Nat = (succ (succ (succ one))) --- fib(four) = 5 -eval let fibfour : Nat = nth four fib +-- fib(four) = 5+eval let fibfour : Nat = nth four fib --------------------------------------------@@ -65,9 +65,9 @@ sized codata Increasing : Size -> Stream # -> Set {-inc : (i : Size ) -> (x : Nat ) -> (y : Nat ) -> Leq x y -> (tl : Stream # ) -> +inc : (i : Size ) -> (x : Nat ) -> (y : Nat ) -> Leq x y -> (tl : Stream # ) -> Increasing i (cons # y tl) ->- Increasing ($ i) (cons # x (cons # y tl)) + Increasing ($ i) (cons # x (cons # y tl)) } @@ -81,7 +81,7 @@ let double : Stream # -> Stream # = \s -> cons _ (head s) s -data Bool : Set +data Bool : Set { tt : Bool; ff : Bool@@ -91,7 +91,7 @@ { leq zero y = tt; leq (succ x) zero = ff ;-leq (succ x) (succ y) = leq x y +leq (succ x) (succ y) = leq x y } fun ite : Bool -> (A : Set ) -> A -> A -> A@@ -102,10 +102,10 @@ cofun merge : (i : Size ) -> (Nat -> Nat -> Bool) -> Stream # -> Stream # -> Stream i {-merge ($ i) le (cons .# x xs) (cons .# y ys) = +merge ($ i) le (cons .# x xs) (cons .# y ys) = ite (le x y) (Stream _) (cons _ x (merge _ le xs (cons _ y ys)))- (cons _ y (merge _ le (cons _ x xs) ys)) + (cons _ y (merge _ le (cons _ x xs) ys)) } fun first : (A : Set ) -> (B : Set ) -> A -> B -> A@@ -115,7 +115,7 @@ -------------------- -cofun map : (i : Size) -> (Nat -> Nat) -> Stream i -> Stream i +cofun map : (i : Size) -> (Nat -> Nat) -> Stream i -> Stream i { map ($ i) f (cons .i x xl) = cons _ (f x) (map _ f xl) }@@ -131,7 +131,5 @@ evil ($ i) = map _ succ (cons _ zero (evil _)) } --- eval const zzz : Nat = head # (z #) --+-- eval const zzz : Nat = head # (z #)
+ test/succeed/fibDeep.golden view
@@ -0,0 +1,41 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "fibDeep.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term head : .[A : Set] -> .[i : Size] -> Stream A $i -> A+{ head [A] [i] (Stream.cons [.i] a as) = a+}+term tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] a as) = as+}+term zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> .[i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith [A] [B] [C] f $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] f [i] as bs)+}+term adds : .[i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ adds $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (add a b) (adds [i] as bs)+}+term one : Nat+term one = Nat.succ Nat.zero+term fib' : .[i : Size] -> Stream Nat i+{ fib' [i] = case i : Size+ { $j -> Stream.cons [j] Nat.zero (case j : Size+ { $k -> Stream.cons [k] one (zipWith [Nat] [Nat] [Nat] add [k] (fib' [k]) (tail [Nat] [k] (fib' [$k])))+ })+ }+}+term fib : .[i : Size] -> Stream Nat i+{ fib $[i < #] = Stream.cons [i] Nat.zero (case i : Size+ { $j -> Stream.cons [j] one (adds [j] (fib [j]) (tail [Nat] [j] (fib [i])))+ })+}+--- evaluating ---+--- closing "fibDeep.ma" ---
test/succeed/fibDeep.ma view
@@ -1,11 +1,11 @@ -- 2012-01-22 parameters gone from constructors -data Nat : Set +data Nat : Set { zero : Nat-; succ : Nat -> Nat +; succ : Nat -> Nat } -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add zero = \ y -> y ; add (succ x) = \ y -> succ (add x y) }@@ -14,7 +14,7 @@ cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) } -fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A +fun head : [A : Set] -> [i : Size] -> Stream A ($ i) -> A { head A i (cons .i a as) = a } @@ -22,14 +22,14 @@ { tail A i (cons .i a as) = as } -cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] -> (A -> B -> C) -> - [i : Size] -> Stream A i -> Stream B i -> Stream C i -{ zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = - cons i (f a b) (zipWith A B C f i as bs) +cofun zipWith : [A : Set] -> [B : Set] -> [C : Set] -> (A -> B -> C) ->+ [i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+ cons i (f a b) (zipWith A B C f i as bs) } -cofun adds : [i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i -{ adds ($ i) (cons .i a as) (cons .i b bs) = +cofun adds : [i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ adds ($ i) (cons .i a as) (cons .i b bs) = cons i (add a b) (adds i as bs) } @@ -37,14 +37,14 @@ {- Size matching -at type [i : Size] -> Co i one can match i against ($ j) +at type [i : Size] -> Co i one can match i against ($ j) since for i = 0, Co i is the set of all terms type checking rule i:Size, j < i, i --> $ j |- e : Gamma -> Co ($ j) -------------------------------------------------- case i { ($ j) -> e } : Gamma -> Co i + case i { ($ j) -> e } : Gamma -> Co i basically, there is an analysis whether the type of the case is "everything" (opposite of empty).@@ -54,34 +54,34 @@ cofun fib' : [i : Size] -> Stream Nat i { fib' i = case i- { ($ j) -> cons j zero (case j - { ($ k) -> cons k one (zipWith Nat Nat Nat add k - (fib' k) + { ($ j) -> cons j zero (case j+ { ($ k) -> cons k one (zipWith Nat Nat Nat add k+ (fib' k) (tail Nat k (fib' ($ k))))})} } {- we can pull one case into the pattern match, but not both -} cofun fib : [i : Size] -> Stream Nat i-{ fib ($ i) = cons i zero (case i +{ fib ($ i) = cons i zero (case i { ($ j) -> cons j one (adds j (fib j) (tail Nat j (fib i)))})-} +} {- blueprint cofun fib : [i : Size] -> Stream Nat i-{ fib ? = cons ? zero +{ fib ? = cons ? zero (cons ? one (adds ? (fib ?) (tail Nat ? (fib ?))))-} +} -- UNSOUND cofun fib : [i : Size] -> Stream Nat i-{ fib ($$ i) = cons ($ i) zero +{ fib ($$ i) = cons ($ i) zero (cons i one (adds i (fib i) (tail Nat ($ i) (fib ($ i)))))-} +} -} -{- the question is how to facilitate inference for this? +{- the question is how to facilitate inference for this? We need to insert case splits at the appropriate positions. Why not, this is a form of type reconstruction. Relies on bidirectional type checking.- Currently, MiniAgda does not check constructors, but infers them, which is bad. + Currently, MiniAgda does not check constructors, but infers them, which is bad. -}
+ test/succeed/gcd-either.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "gcd-either.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.suc : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.suc : .[i : Size] -> ^(y1 : Nat i) -> < Nat.suc i y1 : Nat $i >+type Either : + Size -> + Size -> Set+term Either.left : .[i : Size] -> .[j : Size] -> ^(y2 : Nat i) -> < Either.left i j y2 : Either i j >+term Either.right : .[i : Size] -> .[j : Size] -> ^(y2 : Nat j) -> < Either.right i j y2 : Either i j >+term minus : .[i : Size] -> .[j : Size] -> Nat i -> Nat j -> Either i j+{ minus [i] [j] (Nat.zero [i' < i]) m = Either.right [i] [j] m+; minus [i] [j] (Nat.suc [i' < i] n) (Nat.zero [j' < j]) = Either.left [i] [j] (Nat.suc [i'] n)+; minus [i] [j] (Nat.suc [i' < i] n) (Nat.suc [j' < j] m) = minus [i'] [j'] n m+}+term gcd : .[i : Size] -> .[j : Size] -> Nat i -> Nat j -> Nat #+term gcd_aux : .[i : Size] -> .[j : Size] -> .[i' < i] -> .[j' < j] -> Nat i' -> Nat j' -> Either i' j' -> Nat #+{ gcd [i] [j] (Nat.zero [i' < i]) m = m+; gcd [i] [j] (Nat.suc [i' < i] n) (Nat.zero [j' < j]) = Nat.suc [i'] n+; gcd [i] [j] (Nat.suc [i' < i] n) (Nat.suc [j' < j] m) = gcd_aux [i] [j] [i'] [j'] n m (minus [i'] [j'] n m)+}+{ gcd_aux [i] [j] [i' < i] [j' < j] n m (Either.left [.i'] [.j'] n') = gcd [i'] [j] n' (Nat.suc [j'] m)+; gcd_aux [i] [j] [i' < i] [j' < j] n m (Either.right [.i'] [.j'] m') = gcd [i] [j'] (Nat.suc [i'] n) m'+}+--- evaluating ---+--- closing "gcd-either.ma" ---
test/succeed/gcd-either.ma view
@@ -1,6 +1,6 @@ -- 2011-12-16 Andreas, gcd example -sized data Nat : Size -> Set +sized data Nat : Size -> Set { zero : [i : Size] -> Nat ($ i) ; suc : [i : Size] -> Nat i -> Nat ($ i) }@@ -14,7 +14,7 @@ } fun minus : [i,j : Size] -> Nat i -> Nat j -> Either i j-{ minus i j (zero (i > i')) m = right i j m +{ minus i j (zero (i > i')) m = right i j m ; minus i j (suc (i > i') n) (zero (j > j')) = left i j (suc i' n) ; minus i j (suc (i > i') n) (suc (j > j') m) = minus i' j' n m }@@ -31,7 +31,7 @@ fun gcd : [i,j : Size] -> Nat i -> Nat j -> Nat # { gcd i j (zero (i > i')) m = m ; gcd i j (suc (i > i') n) (zero (j > j')) = suc i' n- ; gcd i j (suc (i > i') n) (suc (j > j') m) = + ; gcd i j (suc (i > i') n) (suc (j > j') m) = gcd_aux i j i' j' n m (minus i' j' n m) } @@ -41,4 +41,4 @@ ; gcd_aux i j i' j' n m (right .i' .j' m') = gcd i j' (suc i' n) m' } -} +}
+ test/succeed/hamming.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "hamming.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+term double : Nat -> Nat+term double = \ n -> add n n+term triple : Nat -> Nat+term triple = \ n -> add n (double n)+term leq : Nat -> Nat -> .[C : Set] -> C -> C -> C+{ leq Nat.zero y [C] tt ff = tt+; leq (Nat.succ x) Nat.zero [C] tt ff = ff+; leq (Nat.succ x) (Nat.succ y) [C] tt ff = leq x y [C] tt ff+}+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+term merge : .[i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ merge $[i < #] (Stream.cons [.i] x xs) (Stream.cons [.i] y ys) = leq x y [Stream Nat $i] (Stream.cons [i] x (merge [i] xs (Stream.cons [i] y ys))) (Stream.cons [i] y (merge [i] (Stream.cons [i] x xs) ys))+}+term ham : .[i : Size] -> Stream Nat i+{ ham $[i < #] = Stream.cons [i] (Nat.succ Nat.zero) (merge [i] (map [Nat] [Nat] [i] double (ham [i])) (map [Nat] [Nat] [i] triple (ham [i])))+}+--- evaluating ---+--- closing "hamming.ma" ---
test/succeed/hamming.ma view
@@ -2,12 +2,12 @@ -- Nat --------------------------------------------------------------- -data Nat : Set +data Nat : Set { zero : Nat-; succ : Nat -> Nat +; succ : Nat -> Nat } -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add zero = \y -> y ; add (succ x) = \y -> succ (add x y) }@@ -20,28 +20,28 @@ fun leq : Nat -> Nat -> [C : Set] -> C -> C -> C { leq zero y C tt ff = tt ; leq (succ x) zero C tt ff = ff-; leq (succ x) (succ y) C tt ff = leq x y C tt ff +; leq (succ x) (succ y) C tt ff = leq x y C tt ff } -- Stream ------------------------------------------------------------ -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : [i : Size] -> A -> Stream A i -> Stream A ($ i) } -cofun map : [A : Set] -> [B : Set] -> [i : Size] -> - (A -> B) -> Stream A i -> Stream B i +cofun map : [A : Set] -> [B : Set] -> [i : Size] ->+ (A -> B) -> Stream A i -> Stream B i { map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) } cofun merge : [i : Size] -> Stream Nat i -> Stream Nat i -> Stream Nat i {- merge ($ i) (cons .i x xs) (cons .i y ys) = + merge ($ i) (cons .i x xs) (cons .i y ys) = leq x y (Stream Nat _) (cons _ x (merge _ xs (cons _ y ys)))- (cons _ y (merge _ (cons _ x xs) ys)) + (cons _ y (merge _ (cons _ x xs) ys)) } @@ -49,7 +49,7 @@ cofun ham : [i : Size] -> Stream Nat i {- ham ($ i) = cons _ (succ zero) - (merge i (map Nat Nat i double (ham i)) + ham ($ i) = cons _ (succ zero)+ (merge i (map Nat Nat i double (ham i)) (map Nat Nat i triple (ham i))) }
+ test/succeed/ho.golden view
@@ -0,0 +1,20 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "ho.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term apply : (Bool -> Bool) -> Bool -> Bool+{ apply f b = f b+}+term neg : Bool -> Bool+{ neg Bool.tt = Bool.ff+; neg Bool.ff = Bool.tt+}+term f : Bool+term f = apply neg Bool.tt+term t : Bool+term t = apply (\ x -> Bool.tt) Bool.ff+--- evaluating ---+--- closing "ho.ma" ---
test/succeed/ho.ma view
@@ -1,18 +1,18 @@ data Bool : Set {- tt : Bool;- ff : Bool+ tt : Bool;+ ff : Bool } fun apply : (Bool -> Bool) -> Bool -> Bool {-apply f b = f b +apply f b = f b } fun neg : Bool -> Bool {-neg tt = ff;-neg ff = tt +neg tt = ff;+neg ff = tt } let f : Bool = apply neg tt
+ test/succeed/implicitSizeVarUsedExplicitely.golden view
@@ -0,0 +1,31 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "implicitSizeVarUsedExplicitely.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term leq : Nat -> Nat -> Bool+{}+term plus : .[A : Set] -> A -> A -> A+{}+type List : + Size -> Set+term List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term List.nil : .[i : Size] -> < List.nil i : List $i >+term List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term filter : .[i : Size] -> List i -> List i+{ filter [.$i] (List.nil [i]) = List.nil [i]+; filter [.$i] (List.cons [i] n l) = plus [List $i] (filter [i] l) (List.cons [i] n (filter [i] l))+}+term quicksort : .[i : Size] -> List i -> List #+{ quicksort [.$i] (List.nil [i]) = List.nil [#]+; quicksort [.$i] (List.cons [i] n l) = plus [List #] (quicksort [i] (filter [i] l)) (List.cons [#] n (quicksort [i] (filter [i] l)))+}+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+--- evaluating ---+--- closing "implicitSizeVarUsedExplicitely.ma" ---
test/succeed/implicitSizeVarUsedExplicitely.ma view
@@ -13,7 +13,7 @@ fun plus : [A : Set] -> A -> A -> A {} sized data List : Size -> Set-{ nil : (i : Size) -> List ($ i) +{ nil : (i : Size) -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -24,8 +24,8 @@ fun quicksort : [i : Size] -> List i -> List # { quicksort .($ i) (nil i) = nil _-; quicksort .($ i) (cons i n l) = - plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) +; quicksort .($ i) (cons i n l) =+ plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) } data Id (A : Set)(a : A) : A -> Set
+ test/succeed/lengthCoList.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "lengthCoList.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+type Colist : ^(A : Set) -> - Size -> Set+term Colist.nil : .[A : Set] -> .[i : Size] -> < Colist.nil i : Colist A $i >+term Colist.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Colist A i) -> < Colist.cons i y1 y2 : Colist A $i >+term olist' : .[i : Size] -> Colist (Nat #) i+{ olist' $[i < #] = Colist.cons [i] (Nat.zero [#]) (olist' [i])+}+type CoNat : - Size -> Set+term CoNat.cozero : .[i : Size] -> < CoNat.cozero i : CoNat $i >+term CoNat.cosucc : .[i : Size] -> ^(y1 : CoNat i) -> < CoNat.cosucc i y1 : CoNat $i >+term z : CoNat #+term z = CoNat.cozero [#]+term length2 : .[i : Size] -> .[A : Set] -> Colist A i -> CoNat i+{ length2 $[i < #] [A] (Colist.nil [.i]) = CoNat.cozero [i]+; length2 $[i < #] [A] (Colist.cons [.i] a as) = CoNat.cosucc [i] (length2 [i] [A] as)+}+term omega' : .[i : Size] -> CoNat i+{ omega' $[i < #] = CoNat.cosucc [i] (omega' [i])+}+term omega : CoNat #+term omega = omega' [#]+term convert2 : .[i : Size] -> Nat i -> CoNat i+{ convert2 $[i < #] (Nat.zero [.i]) = CoNat.cozero [i]+; convert2 $[i < #] (Nat.succ [.i] x) = CoNat.cosucc [i] (convert2 [i] x)+}+term convert3 : .[i : Size] -> Nat i -> CoNat #+{ convert3 [i] (Nat.zero [j < i]) = CoNat.cozero [#]+; convert3 [i] (Nat.succ [j < i] x) = omega' [#]+}+term convert4 : .[i : Size] -> Nat i -> CoNat i+{ convert4 $[i < #] (Nat.zero [.i]) = CoNat.cozero [$i]+; convert4 $[i < #] (Nat.succ [.i] x) = CoNat.cosucc [i] (convert4 [i] x)+}+--- evaluating ---+--- closing "lengthCoList.ma" ---
test/succeed/lengthCoList.ma view
@@ -19,7 +19,7 @@ } {---- not allowed because no inductive argument with i +-- not allowed because no inductive argument with i fun length : [i : Size] -> [A : Set] -> Colist A i -> Nat i { length ($ i) .A (nil A .i) = zero i ;@@ -41,7 +41,7 @@ cofun length2 : [i : Size] -> [A : Set] -> Colist A i -> CoNat i { length2 ($ i) A (nil .i) = cozero i;-length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) +length2 ($ i) A (cons .i a as) = cosucc i (length2 i A as) } cofun omega' : [i : Size] -> CoNat i@@ -51,18 +51,18 @@ let omega : CoNat # = omega' # --- not ok because size not used in inductive argument +-- not ok because size not used in inductive argument -- fun convert1 : [i : Size] -> CoNat i -> Nat i -- { -- convert1 ($ i) (cozero .i) = zero i;--- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) +-- convert1 ($ i) (cosucc i x) = succ i (convert1 i x) -- } --- the following must be cofun +-- the following must be cofun cofun convert2 : [i : Size] -> Nat i -> CoNat i { convert2 ($ i) (zero .i) = cozero i;-convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) +convert2 ($ i) (succ .i x) = cosucc i (convert2 i x) } -- NOT ok@@ -84,6 +84,6 @@ cofun convert4 : [i : Size] -> Nat i -> CoNat i { convert4 ($ i) (zero .i) = cozero ($ i) ;-convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) +convert4 ($ i) (succ .i x) = cosucc i (convert4 i x) }
+ test/succeed/list.golden view
@@ -0,0 +1,9 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "list.ma" ---+--- scope checking ---+--- type checking ---+type List : ^(A : Set) -> Set+term List.nil : .[A : Set] -> < List.nil : List A >+term List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >+--- evaluating ---+--- closing "list.ma" ---
+ test/succeed/logic.golden view
@@ -0,0 +1,54 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "logic.ma" ---+--- scope checking ---+--- type checking ---+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term subst : .[A : Set] -> (a : A) -> (b : A) -> Id A a b -> .[P : A -> Set] -> P a -> P b+{ subst [A] a .a Id.refl [P] x = x+}+term bla : .[A : Set] -> (a : A) -> (p : Id A a a) -> .[P : A -> Set] -> (x : P a) -> Id (P a) x (subst [A] a a p [P] x)+term bla = [\ A ->] \ a -> \ p -> [\ P ->] \ x -> Id.refl+term resp : .[A : Set] -> (a : A) -> (b : A) -> Id A a b -> .[C : Set] -> (f : A -> C) -> Id C (f a) (f b)+{ resp [A] a .a Id.refl [C] f = Id.refl+}+type True : Set+term True.trueI : < True.trueI : True >+type False : Set+term falseIrr : (p : False) -> (q : False) -> Id False p q+term falseIrr = \ p -> \ q -> Id.refl+term falseE : False -> .[A : Set] -> A+{}+type And : ^(A : Set) -> ^(B : Set) -> Set+term And.andI : .[A : Set] -> .[B : Set] -> ^(andE1 : A) -> ^(andE2 : B) -> < And.andI andE1 andE2 : And A B >+term andE1 : .[A : Set] -> .[B : Set] -> (andI : And A B) -> A+{ andE1 [A] [B] (And.andI #andE1 #andE2) = #andE1+}+term andE2 : .[A : Set] -> .[B : Set] -> (andI : And A B) -> B+{ andE2 [A] [B] (And.andI #andE1 #andE2) = #andE2+}+type Forall : ^(A : Set) -> ^(B : A -> Set) -> Set+term Forall.forallI : .[A : Set] -> .[B : A -> Set] -> ^(forallE : (a : A) -> B a) -> < Forall.forallI forallE : Forall A B >+term forallE : .[A : Set] -> .[B : A -> Set] -> (forallI : Forall A B) -> (a : A) -> B a+{ forallE [A] [B] (Forall.forallI #forallE) = #forallE+}+term shapeForallTrue : .[A : Set] -> (p : Forall A (\ a -> True)) -> Id (Forall A (\ a -> True)) p (Forall.forallI (\ a -> True.trueI))+{ shapeForallTrue [A] p = Id.refl+}+type Prop : ^(A : Set) -> Set+term Prop.true : .[A : Set] -> < Prop.true : Prop A >+term Prop.false : .[A : Set] -> < Prop.false : Prop A >+term Prop.and : .[A : Set] -> ^(y0 : Prop A) -> ^(y1 : Prop A) -> < Prop.and y0 y1 : Prop A >+term Prop.forall : .[A : Set] -> ^(y0 : A -> Prop A) -> < Prop.forall y0 : Prop A >+type Proof : (A : Set) -> Prop A -> Set+{ Proof A Prop.true = True+; Proof A Prop.false = False+; Proof A (Prop.and p q) = And (Proof A p) (Proof A q)+; Proof A (Prop.forall h) = Forall A (\ a -> Proof A (h a))+}+term proofIrr : .[A : Set] -> (P : Prop A) -> (p : Proof A P) -> (q : Proof A P) -> Id (Proof A P) p q+{ proofIrr [A] Prop.true p q = Id.refl+; proofIrr [A] Prop.false p q = Id.refl+}+--- evaluating ---+--- closing "logic.ma" ---
test/succeed/logic.ma view
@@ -1,31 +1,31 @@ -- 2012-01-22 parameters gone from constructors -data Id (A : Set) (a : A) : A -> Set -{ refl : Id A a a +data Id (A : Set) (a : A) : A -> Set+{ refl : Id A a a } -fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (P : A -> Set) -> P a -> P b { subst A a .a (refl {-.A .a-}) P x = x } -- this demonstrates eta expansion at the identity type-let bla : (A : Set) -> (a : A) -> (p : Id A a a) -> - (P : A -> Set) -> (x : P a) -> +let bla : (A : Set) -> (a : A) -> (p : Id A a a) ->+ (P : A -> Set) -> (x : P a) -> Id (P a) x (subst A a a p P x) = \ A -> \ a -> \ p -> \ P -> \ x -> refl -- (P a) x -fun resp : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> +fun resp : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (C : Set) -> (f : A -> C) -> Id C (f a) (f b) { resp A a .a (refl {-.A .a-}) C f = refl -- C (f a) }- + -- Needs heterogeneous equality -- fun resp : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> (P : A -> Set) -> (f : (x : A) -> P x) -> Id (P a) (f a) (f b) -- { resp A a .a (refl .A .a) P f = refl (P a) (f a) -- }- -data True : Set ++data True : Set { trueI : True } @@ -38,7 +38,7 @@ fun falseE : False -> (A : Set) -> A { } -data And (A : Set) (B : Set) : Set +data And (A : Set) (B : Set) : Set { andI : (andE1 : A) -> (andE2 : B) -> And A B } @@ -57,7 +57,7 @@ ; and : Prop A -> Prop A -> Prop A ; forall : (A -> Prop A) -> Prop A }- + fun Proof : (A : Set) -> Prop A -> Set { Proof A (true) = True ; Proof A (false) = False@@ -66,7 +66,7 @@ } fun proofIrr : (A : Set) -> (P : Prop A) -> (p : Proof A P) -> (q : Proof A P) -> Id (Proof A P) p q-{ proofIrr A (true) p q = refl -- True p -; proofIrr A (false) p q = refl -- False p +{ proofIrr A (true) p q = refl -- True p+; proofIrr A (false) p q = refl -- False p -- ; proofIrr A (and .A P Q) (andI .(Proof A P) .(Proof A Q) p1 p2) (andI .(Proof A P) .(Proof A Q) q1 q2) = (proofIrr A P p1 p2) (proofIrr A Q q1 q2) -- etc pp }
+ test/succeed/lossyIdentityOnStreams.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "lossyIdentityOnStreams.ma" ---+--- scope checking ---+--- type checking ---+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term sid : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ sid [A] $[i < #] (Stream.cons [.$i] x xs) = Stream.cons [i] x (sid [A] [i] xs)+}+--- evaluating ---+--- closing "lossyIdentityOnStreams.ma" ---
+ test/succeed/magicVecLookupProofIrr.golden view
@@ -0,0 +1,38 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "magicVecLookupProofIrr.ma" ---+--- scope checking ---+--- type checking ---+type Sigma : ^(A : Set) -> ^(B : A -> Set) -> Set+term Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type Empty : Set+term magic : .[A : Set] -> .[p : Empty] -> A+{}+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Vec : (A : Set) -> (n : Nat) -> Set+{ Vec A Nat.zero = Empty+; Vec A (Nat.succ n) = Sigma A (\ z -> Vec A n)+}+type Leq : (n : Nat) -> (m : Nat) -> Set+{ Leq Nat.zero m = Unit+; Leq (Nat.succ n) Nat.zero = Empty+; Leq (Nat.succ n) (Nat.succ m) = Leq n m+}+type Lt : (n : Nat) -> (m : Nat) -> Set+type Lt = \ n -> \ m -> Leq (Nat.succ n) m+term lookup : .[A : Set] -> (n : Nat) -> (m : Nat) -> .[Lt m n] -> Vec A n -> A+{ lookup [A] Nat.zero m [p] v = magic [A] [p]+; lookup [A] (Nat.succ n) Nat.zero [p] v = fst v+; lookup [A] (Nat.succ n) (Nat.succ m) [p] v = lookup [A] n m [p] (snd v)+}+--- evaluating ---+--- closing "magicVecLookupProofIrr.ma" ---
test/succeed/magicVecLookupProofIrr.ma view
@@ -15,7 +15,7 @@ -- magic = abort does not need the inhabitant p : Empty fun magic : [A : Set] -> [p : Empty] -> A-{ +{ } data Unit : Set
+ test/succeed/mapStream.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "mapStream.ma" ---+--- scope checking ---+--- type checking ---+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+--- evaluating ---+--- closing "mapStream.ma" ---
test/succeed/mapStream.ma view
@@ -4,8 +4,8 @@ cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) } -cofun map : (A : Set) -> (B : Set) -> (i : Size) -> - (A -> B) -> Stream A i -> Stream B i +cofun map : (A : Set) -> (B : Set) -> (i : Size) ->+ (A -> B) -> Stream A i -> Stream B i { map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) }
+ test/succeed/max.golden view
@@ -0,0 +1,35 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "max.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.suc m) Nat.zero = Bool.false+; leq (Nat.suc m) (Nat.suc n) = leq m n+}+term maxN : Nat -> Nat -> Nat+{ maxN n m = case leq n m : Bool+ { Bool.true -> m+ ; Bool.false -> n+ }+}+term one : Nat+term one = Nat.suc Nat.zero+term two : Nat+term two = Nat.suc one+term cmp : Bool+term cmp = leq one two+term bla : Nat+term bla = maxN one two+--- evaluating ---+cmp has whnf Bool.true{}+cmp evaluates to Bool.true+bla has whnf Nat.suc{y0 = Nat.suc{y0 = Nat.zero{}}}+bla evaluates to Nat.suc (Nat.suc Nat.zero)+--- closing "max.ma" ---
test/succeed/max.ma view
@@ -1,11 +1,11 @@-data Nat : Set +data Nat : Set { zero : Nat ; suc : Nat -> Nat } data Bool : Set { true : Bool-; false : Bool +; false : Bool } fun leq : Nat -> Nat -> Bool@@ -15,7 +15,7 @@ } fun maxN : Nat -> Nat -> Nat-{ maxN n m = case leq n m +{ maxN n m = case leq n m { true -> m ; false -> n }
+ test/succeed/measures.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "measures.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term even : .[i : Size] -> Nat i -> Bool+term even' : .[i : Size] -> Nat i -> Bool+term odd' : .[i : Size] -> Nat i -> Bool+{ even [i] n = even' [i] n+}+{ even' [i] (Nat.zero [j < i]) = Bool.true+; even' [i] (Nat.succ [j < i] n) = odd' [j] n+}+{ odd' [i] (Nat.zero [j < i]) = Bool.false+; odd' [i] (Nat.succ [j < i] n) = even [j] n+}+--- evaluating ---+--- closing "measures.ma" ---
test/succeed/measures.ma view
@@ -19,15 +19,15 @@ f : As -> mu -> Bs -> C f ps qs = ... g as ...- -as we reach measure mu in the type, insert it into the context -(reader monad) as the current measure. +as we reach measure mu in the type, insert it into the context+(reader monad) as the current measure.+ When we reach a mutually defined identifier g of type- + g : Delta -> mu' -> D -we use it at type +we use it at type g : Delta -> mu' < mu -> D @@ -44,7 +44,7 @@ gn : TVn The types are evaluated. We want a function- + bound :: MeasVal -> TVal -> TVal bound mu tv = tv' @@ -72,10 +72,10 @@ f : As -> mu -> Bs -> C f ps qs = ... g as ...- -as we reach measure mu in the type, insert it into the context -(reader monad) as the current measure. +as we reach measure mu in the type, insert it into the context+(reader monad) as the current measure.+ When checking the application g as on the rhs, if g is in the set of mutual functions with f, then during infering the type of g as we will have its type as@@ -93,16 +93,16 @@ |-{mu} t : A |-{mu} t : mu' -> A mu' < mu -------------- mu-Intro -------------------------------- mu-Elim |- t : mu -> A |-{mu} t : A- + After finishing checking the mutual block, purge the measures from the types of the mutual functions! For nested functions, generalize the rule to: - |-{mu} t : A - ------------------- mu-Intro - |-{mu'} t : mu -> A - + |-{mu} t : A+ ------------------- mu-Intro+ |-{mu'} t : mu -> A+ With this system, one cannot do lexicographic induction by nested induction. @@ -111,7 +111,7 @@ x : mu |- t : A x : mu |- t : mu' -> A mu' < mu -------------- mu-Intro ---------------------------------- mu-Elim |- \xt : mu -> A x : mu |- t x : A- + -} mutual {@@ -123,12 +123,12 @@ fun even' : [i : Size] -> |i,0| -> Nat i -> Bool { even' i (zero (i > j)) = true ; even' i (succ (i > j) n) = odd' j n- } + } fun odd' : [i : Size] -> |i,0| -> Nat i -> Bool { odd' i (zero (i > j)) = false ; odd' i (succ (i > j) n) = even j n- } + } } {-@@ -141,12 +141,12 @@ fun even' : [i : Size] -> |i,0| -> Nat i -> Bool { even' .($ i) (zero i) = true ; even' .($ i) (succ i n) = odd' i n- } + } fun odd' : [i : Size] -> |i,0| -> Nat i -> Bool { odd' .($ i) (zero i) = false ; odd' .($ i) (succ i n) = even i n- } + } } -} @@ -167,6 +167,6 @@ fun addSNat : (n : N) -> (i : Size) -> Nat i -> Nat (addSize n i) { addSNat zz i m = m-; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) +; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) } -}
+ test/succeed/msort-implicit.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "msort-implicit.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term ifthenelse : .[A : Set] -> Bool -> A -> A -> A+{ ifthenelse [A] Bool.tt x y = x+; ifthenelse [A] Bool.ff x y = y+}+type Pair : ++(A : Set) -> Set+term Pair.pair : .[A : Set] -> ^(y0 : A) -> ^(y1 : A) -> < Pair.pair y0 y1 : Pair A >+term pr1 : .[A : Set] -> Pair A -> A+{ pr1 [A] (Pair.pair a b) = a+}+term pr2 : .[A : Set] -> Pair A -> A+{ pr2 [A] (Pair.pair a b) = b+}+type SList : ++(A : Set) -> + Size -> Set+term SList.nil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> SList A s!ze+term SList.nil : .[A : Set] -> .[i : Size] -> < SList.nil i : SList A $i >+term SList.cons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ SList A i -> SList A s!ze+term SList.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : SList A i) -> < SList.cons i y1 y2 : SList A $i >+term split : .[A : Set] -> .[i : Size] -> SList A i -> Pair (SList A i)+{ split [A] [.$i] (SList.nil [i]) = Pair.pair (SList.nil [i]) (SList.nil [i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.nil [i])) = Pair.pair (SList.cons [$i] a (SList.nil [i])) (SList.nil [$i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.cons [i] b as)) = let rec : Pair (SList A i)+ = split [A] [i] as+ in let l1 : SList A i+ = pr1 [SList A i] rec+ in let l2 : SList A i+ = pr2 [SList A i] rec+ in Pair.pair (SList.cons [i] a l1) (SList.cons [i] b l2)+}+term merge : .[A : Set] -> (leq : A -> A -> Bool) -> SList A # -> SList A # -> SList A #+{ merge [A] leq (SList.nil [.#]) ys = ys+; merge [A] leq (SList.cons [.#] x xs) (SList.nil [.#]) = SList.cons [#] x xs+; merge [A] leq (SList.cons [.#] x xs) (SList.cons [.#] y ys) = ifthenelse [SList A #] (leq x y) (SList.cons [#] x (SList.cons [#] y (merge [A] leq xs ys))) (SList.cons [#] y (SList.cons [#] x (merge [A] leq xs ys)))+}+term msort : .[A : Set] -> (leq : A -> A -> Bool) -> .[i : Size] -> SList A i -> SList A #+{ msort [A] leq [.$j] (SList.nil [j]) = SList.nil [#]+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+ = split [A] [i] l+ in let l1 : SList A #+ = msort [A] leq [$i] (SList.cons [i] a (pr1 [SList A i] sl))+ in let l2 : SList A #+ = msort [A] leq [$i] (SList.cons [i] b (pr2 [SList A i] sl))+ in merge [A] leq l1 l2+}+term msort' : .[A : Set] -> (leq : A -> A -> Bool) -> (.[i : Size] -> SList A i -> Pair (SList A i)) -> .[i : Size] -> SList A i -> SList A #+{ msort' [A] leq splt [.$j] (SList.nil [j]) = SList.nil [#]+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+ = splt [i] l+ in let l1 : SList A #+ = msort' [A] leq splt [$i] (SList.cons [i] a (pr1 [SList A i] sl))+ in let l2 : SList A #+ = msort' [A] leq splt [$i] (SList.cons [i] b (pr2 [SList A i] sl))+ in merge [A] leq l1 l2+}+--- evaluating ---+--- closing "msort-implicit.ma" ---
test/succeed/msort-implicit.ma view
@@ -5,7 +5,7 @@ -- booleans -data Bool : Set +data Bool : Set { tt : Bool; ff : Bool@@ -19,9 +19,9 @@ -- homogeneous pairs -data Pair (+ A : Set) : Set +data Pair (+ A : Set) : Set {- pair : A -> A -> Pair A + pair : A -> A -> Pair A } -- this yields --@@ -41,7 +41,7 @@ -- sized Lists -sized data SList (+ A : Set) : Size -> Set +sized data SList (+ A : Set) : Size -> Set { nil : [i : Size] -> SList A ($ i) ; cons : [i : Size] -> A -> SList A i -> SList A ($ i)@@ -49,40 +49,40 @@ -- merge sort -fun split : [A : Set] -> +fun split : [A : Set] -> [i : Size] -> SList A i -> Pair (SList A i) {-split A .($ i) (nil i) +split A .($ i) (nil i) = pair (nil _) (nil _); split A .($ ($ i)) (cons .($ i) a (nil i)) = pair (cons _ a (nil _)) (nil _); -split A .($ ($ i)) (cons .($ i) a (cons i b as)) +split A .($ ($ i)) (cons .($ i) a (cons i b as)) = let rec : Pair (SList A i) = split A _ as in let l1 : SList A _ = pr1 (SList A _) rec in let l2 : SList A _ = pr2 (SList A _) rec in pair (cons _ a l1) (cons _ b l2) } -fun merge : [A : Set] -> (leq : A -> A -> Bool) +fun merge : [A : Set] -> (leq : A -> A -> Bool) -> SList A # -> SList A # -> SList A # { merge A leq (nil .#) ys = ys; merge A leq (cons .# x xs) (nil .#) = cons _ x xs; merge A leq (cons .# x xs) (cons .# y ys) = ifthenelse (SList A _)- (leq x y) (cons _ x (cons _ y (merge A leq xs ys)))- (cons _ y (cons _ x (merge A leq xs ys)))+ (leq x y) (cons _ x (cons _ y (merge A leq xs ys)))+ (cons _ y (cons _ x (merge A leq xs ys))) } fun msort : [A : Set] -> (leq : A -> A -> Bool) -> [i : Size] -> SList A i -> SList A # { msort A leq .($ j) (nil j) = nil _ ;- msort A leq .($ ($ i)) (cons .($ i) a (nil i)) = + msort A leq .($ ($ i)) (cons .($ i) a (nil i)) = cons _ a (nil _) ; msort A leq .($ ($ i)) (cons .($ i) a (cons i b l)) =- let sl : Pair (SList A _) = split A _ l + let sl : Pair (SList A _) = split A _ l in let l1 : SList A # = msort A leq _ (cons _ a (pr1 (SList A _) sl)) in let l2 : SList A # = msort A leq _ (cons _ b (pr2 (SList A _) sl)) in merge A leq l1 l2@@ -94,10 +94,10 @@ [i : Size] -> SList A i -> SList A # { msort' A leq splt .($ j) (nil j) = nil _ ;- msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) = + msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) = cons _ a (nil _) ; msort' A leq splt .($ ($ i)) (cons .($ i) a (cons i b l)) =- let sl : Pair (SList A _) = splt _ l + let sl : Pair (SList A _) = splt _ l in let l1 : SList A # = msort' A leq splt _ (cons _ a (pr1 (SList A _) sl)) in let l2 : SList A # = msort' A leq splt _ (cons _ b (pr2 (SList A _) sl)) in merge A leq l1 l2
+ test/succeed/msort.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "msort.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term ifthenelse : .[A : Set] -> Bool -> A -> A -> A+{ ifthenelse [A] Bool.tt x y = x+; ifthenelse [A] Bool.ff x y = y+}+type Pair : ++(A : Set) -> Set+term Pair.pair : .[A : Set] -> ^(y0 : A) -> ^(y1 : A) -> < Pair.pair y0 y1 : Pair A >+term pr1 : .[A : Set] -> Pair A -> A+{ pr1 [A] (Pair.pair a b) = a+}+term pr2 : .[A : Set] -> Pair A -> A+{ pr2 [A] (Pair.pair a b) = b+}+type SList : ++(A : Set) -> + Size -> Set+term SList.nil : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> SList A s!ze+term SList.nil : .[A : Set] -> .[i : Size] -> < SList.nil i : SList A $i >+term SList.cons : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> ^ SList A i -> SList A s!ze+term SList.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : SList A i) -> < SList.cons i y1 y2 : SList A $i >+term split : .[A : Set] -> .[i : Size] -> SList A i -> Pair (SList A i)+{ split [A] [.$i] (SList.nil [i]) = Pair.pair (SList.nil [i]) (SList.nil [i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.nil [i])) = Pair.pair (SList.cons [$i] a (SList.nil [i])) (SList.nil [$i])+; split [A] [.$$i] (SList.cons [.$i] a (SList.cons [i] b as)) = let rec : Pair (SList A i)+ = split [A] [i] as+ in let l1 : SList A i+ = pr1 [SList A i] rec+ in let l2 : SList A i+ = pr2 [SList A i] rec+ in Pair.pair (SList.cons [i] a l1) (SList.cons [i] b l2)+}+term merge : .[A : Set] -> (leq : A -> A -> Bool) -> SList A # -> SList A # -> SList A #+{ merge [A] leq (SList.nil [.#]) ys = ys+; merge [A] leq (SList.cons [.#] x xs) (SList.nil [.#]) = SList.cons [#] x xs+; merge [A] leq (SList.cons [.#] x xs) (SList.cons [.#] y ys) = ifthenelse [SList A #] (leq x y) (SList.cons [#] x (SList.cons [#] y (merge [A] leq xs ys))) (SList.cons [#] y (SList.cons [#] x (merge [A] leq xs ys)))+}+term msort : .[A : Set] -> (leq : A -> A -> Bool) -> .[i : Size] -> SList A i -> SList A #+{ msort [A] leq [.$j] (SList.nil [j]) = SList.nil [#]+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort [A] leq [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+ = split [A] [i] l+ in let l1 : SList A #+ = msort [A] leq [$i] (SList.cons [i] a (pr1 [SList A i] sl))+ in let l2 : SList A #+ = msort [A] leq [$i] (SList.cons [i] b (pr2 [SList A i] sl))+ in merge [A] leq l1 l2+}+term msort' : .[A : Set] -> (leq : A -> A -> Bool) -> (.[i : Size] -> SList A i -> Pair (SList A i)) -> .[i : Size] -> SList A i -> SList A #+{ msort' [A] leq splt [.$j] (SList.nil [j]) = SList.nil [#]+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.nil [i])) = SList.cons [#] a (SList.nil [#])+; msort' [A] leq splt [.$$i] (SList.cons [.$i] a (SList.cons [i] b l)) = let sl : Pair (SList A i)+ = splt [i] l+ in let l1 : SList A #+ = msort' [A] leq splt [$i] (SList.cons [i] a (pr1 [SList A i] sl))+ in let l2 : SList A #+ = msort' [A] leq splt [$i] (SList.cons [i] b (pr2 [SList A i] sl))+ in merge [A] leq l1 l2+}+--- evaluating ---+--- closing "msort.ma" ---
test/succeed/msort.ma view
@@ -2,7 +2,7 @@ -- booleans -data Bool : Set +data Bool : Set { tt : Bool; ff : Bool@@ -16,9 +16,9 @@ -- homogeneous pairs -data Pair (+ A : Set) : Set +data Pair (+ A : Set) : Set {- pair : A -> A -> Pair A + pair : A -> A -> Pair A } fun pr1 : (A : Set) -> Pair A -> A@@ -33,7 +33,7 @@ -- sized Lists -sized data SList (+ A : Set) : Size -> Set +sized data SList (+ A : Set) : Size -> Set { nil : (i : Size) -> SList A ($ i) ; cons : (i : Size) -> A -> SList A i -> SList A ($ i)@@ -41,40 +41,40 @@ -- merge sort -fun split : (A : Set) -> +fun split : (A : Set) -> (i : Size) -> SList A i -> Pair (SList A i) {-split A .($ i) (nil i) +split A .($ i) (nil i) = pair (nil _) (nil _); split A .($ ($ i)) (cons .($ i) a (nil i)) = pair (cons _ a (nil _)) (nil _); -split A .($ ($ i)) (cons .($ i) a (cons i b as)) +split A .($ ($ i)) (cons .($ i) a (cons i b as)) = let rec : Pair (SList A i) = split A _ as in let l1 : SList A _ = pr1 (SList A _) rec in let l2 : SList A _ = pr2 (SList A _) rec in pair (cons _ a l1) (cons _ b l2) } -fun merge : (A : Set) -> (leq : A -> A -> Bool) +fun merge : (A : Set) -> (leq : A -> A -> Bool) -> SList A # -> SList A # -> SList A # { merge A leq (nil .#) ys = ys; merge A leq (cons .# x xs) (nil .#) = cons _ x xs; merge A leq (cons .# x xs) (cons .# y ys) = ifthenelse (SList A _)- (leq x y) (cons _ x (cons _ y (merge A leq xs ys)))- (cons _ y (cons _ x (merge A leq xs ys)))+ (leq x y) (cons _ x (cons _ y (merge A leq xs ys)))+ (cons _ y (cons _ x (merge A leq xs ys))) } fun msort : (A : Set) -> (leq : A -> A -> Bool) -> (i : Size) -> SList A i -> SList A # { msort A leq .($ j) (nil j) = nil _ ;- msort A leq .($ ($ i)) (cons .($ i) a (nil i)) = + msort A leq .($ ($ i)) (cons .($ i) a (nil i)) = cons _ a (nil _) ; msort A leq .($ ($ i)) (cons .($ i) a (cons i b l)) =- let sl : Pair (SList A _) = split A _ l + let sl : Pair (SList A _) = split A _ l in let l1 : SList A # = msort A leq _ (cons _ a (pr1 (SList A _) sl)) in let l2 : SList A # = msort A leq _ (cons _ b (pr2 (SList A _) sl)) in merge A leq l1 l2@@ -86,10 +86,10 @@ (i : Size) -> SList A i -> SList A # { msort' A leq splt .($ j) (nil j) = nil _ ;- msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) = + msort' A leq splt .($ ($ i)) (cons .($ i) a (nil i)) = cons _ a (nil _) ; msort' A leq splt .($ ($ i)) (cons .($ i) a (cons i b l)) =- let sl : Pair (SList A _) = splt _ l + let sl : Pair (SList A _) = splt _ l in let l1 : SList A # = msort' A leq splt _ (cons _ a (pr1 (SList A _) sl)) in let l2 : SList A # = msort' A leq splt _ (cons _ b (pr2 (SList A _) sl)) in merge A leq l1 l2
+ test/succeed/nat.golden view
@@ -0,0 +1,41 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "nat.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term add : SNat # -> SNat # -> SNat #+{ add (SNat.zero [.#]) y = y+; add (SNat.succ [.#] x) y = SNat.succ [#] (add x y)+}+term inc : .[i : Size] -> .[j : Size] -> SNat i -> SNat $i+{ inc [i] [j] x = SNat.succ [i] x+}+term minus : .[i : Size] -> SNat i -> SNat # -> SNat i+{ minus [i] (SNat.zero [j < i]) y = SNat.zero [j]+; minus [i] x (SNat.zero [.#]) = x+; minus [i] (SNat.succ [j < i] x) (SNat.succ [.#] y) = minus [j] x y+}+term test : SNat #+term test = minus [#] (SNat.succ [#] (SNat.succ [#] (SNat.zero [#]))) (SNat.succ [#] (SNat.zero [#]))+term div : .[i : Size] -> SNat i -> SNat # -> SNat i+{ div [i] (SNat.zero [j < i]) y = SNat.zero [j]+; div [i] (SNat.succ [j < i] x) y = SNat.succ [j] (div [j] (minus [j] x y) y)+}+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term true : .[i : Size] -> SNat i -> Bool+{ true [.$i] (SNat.zero [i]) = Bool.tt+; true [.$i] (SNat.succ [i] x) = true [i] x+}+term ok : .[Size] -> Bool+{ ok [i] = Bool.tt+}+--- evaluating ---+test has whnf (minus # (succ # (succ # (zero #))) (succ # (zero #)))+test evaluates to minus # (succ # (succ # (zero #))) (succ # (zero #))+--- closing "nat.ma" ---
test/succeed/nat.ma view
@@ -9,8 +9,8 @@ fun add : SNat # -> SNat # -> SNat # {-add (zero .#) y = y; -add (succ .# x) y = succ # (add x y) +add (zero .#) y = y;+add (succ .# x) y = succ # (add x y) } fun inc : (i : Size) -> (j : Size) -> SNat i -> SNat ($ i)@@ -24,12 +24,12 @@ ; minus i (succ (i > j) x) (succ .# y) = minus j x y -- subtyping j < i } -eval let test : SNat # = +eval let test : SNat # = minus # (succ # (succ # (zero #))) (succ # (zero #)) --- div n m = floor(n/(m+1)) +-- div n m = floor(n/(m+1)) fun div : [i : Size] -> SNat i -> SNat # -> SNat i-{ div i (zero (i > j)) y = zero j +{ div i (zero (i > j)) y = zero j ; div i (succ (i > j) x) y = succ j (div j (minus j x y) y) }
+ test/succeed/non-record.golden view
@@ -0,0 +1,8 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "non-record.ma" ---+--- scope checking ---+--- type checking ---+type NotARecord : ^(A : Set) -> ^(B : Set) -> Set+term NotARecord.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(y1 : B) -> < NotARecord.pair fst y1 : NotARecord A B >+--- evaluating ---+--- closing "non-record.ma" ---
+ test/succeed/old_stream.golden view
@@ -0,0 +1,114 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "old_stream.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term ifthenelse : Bool -> .[A : Set] -> A -> A -> A+{ ifthenelse Bool.tt [A] a1 a2 = a1+; ifthenelse Bool.ff [A] a1 a2 = a2+}+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero = \ y -> y+; add (Nat.succ x) = \ y -> Nat.succ (add x y)+}+term leq : Nat -> Nat -> Bool+{ leq Nat.zero y = Bool.tt+; leq (Nat.succ x) Nat.zero = Bool.ff+; leq (Nat.succ x) (Nat.succ y) = leq x y+}+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] x xs) = xs+}+term head : .[A : Set] -> .[i : Size] -> Stream A $i -> A+{ head [A] [i] (Stream.cons [.i] x xs) = x+}+term nth : Nat -> Stream Nat # -> Nat+{ nth Nat.zero xs = head [Nat] [#] xs+; nth (Nat.succ x) xs = nth x (tail [Nat] [#] xs)+}+term map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A i -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.i] x xl) = Stream.cons [i] (f x) (map [A] [B] [i] f xl)+}+term zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> (A -> B -> C) -> .[i : Size] -> Stream A i -> Stream B i -> Stream C i+{ zipWith [A] [B] [C] f $[i < #] (Stream.cons [.i] a as) (Stream.cons [.i] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] f [i] as bs)+}+term merge : .[i : Size] -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i+{ merge $[i < #] le (Stream.cons [.i] x xs) (Stream.cons [.i] y ys) = ifthenelse (le x y) [Stream Nat $i] (Stream.cons [i] x (merge [i] le xs (Stream.cons [i] y ys))) (Stream.cons [i] y (merge [i] le (Stream.cons [i] x xs) ys))+}+term one : Nat+term one = Nat.succ Nat.zero+term two : Nat+term two = Nat.succ one+term three : Nat+term three = Nat.succ two+term four : Nat+term four = Nat.succ three+term five : Nat+term five = Nat.succ four+term double : Nat -> Nat+term double = \ n -> add n n+term triple : Nat -> Nat+term triple = \ n -> add n (double n)+term ham : .[i : Size] -> Stream Nat i+{ ham $[i < #] = Stream.cons [i] one (merge [i] leq (map [Nat] [Nat] [i] double (ham [i])) (map [Nat] [Nat] [i] triple (ham [i])))+}+term fib : .[i : Size] -> Stream Nat i+{ fib $[i < #] = Stream.cons [i] Nat.zero (zipWith [Nat] [Nat] [Nat] add [i] (Stream.cons [i] one (fib [i])) (fib [i]))+}+term fibIter' : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream Nat i+{ fibIter' x y $[i < #] = Stream.cons [i] x (fibIter' y (add x y) [i])+}+term fibIter : Stream Nat #+term fibIter = fibIter' one one [?14]+term fibIter4 : Nat+term fibIter4 = nth four fibIter+term fib1 : Nat+term fib1 = nth one (fib [#])+term fib2 : Nat+term fib2 = nth two (fib [#])+term fib3 : Nat+term fib3 = nth three (fib [#])+term fib4 : Nat+term fib4 = nth four (fib [#])+term fib5 : Nat+term fib5 = nth five (fib [#])+type Leq : ^ Nat -> ^ Nat -> Set+term Leq.lqz : .[x : Nat] -> < Leq.lqz x : Leq Nat.zero x >+term Leq.lqs : .[x : Nat] -> .[y : Nat] -> ^(y2 : Leq x y) -> < Leq.lqs x y y2 : Leq (Nat.succ x) (Nat.succ y) >+type Increasing : - Size -> ^ Stream Nat # -> Set+term Increasing.inc : .[i : Size] -> .[x : Nat] -> .[y : Nat] -> ^(y3 : Leq x y) -> .[tl : Stream Nat #] -> ^(y5 : Increasing i (Stream.cons [#] y tl)) -> < Increasing.inc i x y y3 tl y5 : Increasing $i (Stream.cons [#] x (Stream.cons [#] y tl)) >+type Eq : ++(A : Set) -> ^ A -> ^ A -> Set+term Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl a : Eq A a a >+term proof : Eq (Stream Nat #) (tail [Nat] [#] fibIter) (tail [Nat] [#] fibIter)+term proof = Eq.refl [tail [Nat] [#] fibIter]+term succ_ : Nat -> Nat+term succ_ = \ x -> Nat.succ x+term evil : .[i : Size] -> Stream Nat i+{ evil $[i < #] = map [Nat] [Nat] [$i] succ_ (Stream.cons [i] Nat.zero (evil [i]))+}+term cons_ : .[A : Set] -> .[i : Size] -> A -> Stream A i -> Stream A $i+term cons_ = [\ A ->] [\ i ->] \ a -> \ as -> Stream.cons [i] a as+term dmerge : .[A : Set] -> .[i : Size] -> Stream (Stream A i) i -> Stream A i+{ dmerge [A] $[i < #] (Stream.cons [.i] ys yss) = Stream.cons [i] (head [A] [i] ys) (dmerge [A] [i] (zipWith [A] [Stream A i] [Stream A i] (cons_ [A] [i]) [i] (tail [A] [i] ys) yss))+}+--- evaluating ---+fibIter4 has whnf (head {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)))), x = Nat.zero{}}} # (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)))))}} # (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)))), x = Nat.zero{}}} # (tail {Nat {xs = (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))), x = Nat.succ{y0 = Nat.zero{}}}} # (tail {Nat {xs = (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14)), x = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}} # (tail {Nat {xs = (fibIter' one one ?14), x = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}} # (fibIter' one one ?14))))))+fibIter4 evaluates to head Nat # (tail Nat # (tail Nat # (tail Nat # (tail Nat # (fibIter' (Nat.succ Nat.zero) (Nat.succ Nat.zero) ?14)))))+fib1 has whnf Nat.succ{y0 = Nat.zero{}}+fib1 evaluates to Nat.succ Nat.zero+fib2 has whnf Nat.succ{y0 = Nat.zero{}}+fib2 evaluates to Nat.succ Nat.zero+fib3 has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}+fib3 evaluates to Nat.succ (Nat.succ Nat.zero)+fib4 has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}+fib4 evaluates to Nat.succ (Nat.succ (Nat.succ Nat.zero))+fib5 has whnf Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}}}+fib5 evaluates to Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero))))+--- closing "old_stream.ma" ---
test/succeed/old_stream.ma view
@@ -2,7 +2,7 @@ -- Booleans ---------------------------------------------------------- -data Bool : Set +data Bool : Set { tt : Bool ; ff : Bool }@@ -14,74 +14,74 @@ -- Nat --------------------------------------------------------------- -data Nat : Set +data Nat : Set { zero : Nat-; succ : Nat -> Nat +; succ : Nat -> Nat } -fun add : Nat -> Nat -> Nat +fun add : Nat -> Nat -> Nat { add zero = \ y -> y ; add (succ x) = \ y -> succ (add x y) } fun leq : Nat -> Nat -> Bool { leq zero y = tt-; leq (succ x) zero = ff -; leq (succ x) (succ y) = leq x y +; leq (succ x) zero = ff+; leq (succ x) (succ y) = leq x y } -- Stream ------------------------------------------------------------ -sized codata Stream (+ A : Set) : Size -> Set +sized codata Stream (+ A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }- + fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs } -fun head : (A : Set) -> (i : Size) -> Stream A ($ i) -> A +fun head : (A : Set) -> (i : Size) -> Stream A ($ i) -> A { head A i (cons .i x xs) = x } -fun nth : Nat -> Stream Nat # -> Nat +fun nth : Nat -> Stream Nat # -> Nat { nth zero xs = head Nat # xs-; nth (succ x) xs = nth x (tail Nat # xs) +; nth (succ x) xs = nth x (tail Nat # xs) } -- map, zip, merge --------------------------------------------------- -cofun map : (A : Set) -> (B : Set) -> (i : Size) -> - (A -> B) -> Stream A i -> Stream B i +cofun map : (A : Set) -> (B : Set) -> (i : Size) ->+ (A -> B) -> Stream A i -> Stream B i { map A B ($ i) f (cons .i x xl) = cons _ (f x) (map A B _ f xl) } cofun zipWith : (A : Set) -> (B : Set) -> (C : Set) -> (A -> B -> C) -> (i : Size) ->- Stream A i -> Stream B i -> Stream C i + Stream A i -> Stream B i -> Stream C i {- zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) = - cons i (f a b) (zipWith A B C f i as bs) + zipWith A B C f ($ i) (cons .i a as) (cons .i b bs) =+ cons i (f a b) (zipWith A B C f i as bs) } -cofun merge : (i : Size) -> (Nat -> Nat -> Bool) -> +cofun merge : (i : Size) -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i {-merge ($ i) le (cons .i x xs) (cons .i y ys) = +merge ($ i) le (cons .i x xs) (cons .i y ys) = ifthenelse (le x y) (Stream Nat _) (cons _ x (merge _ le xs (cons _ y ys)))- (cons _ y (merge _ le (cons _ x xs) ys)) + (cons _ y (merge _ le (cons _ x xs) ys)) } {--cofun merge : (i : Size) -> (Nat -> Nat -> Bool) -> +cofun merge : (i : Size) -> (Nat -> Nat -> Bool) -> Stream Nat i -> Stream Nat i -> Stream Nat i {-merge .($ i) le (cons .i x xs) (cons i y ys) = +merge .($ i) le (cons .i x xs) (cons i y ys) = ifthenelse (le x y) (Stream Nat _) (cons _ x (merge _ le xs (cons _ y ys)))- (cons _ y (merge _ le (cons _ x xs) ys)) + (cons _ y (merge _ le (cons _ x xs) ys)) } -} @@ -100,22 +100,22 @@ cofun ham : (i : Size) -> Stream Nat i {- ham ($ i) = cons _ one (merge i leq (map Nat Nat i double (ham i)) + ham ($ i) = cons _ one (merge i leq (map Nat Nat i double (ham i)) (map Nat Nat i triple (ham i))) } {- -- THIS SHOULD NOT TYPECHECK!!-cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i +cofun map2 : (i : Size) -> (Nat -> Nat) -> Stream Nat i -> Stream Nat i {-map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) = +map2 .($ ($ i)) f (cons .Nat .($ i) u (cons .Nat i x xl)) = cons _ (f u) (cons _ (f x) (map2 _ f xl)) } cofun ham2 : (i : Size) -> Stream Nat i {- ham2 ($ i) = cons _ one (merge i leq (map2 i double (ham2 i)) + ham2 ($ i) = cons _ one (merge i leq (map2 i double (ham2 i)) (map2 i triple (ham2 i))) } @@ -147,23 +147,23 @@ cofun fib : (i : Size) -> Stream Nat i {- fib ($ i) = cons _ zero (zipWith Nat Nat Nat add i + fib ($ i) = cons _ zero (zipWith Nat Nat Nat add i (cons _ one (fib i)) (fib i)) } -cofun fibIter' : (x : Nat ) -> (y : Nat ) -> (i : Size) -> Stream Nat i +cofun fibIter' : (x : Nat ) -> (y : Nat ) -> (i : Size) -> Stream Nat i { fibIter' x y ($ i) = cons _ x (fibIter' y (add x y) _)-} +} let fibIter : Stream Nat # = (fibIter' one one _) -------------------------------------------- --- fibIter(4) = 5 -eval let fibIter4 : Nat = nth four fibIter +-- fibIter(4) = 5+eval let fibIter4 : Nat = nth four fibIter eval let fib1 : Nat = nth one (fib #) eval let fib2 : Nat = nth two (fib #)@@ -182,9 +182,9 @@ sized codata Increasing : Size -> Stream Nat # -> Set {-inc : (i : Size) -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) -> +inc : (i : Size) -> (x : Nat) -> (y : Nat) -> Leq x y -> (tl : Stream Nat #) -> Increasing i (cons # y tl) ->- Increasing ($ i) (cons # x (cons # y tl)) + Increasing ($ i) (cons # x (cons # y tl)) } @@ -203,7 +203,7 @@ evil ($ i) = map Nat Nat _ succ_ (cons _ zero (evil _)) } --- eval const zzz : Nat = head # (z #) +-- eval const zzz : Nat = head # (z #) @@ -211,13 +211,12 @@ let cons_ : [A : Set] -> [i : Size] -> A -> Stream A i -> Stream A $i = \ A i a as -> cons i a as- + cofun dmerge : (A : Set) -> (i : Size) -> Stream (Stream A i) i -> Stream A i {-dmerge A ($ i) (cons .i ys yss) = +dmerge A ($ i) (cons .i ys yss) = cons i (head A _ ys) (dmerge A i- (zipWith A (Stream A _) (Stream A _) (cons_ A _) i + (zipWith A (Stream A _) (Stream A _) (cons_ A _) i (tail A _ ys) yss)) }-
+ test/succeed/oldnat.golden view
@@ -0,0 +1,41 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "oldnat.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+term add : SNat # -> SNat # -> SNat #+{ add (SNat.zero [.#]) y = y+; add (SNat.succ [.#] x) y = SNat.succ [#] (add x y)+}+term inc : .[i : Size] -> .[j : Size] -> SNat i -> SNat $i+{ inc [i] [j] x = SNat.succ [i] x+}+term minus : .[i : Size] -> SNat i -> SNat # -> SNat i+{ minus [.$i] (SNat.zero [i]) y = SNat.zero [i]+; minus [i] x (SNat.zero [.#]) = x+; minus [.$i] (SNat.succ [i] x) (SNat.succ [.#] y) = minus [i] x y+}+term test : SNat #+term test = minus [#] (SNat.succ [#] (SNat.succ [#] (SNat.zero [#]))) (SNat.succ [#] (SNat.zero [#]))+term div : .[i : Size] -> SNat i -> SNat # -> SNat i+{ div [.$i] (SNat.zero [i]) y = SNat.zero [i]+; div [.$i] (SNat.succ [i] x) y = SNat.succ [i] (div [i] (minus [i] x y) y)+}+type Bool : Set+term Bool.tt : < Bool.tt : Bool >+term Bool.ff : < Bool.ff : Bool >+term true : .[i : Size] -> SNat i -> Bool+{ true [.$i] (SNat.zero [i]) = Bool.tt+; true [.$i] (SNat.succ [i] x) = true [i] x+}+term ok : .[Size] -> Bool+{ ok [i] = Bool.tt+}+--- evaluating ---+test has whnf (minus # (succ # (succ # (zero #))) (succ # (zero #)))+test evaluates to minus # (succ # (succ # (zero #))) (succ # (zero #))+--- closing "oldnat.ma" ---
test/succeed/oldnat.ma view
@@ -9,8 +9,8 @@ fun add : SNat # -> SNat # -> SNat # {-add (zero .#) y = y; -add (succ .# x) y = succ # (add x y) +add (zero .#) y = y;+add (succ .# x) y = succ # (add x y) } fun inc : (i : Size) -> (j : Size) -> SNat i -> SNat ($ i)@@ -25,10 +25,10 @@ minus .($ i) (succ i x) (succ .# y) = minus _ x y -- subtyping i < ($ i) } -eval let test : SNat # = +eval let test : SNat # = minus # (succ # (succ # (zero #))) (succ # (zero #)) --- div n m = floor(n/(m+1)) +-- div n m = floor(n/(m+1)) fun div : [i : Size] -> SNat i -> SNat # -> SNat i { div .($ i) (zero i) y = zero _ ;
+ test/succeed/omegaInst1.golden view
@@ -0,0 +1,36 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "omegaInst1.ma" ---+--- scope checking ---+--- type checking ---+term fix : .[F : Size -> Set] -> (phi : .[i <= #] -> (f : .[j < i] -> F j) -> F i) -> .[i <= #] -> F i+{ fix [F] phi [i] = phi [i] (fix [F] phi)+}+type Bot : +(i : Size) -> Set+{ Bot i = .[j < i] & Bot j+}+type Top : -(i : Size) -> Set+{ Top i = .[j < i] -> Top j+}+term out : .[i : Size] -> (r : Top $i) -> Top i+{ out [i] r [j < i] = r [$j] [j]+}+term inn : .[i : Size] -> (t : Top i) -> Top $i+term inn = [\ i ->] \ t -> [\ j ->] t+term bad : .[F : Size -> Set] -> .[i <= #] -> (f : .[j < $i] -> F j) -> F i+term bad = [\ F ->] [\ i ->] \ f -> f [i]+block fails as expected, error message:+test+/// new F : (Size -> Set)+/// inferExpr' fix F (bad F)+/// checkApp ((phi : (.[i : Size] -> (f : .[j < i] -> F j) -> F i{F = (v0 Up (Size -> Set))})::Tm) -> .[i <= #] -> F i{F = (v0 Up (Size -> Set))}) eliminated by bad F+/// leqVal' (subtyping) .[i : Size] -> (f : .[j < $i] -> F j) -> < bad [F ] i (f j) : F i > <=+ .[i : Size] -> (f : .[j < i] -> F j) -> F i+/// new i <= #+/// comparing codomain (f : .[j < $i] -> F j) -> < bad [F ] i (f j) : F i > with (f : .[j < i] -> F j) -> F i+/// leqVal' (subtyping) (f : .[j < $i] -> F j) -> < bad [F ] i (f j) : F i > <=+ (f : .[j < i] -> F j) -> F i+/// leqVal' (subtyping) .[j < $i] -> F j <=- .[j < i] -> F j+/// leqVal' (subtyping) < $i <=+ < i+/// leSize $i <=+ i+/// leSize' $i <= i+/// leSize: 0 + 1 <= 0 failed+--- evaluating ---+--- closing "omegaInst1.ma" ---
+ test/succeed/omegaInstTailInfty.golden view
@@ -0,0 +1,48 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "omegaInstTailInfty.ma" ---+--- scope checking ---+--- type checking ---+type Inf : (F : Size -> Set) -> -(i : Size) -> Set+{ Inf F i = .[j < i] -> F j+}+term uppersemi : .[F : Size -> Set] -> (f : Inf (Inf F) #) -> Inf F #+{ uppersemi [F] f [j < #] = f [#] [j]+}+type Stream : +(A : Set) -> -(i : Size) -> Set+term Stream.scons : .[A : Set] -> .[i : Size] -> ^(shead : .[j < i] -> A) -> ^(stail : .[j < i] -> Stream A j) -> < Stream.scons shead stail : Stream A i >+term shead : .[A : Set] -> .[i : Size] -> (scons : Stream A i) -> .[j < i] -> A+{ shead [A] [i] (Stream.scons #shead #stail) = #shead+}+term stail : .[A : Set] -> .[i : Size] -> (scons : Stream A i) -> .[j < i] -> Stream A j+{ stail [A] [i] (Stream.scons #shead #stail) = #stail+}+term repeat : .[A : Set] -> (a : A) -> .[i : Size] -> Stream A i+{ repeat [A] a $[i < #] = Stream.scons ([\ j ->] a) ([\ j ->] repeat [A] a [j])+}+term tailInf : .[A : Set] -> (s : Stream A #) -> Stream A #+term tailInf = [\ A ->] \ s -> s .stail [#]+type Front : +(A : Set) -> -(i : Size) -> Set+term Front.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : .[j < i] -> Front A j) -> < Front.cons head tail : Front A i >+term head : .[A : Set] -> .[i : Size] -> (cons : Front A i) -> A+{ head [A] [i] (Front.cons #head #tail) = #head+}+term tail : .[A : Set] -> .[i : Size] -> (cons : Front A i) -> .[j < i] -> Front A j+{ tail [A] [i] (Front.cons #head #tail) = #tail+}+term eta : .[F : Size -> Set] -> .[i : Size] -> (f : .[j < i] -> F j) -> .[j < i] -> F j+{ eta [F] [i] f [j < i] = f [j]+}+term repeat : .[A : Set] -> (a : A) -> .[i : Size] -> Front A i+{ repeat [A] a [i] = Front.cons a (repeat [A] a)+; repeat [A] a [i] = Front.cons a (eta [Front A] [i] (repeat [A] a))+}+term tailInf : .[A : Set] -> (s : Front A #) -> Front A #+term tailInf = [\ A ->] \ s -> s .tail [#]+warning: ignoring error: leSize: 0 + 1 <= 0 failed+term uppersemicont : .[F : Size -> Set] -> (f : .[i < #] -> F i) -> F #+term uppersemicont = [\ F ->] \ f -> f [#]+warning: ignoring error: leSize: 0 + 1 <= 0 failed+term lowersemicont : .[F : Size -> Set] -> (a : F #) -> .[i < #] & F i+term lowersemicont = [\ F ->] \ a -> ([#] , a)+--- evaluating ---+--- closing "omegaInstTailInfty.ma" ---
+ test/succeed/pred.golden view
@@ -0,0 +1,22 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "pred.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type MaybeNat : ^(i : Size) -> Set+term MaybeNat.nothing : .[i : Size] -> < MaybeNat.nothing : MaybeNat i >+term MaybeNat.just : .[i : Size] -> ^(y0 : SNat i) -> < MaybeNat.just y0 : MaybeNat i >+term pred' : .[i : Size] -> SNat $i -> MaybeNat i+{ pred' [i] (SNat.succ [.i] n) = MaybeNat.just n+; pred' [i] (SNat.zero [.i]) = MaybeNat.nothing+}+term pred : .[i : Size] -> SNat $$i -> SNat $i+{ pred [i] (SNat.succ [.$i] n) = n+; pred [i] (SNat.zero [.$i]) = SNat.zero [i]+}+--- evaluating ---+--- closing "pred.ma" ---
test/succeed/pred.ma view
+ test/succeed/qsapp.golden view
@@ -0,0 +1,60 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "qsapp.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term if : .[A : Set] -> Bool -> A -> A -> A+{ if [A] Bool.true t e = t+; if [A] Bool.false t e = e+}+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.succ m) Nat.zero = Bool.false+; leq (Nat.succ m) (Nat.succ n) = leq m n+}+type List : + Size -> Set+term List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term List.nil : .[i : Size] -> < List.nil i : List $i >+term List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term partition : (Nat -> Bool) -> .[i : Size] -> List i -> .[A : Set] -> (List i -> List i -> A) -> A+{ partition p [i] (List.nil [j < i]) [A] k = k (List.nil [j]) (List.nil [j])+; partition p [i] (List.cons [j < i] n l) [A] k = if [A] (p n) (partition p [j] l [A] (\ l1 -> \ l2 -> k (List.cons [j] n l1) l2)) (partition p [j] l [A] (\ l1 -> \ l2 -> k l1 (List.cons [j] n l2)))+}+term qsapp : .[i : Size] -> List i -> List # -> List #+{ qsapp [i] (List.nil [j < i]) acc = acc+; qsapp [i] (List.cons [j < i] n l) acc = partition (\ m -> leq m n) [j] l [List #] (\ l1 -> \ l2 -> qsapp [j] l1 (List.cons [#] n (qsapp [j] l2 acc)))+}+term quicksort : List # -> List #+term quicksort = \ l -> qsapp [#] l (List.nil [#])+term n0 : Nat+term n0 = Nat.zero+term n1 : Nat+term n1 = Nat.succ n0+term n2 : Nat+term n2 = Nat.succ n1+term n3 : Nat+term n3 = Nat.succ n2+term n4 : Nat+term n4 = Nat.succ n3+term n5 : Nat+term n5 = Nat.succ n4+term n6 : Nat+term n6 = Nat.succ n5+term n7 : Nat+term n7 = Nat.succ n6+term n8 : Nat+term n8 = Nat.succ n7+term n9 : Nat+term n9 = Nat.succ n8+term l : List #+term l = List.cons [#] n4 (List.cons [#] n9 (List.cons [#] n1 (List.cons [#] n7 (List.cons [#] n6 (List.cons [#] n4 (List.cons [#] n0 (List.cons [#] n0 (List.cons [#] n3 (List.cons [#] n3 (List.cons [#] n3 (List.cons [#] n2 (List.cons [#] n3 (List.nil [#])))))))))))))+term l' : List #+term l' = quicksort l+--- evaluating ---+--- closing "qsapp.ma" ---
test/succeed/qsapp.ma view
@@ -1,4 +1,4 @@--- 2010-06-21 Andreas Abel +-- 2010-06-21 Andreas Abel -- Quicksort (implementation using partition) in MiniAgda -- Booleans@@ -20,7 +20,7 @@ ; succ : Nat -> Nat } -fun leq : Nat -> Nat -> Bool +fun leq : Nat -> Nat -> Bool { leq zero n = true ; leq (succ m) zero = false ; leq (succ m) (succ n) = leq m n@@ -29,18 +29,18 @@ -- Lists over natural numbers as a sized inductive type sized data List : Size -> Set-{ nil : [i : Size] -> List ($ i) +{ nil : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } -- Partition a list, continuation-style -- the lists passed to the continuation k are at most as big as the input list -fun partition : (Nat -> Bool) -> [i : Size] -> List i -> +fun partition : (Nat -> Bool) -> [i : Size] -> List i -> [A : Set] -> (List i -> List i -> A) -> A { partition p i (nil (i > j)) A k = k (nil j) (nil j) ; partition p i (cons (i > j) n l) A k = if A (p n)- (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then + (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then (partition p j l A (\ l1 -> \ l2 -> k l1 (cons j n l2))) -- else } @@ -53,7 +53,7 @@ (\ l1 -> \ l2 -> qsapp j l1 (cons # n (qsapp j l2 acc))) } --- Quicksort +-- Quicksort let quicksort : List # -> List # = \ l -> qsapp # l (nil #) @@ -71,10 +71,10 @@ let n9 : Nat = succ n8 -- qsapp is fast enough even with MiniAgda CBN-let l : List # = - (cons # n4 (cons # n9 (cons # n1 (cons # n7 (cons # n6 - (cons # n4 (cons # n0 (cons # n0 +let l : List # =+ (cons # n4 (cons # n9 (cons # n1 (cons # n7 (cons # n6+ (cons # n4 (cons # n0 (cons # n0 (cons # n3 (cons # n3 (cons # n3 (cons # n2 (cons # n3 (nil #))))))))))))))--- eval -- 2012-02-25 NO LONGER +-- eval -- 2012-02-25 NO LONGER let l' : List # = quicksort l- +
+ test/succeed/quicksort-filter-fragment.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "quicksort-filter-fragment.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term leq : Nat -> Nat -> Bool+{}+term plus : .[A : Set] -> A -> A -> A+{}+type List : + Size -> Set+term List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term List.nil : .[i : Size] -> < List.nil i : List $i >+term List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term filter : .[i : Size] -> List i -> List i+{ filter [.$i] (List.nil [i]) = List.nil [i]+; filter [.$i] (List.cons [i] n l) = plus [List $i] (filter [i] l) (List.cons [i] n (filter [i] l))+}+term quicksort : .[i : Size] -> List i -> List #+{ quicksort [.$i] (List.nil [i]) = List.nil [#]+; quicksort [.$i] (List.cons [i] n l) = plus [List #] (quicksort [i] (filter [i] l)) (List.cons [#] n (quicksort [i] (filter [i] l)))+}+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term p1 : .[i : Size] -> Id (List #) (List.nil [i]) (List.nil [#])+term p1 = [\ i ->] Id.refl+--- evaluating ---+--- closing "quicksort-filter-fragment.ma" ---
test/succeed/quicksort-filter-fragment.ma view
@@ -13,7 +13,7 @@ fun plus : [A : Set] -> A -> A -> A {} sized data List : Size -> Set-{ nil : [i : Size] -> List ($ i) +{ nil : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -24,8 +24,8 @@ fun quicksort : [i : Size] -> List i -> List # { quicksort .($ i) (nil i) = nil _-; quicksort .($ i) (cons i n l) = - plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) +; quicksort .($ i) (cons i n l) =+ plus (List #) (quicksort _ (filter i l)) (cons _ n (quicksort _ (filter i l))) } data Id (A : Set)(a : A) : A -> Set
+ test/succeed/quicksort-filter.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "quicksort-filter.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term if : .[A : Set] -> Bool -> A -> A -> A+{ if [A] Bool.true t e = t+; if [A] Bool.false t e = e+}+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.succ m) Nat.zero = Bool.false+; leq (Nat.succ m) (Nat.succ n) = leq m n+}+type List : + Size -> Set+term List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term List.nil : .[i : Size] -> < List.nil i : List $i >+term List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term append : List # -> List # -> List #+{ append (List.nil [.#]) l = l+; append (List.cons [.#] x xs) l = List.cons [#] x (append xs l)+}+term filter : (Nat -> Bool) -> .[i : Size] -> List i -> List i+{ filter p [i] (List.nil [j < i]) = List.nil [j]+; filter p [i] (List.cons [j < i] n l) = if [List $j] (p n) (List.cons [j] n (filter p [j] l)) (filter p [j] l)+}+term quicksort : .[i : Size] -> List i -> List #+{ quicksort [i] (List.nil [j < i]) = List.nil [j]+; quicksort [i] (List.cons [j < i] n l) = append (quicksort [j] (filter (\ m -> leq m n) [j] l)) (List.cons [#] n (quicksort [j] (filter (leq (Nat.succ n)) [j] l)))+}+term n0 : Nat+term n0 = Nat.zero+term n1 : Nat+term n1 = Nat.succ n0+term n2 : Nat+term n2 = Nat.succ n1+term n3 : Nat+term n3 = Nat.succ n2+term n4 : Nat+term n4 = Nat.succ n3+term n5 : Nat+term n5 = Nat.succ n4+term n6 : Nat+term n6 = Nat.succ n5+term n7 : Nat+term n7 = Nat.succ n6+term n8 : Nat+term n8 = Nat.succ n7+term n9 : Nat+term n9 = Nat.succ n8+term l : List #+term l = List.cons [#] n1 (List.cons [#] n3 (List.cons [#] n0 (List.cons [#] n2 (List.nil [#]))))+term l' : List #+term l' = quicksort [#] l+--- evaluating ---+l' has whnf List.cons{i = #; y1 = Nat.zero{}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.zero{}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}; y2 = List.nil{i = #}}}}}+l' evaluates to List.cons # Nat.zero (List.cons # (Nat.succ Nat.zero) (List.cons # (Nat.succ (Nat.succ Nat.zero)) (List.cons # (Nat.succ (Nat.succ (Nat.succ Nat.zero))) (List.nil #))))+--- closing "quicksort-filter.ma" ---
test/succeed/quicksort-filter.ma view
@@ -1,4 +1,4 @@--- 2010-06-21 Andreas Abel +-- 2010-06-21 Andreas Abel -- Quicksort (naive implementation using filter) in MiniAgda -- Booleans@@ -20,7 +20,7 @@ ; succ : Nat -> Nat } -fun leq : Nat -> Nat -> Bool +fun leq : Nat -> Nat -> Bool { leq zero n = true ; leq (succ m) zero = false ; leq (succ m) (succ n) = leq m n@@ -29,7 +29,7 @@ -- Lists over natural numbers as a sized inductive type sized data List : Size -> Set-{ nil : [i : Size] -> List ($ i) +{ nil : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -49,13 +49,13 @@ (filter p j l) -- else } --- Quicksort +-- Quicksort fun quicksort : [i : Size] -> List i -> List # { quicksort i (nil (i > j)) = nil j-; quicksort i (cons (i > j) n l) = - append (quicksort j (filter (\ m -> leq m n) j l)) - (cons # n (quicksort j (filter (leq (succ n)) j l))) +; quicksort i (cons (i > j) n l) =+ append (quicksort j (filter (\ m -> leq m n) j l))+ (cons # n (quicksort j (filter (leq (succ n)) j l))) } -- Testing@@ -72,11 +72,11 @@ let n9 : Nat = succ n8 {- MiniAgda CBN is too inefficient to do this in reasonable time-let l : List # = - (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6 - (cons # 4 (cons # 0 (cons # 0 +let l : List # =+ (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6+ (cons # 4 (cons # 0 (cons # 0 (cons # 3 (cons # 3 (cons # 3 (cons # 2 (cons # 3 (nil #)))))))))))))) -} let l : List # = cons # n1 (cons # n3 (cons # n0 (cons # n2 (nil #)))) eval let l' : List # = quicksort # l- +
+ test/succeed/quicksort.golden view
@@ -0,0 +1,64 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "quicksort.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+term if : .[A : Set] -> Bool -> A -> A -> A+{ if [A] Bool.true t e = t+; if [A] Bool.false t e = e+}+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term leq : Nat -> Nat -> Bool+{ leq Nat.zero n = Bool.true+; leq (Nat.succ m) Nat.zero = Bool.false+; leq (Nat.succ m) (Nat.succ n) = leq m n+}+type List : + Size -> Set+term List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term List.nil : .[i : Size] -> < List.nil i : List $i >+term List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term append : List # -> List # -> List #+{ append (List.nil [.#]) l = l+; append (List.cons [.#] x xs) l = List.cons [#] x (append xs l)+}+term partition : (Nat -> Bool) -> .[i : Size] -> List i -> .[A : Set] -> (List i -> List i -> A) -> A+{ partition p [i] (List.nil [j < i]) [A] k = k (List.nil [j]) (List.nil [j])+; partition p [i] (List.cons [j < i] n l) [A] k = if [A] (p n) (partition p [j] l [A] (\ l1 -> \ l2 -> k (List.cons [j] n l1) l2)) (partition p [j] l [A] (\ l1 -> \ l2 -> k l1 (List.cons [j] n l2)))+}+term quicksort : .[i : Size] -> List i -> List #+{ quicksort [i] (List.nil [j < i]) = List.nil [j]+; quicksort [i] (List.cons [j < i] n l) = partition (\ m -> leq m n) [j] l [List #] (\ l1 -> \ l2 -> append (quicksort [j] l1) (List.cons [#] n (quicksort [j] l2)))+}+term n0 : Nat+term n0 = Nat.zero+term n1 : Nat+term n1 = Nat.succ n0+term n2 : Nat+term n2 = Nat.succ n1+term n3 : Nat+term n3 = Nat.succ n2+term n4 : Nat+term n4 = Nat.succ n3+term n5 : Nat+term n5 = Nat.succ n4+term n6 : Nat+term n6 = Nat.succ n5+term n7 : Nat+term n7 = Nat.succ n6+term n8 : Nat+term n8 = Nat.succ n7+term n9 : Nat+term n9 = Nat.succ n8+term l : List #+term l = List.cons [#] n1 (List.cons [#] n3 (List.cons [#] n0 (List.cons [#] n2 (List.nil [#]))))+term l' : List #+term l' = quicksort [#] l+--- evaluating ---+l' has whnf List.cons{i = #; y1 = Nat.zero{}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.zero{}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}; y2 = List.cons{i = #; y1 = Nat.succ{y0 = Nat.succ{y0 = Nat.succ{y0 = Nat.zero{}}}}; y2 = List.nil{i = #}}}}}+l' evaluates to List.cons # Nat.zero (List.cons # (Nat.succ Nat.zero) (List.cons # (Nat.succ (Nat.succ Nat.zero)) (List.cons # (Nat.succ (Nat.succ (Nat.succ Nat.zero))) (List.nil #))))+--- closing "quicksort.ma" ---
test/succeed/quicksort.ma view
@@ -1,4 +1,4 @@--- 2010-06-21 Andreas Abel +-- 2010-06-21 Andreas Abel -- Quicksort (implementation using partition) in MiniAgda -- more efficient implementation see qsapp.ma @@ -21,7 +21,7 @@ ; succ : Nat -> Nat } -fun leq : Nat -> Nat -> Bool +fun leq : Nat -> Nat -> Bool { leq zero n = true ; leq (succ m) zero = false ; leq (succ m) (succ n) = leq m n@@ -30,7 +30,7 @@ -- Lists over natural numbers as a sized inductive type sized data List : Size -> Set-{ nil : [i : Size] -> List ($ i) +{ nil : [i : Size] -> List ($ i) ; cons : [i : Size] -> Nat -> List i -> List ($ i) } @@ -43,15 +43,15 @@ -- Partition a list, continuation-style -fun partition : (Nat -> Bool) -> [i : Size] -> List i -> +fun partition : (Nat -> Bool) -> [i : Size] -> List i -> [A : Set] -> (List i -> List i -> A) -> A { partition p i (nil (i > j)) A k = k (nil j) (nil j) ; partition p i (cons (i > j) n l) A k = if A (p n)- (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then + (partition p j l A (\ l1 -> \ l2 -> k (cons j n l1) l2)) -- then (partition p j l A (\ l1 -> \ l2 -> k l1 (cons j n l2))) -- else } --- Quicksort +-- Quicksort fun quicksort : [i : Size] -> List i -> List # { quicksort i (nil (i > j)) = nil j@@ -73,9 +73,9 @@ let n9 : Nat = succ n8 {- MiniAgda CBN is too inefficient to do this in reasonable time-let l : List # = - (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6 - (cons # 4 (cons # 0 (cons # 0 +let l : List # =+ (cons # 4 (cons # 9 (cons # 1 (cons # 7 (cons # 6+ (cons # 4 (cons # 0 (cons # 0 (cons # 3 (cons # 3 (cons # 3 (cons # 2 (cons # 3 (nil #)))))))))))))) -} let l : List # = cons # n1 (cons # n3 (cons # n0 (cons # n2 (nil #))))
+ test/succeed/rank2SizeQuantStream.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "rank2SizeQuantStream.ma" ---+--- scope checking ---+--- type checking ---+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+type Unit : Set+term Unit.triv : < Unit.triv : Unit >+term bla : .[i : Size] -> (.[j : Size] -> Stream Unit j -> Stream Unit j) -> Stream Unit i+{ bla $[i < #] f = f [$i] (Stream.cons [i] Unit.triv (bla [i] f))+}+--- evaluating ---+--- closing "rank2SizeQuantStream.ma" ---
test/succeed/rank2SizeQuantStream.ma view
@@ -6,8 +6,8 @@ data Unit : Set { triv : Unit }- + cofun bla : (i : Size) -> ((j : Size) -> Stream Unit j -> Stream Unit j) -> Stream Unit i {- bla ($ i) f = f ($ i) (cons i triv (bla i f)) + bla ($ i) f = f ($ i) (cons i triv (bla i f)) }
+ test/succeed/record.golden view
@@ -0,0 +1,25 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "record.ma" ---+--- scope checking ---+--- type checking ---+type Pair : ^(A : Set) -> ^(B : Set) -> Set+term Pair.pair : .[A : Set] -> .[B : Set] -> ^(fst : A) -> ^(snd : B) -> < Pair.pair fst snd : Pair A B >+term fst : .[A : Set] -> .[B : Set] -> (pair : Pair A B) -> A+{ fst [A] [B] (Pair.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : Set] -> (pair : Pair A B) -> B+{ snd [A] [B] (Pair.pair #fst #snd) = #snd+}+term swap : .[A : Set] -> Pair A A -> Pair A A+{ swap [A] p = Pair.pair (snd p) (fst p)+}+type Sigma : ^(A : Set) -> ^(B : A -> Set) -> Set+term Sigma.pair' : .[A : Set] -> .[B : A -> Set] -> ^(fst' : A) -> ^(snd' : B fst') -> < Sigma.pair' fst' snd' : Sigma A B >+term fst' : .[A : Set] -> .[B : A -> Set] -> (pair' : Sigma A B) -> A+{ fst' [A] [B] (Sigma.pair' #fst' #snd') = #fst'+}+term snd' : .[A : Set] -> .[B : A -> Set] -> (pair' : Sigma A B) -> B (fst' [A] [B] pair')+{ snd' [A] [B] (Sigma.pair' #fst' #snd') = #snd'+}+--- evaluating ---+--- closing "record.ma" ---
test/succeed/record.ma view
+ test/succeed/shadowDataParam.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "shadowDataParam.ma" ---+--- scope checking ---+--- type checking ---+type D : ^(name : Set) -> Set+term D.name : .[name : Set] -> < D.name : D name >+term id : .[A : Set] -> D A -> D A+{ id [A] D.name = D.name+}+type E : ^(name : Set) -> Set+term E.e : .[name : Set] -> < E.e : E name >+--- evaluating ---+--- closing "shadowDataParam.ma" ---
test/succeed/shadowDataParam.ma view
@@ -1,9 +1,9 @@ -- 2010-08-31 shadowing test -- no complaint here, because constructor name introduced after checking its sig-data D (name : Set) : Set +data D (name : Set) : Set { name : D name-} +} -- usage fine fun id : [A : Set] -> D A -> D A
+ test/succeed/sigma.golden view
@@ -0,0 +1,37 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sigma.ma" ---+--- scope checking ---+--- type checking ---+type Sigma : ++(A : Set) -> ++(B : A -> Set) -> Set+term Sigma.pair : .[A : Set] -> .[B : A -> Set] -> ^(fst : A) -> ^(snd : B fst) -> < Sigma.pair fst snd : Sigma A B >+term fst : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> A+{ fst [A] [B] (Sigma.pair #fst #snd) = #fst+}+term snd : .[A : Set] -> .[B : A -> Set] -> (pair : Sigma A B) -> B (fst [A] [B] pair)+{ snd [A] [B] (Sigma.pair #fst #snd) = #snd+}+type IT : Set+term IT.it : ^(y0 : Sigma IT (\ x -> IT)) -> < IT.it y0 : IT >+type Id : ++(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term etaSigma : .[A : Set] -> .[B : A -> Set] -> (p : Sigma A B) -> Id (Sigma A B) p (Sigma.pair (fst p) (snd p))+term etaSigma = [\ A ->] [\ B ->] \ p -> Id.refl+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Bool2 : Set+type Bool2 = Sigma Bool (\ b -> Bool)+term pair2 : Bool -> Bool -> Bool2+term pair2 = \ b1 -> \ b2 -> Sigma.pair b1 b2+term fst2 : Bool2 -> Bool+term fst2 = \ y -> fst y+term snd2 : Bool2 -> Bool+term snd2 = \ y -> snd y+term bla : Bool -> Bool2+{ bla Bool.true = pair2 Bool.true Bool.false+; bla Bool.false = pair2 Bool.false Bool.false+}+term etaBool2 : (b : Bool) -> Id Bool2 (bla b) (pair2 (fst2 (bla b)) (snd2 (bla b)))+term etaBool2 = \ b -> Id.refl+--- evaluating ---+--- closing "sigma.ma" ---
test/succeed/sigma.ma view
@@ -21,7 +21,7 @@ } -- eta equality for neutral terms-let etaSigma : (A : Set) -> (B : A -> Set) -> (p : Sigma A B) -> +let etaSigma : (A : Set) -> (B : A -> Set) -> (p : Sigma A B) -> Id (Sigma A B) p (pair (fst p) (snd p)) = \ A -> \ B -> \ p -> refl -- (Sigma A B) p data Bool : Set@@ -29,7 +29,7 @@ ; false : Bool } -let Bool2 : Set +let Bool2 : Set = Sigma Bool (\ b -> Bool) let pair2 : Bool -> Bool -> Bool2 = \ b1 b2 -> pair {- Bool (\ b -> Bool)-} b1 b2
+ test/succeed/simple_nat.golden view
@@ -0,0 +1,13 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "simple_nat.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero x = x+; add (Nat.suc y) x = Nat.suc (add y x)+}+--- evaluating ---+--- closing "simple_nat.ma" ---
test/succeed/simple_nat.ma view
@@ -1,10 +1,10 @@-data Nat : Set +data Nat : Set { zero : Nat ; suc : Nat -> Nat } -fun add : Nat -> Nat -> Nat -{ add zero x = x +fun add : Nat -> Nat -> Nat+{ add zero x = x ; add (suc y) x = suc (add y x) }
+ test/succeed/singleton.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "singleton.ma" ---+--- scope checking ---+--- type checking ---+term id : .[A : Set] -> (x : A) -> < x : A >+term id = [\ A ->] \ x -> x+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+term zero' : < Nat.zero : Nat >+term zero' = Nat.zero+term succ' : (x : Nat) -> < Nat.succ x : Nat >+term succ' = \ x -> Nat.succ x+term pred : .[x : Nat] -> < Nat.succ x : Nat > -> < x : Nat >+{ pred [.x] (Nat.succ x) = x+}+term kzero : (x : Nat) -> < Nat.zero : Nat >+{ kzero Nat.zero = Nat.zero+; kzero (Nat.succ x) = kzero x+}+type IsZero : ^ Nat -> Set+term IsZero.isZero : < IsZero.isZero : IsZero Nat.zero >+term p : (x : Nat) -> IsZero (kzero x)+term p = \ x -> IsZero.isZero+term pzero : (< Nat.zero : Nat > -> Nat) -> Nat -> < Nat.zero : Nat >+{ pzero f Nat.zero = Nat.zero+; pzero f (Nat.succ x) = kzero (f (pzero f x))+}+term qzero : ((n : Nat) -> IsZero n -> Nat) -> Nat -> < Nat.zero : Nat >+{ qzero f Nat.zero = Nat.zero+; qzero f (Nat.succ x) = kzero (f (qzero f x) IsZero.isZero)+}+type Unit : Set+term Unit.unit : < Unit.unit : Unit >+type Empty : Set+type Zero : (n : Nat) -> Set+{ Zero Nat.zero = Unit+; Zero (Nat.succ x) = Empty+}+term bla : ((n : Nat) -> Zero n -> Nat) -> (Nat -> < Nat.zero : Nat >) -> Nat -> Nat+term bla = \ f -> \ g -> \ x -> f (g x) Unit.unit+--- evaluating ---+--- closing "singleton.ma" ---
test/succeed/singleton.ma view
@@ -3,12 +3,12 @@ let id : (A : Set) -> (x : A) -> <x : A> = \ A -> \ x -> x -data Nat : Set +data Nat : Set { zero : Nat ; succ : Nat -> Nat } -let zero' +let zero' : <zero : Nat> = zero @@ -18,19 +18,19 @@ fun pred : [x : Nat] -> <succ x : Nat> -> <x : Nat> { pred .x (succ x) = x-} +} -- the recursive constant zero function fun kzero : (x : Nat) -> <zero : Nat> { kzero zero = zero-; kzero (succ x) = kzero x +; kzero (succ x) = kzero x } -- eta-expansion turns this into the non-recursive--- kzero x = zero +-- kzero x = zero data IsZero : Nat -> Set { isZero : IsZero zero-} +} let p : (x : Nat) -> IsZero (kzero x) = \ x -> isZero@@ -44,7 +44,7 @@ fun pzero : (<zero : Nat> -> Nat) -> Nat -> <zero : Nat> { pzero f zero = zero-; pzero f (succ x) = kzero (f (pzero f x)) +; pzero f (succ x) = kzero (f (pzero f x)) } {- type checking the second clause succees with bidirectional t.c. Gamma = f : <zero> -> Nat@@ -57,7 +57,7 @@ fun qzero : ((n : Nat) -> IsZero n -> Nat) -> Nat -> <zero : Nat> { qzero f zero = zero-; qzero f (succ x) = kzero (f (qzero f x) isZero) +; qzero f (succ x) = kzero (f (qzero f x) isZero) } {- type checking the second clause FAILS with bidirectional t.c. Gamma = f : (n : Nat) -> IsZero n -> Nat@@ -66,7 +66,7 @@ ? Gamma |- f (qzero f x) isZero : Nat ?1 Gamma |- qzero f x : Nat- ?2 Gamma |- isZero : IsZero (qzero f x) + ?2 Gamma |- isZero : IsZero (qzero f x) Here we fail, since we just substituted the value (qzero f x) for n. The information qzero f x = 0 is lost.
+ test/succeed/sizeFunctions.golden view
@@ -0,0 +1,33 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizeFunctions.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type N : Set+term N.zz : < N.zz : N >+term N.ss : ^(y0 : N) -> < N.ss y0 : N >+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+size infty : Size+size infty = #+size ssuc : Size -> Size+size ssuc = \ i -> $i+size maybeSuc : (b : Bool) -> Size -> Size+{ maybeSuc Bool.true i = $i+; maybeSuc Bool.false i = i+}+size addSize : N -> Size -> Size+{ addSize N.zz i = i+; addSize (N.ss n) i = $(addSize n i)+}+term addSNat : (n : N) -> .[i : Size] -> Nat i -> Nat (addSize n i)+{ addSNat N.zz [i] m = m+; addSNat (N.ss n) [i] m = Nat.succ [addSize n i] (addSNat n [i] m)+}+--- evaluating ---+--- closing "sizeFunctions.ma" ---
test/succeed/sizeFunctions.ma view
@@ -30,6 +30,6 @@ fun addSNat : (n : N) -> (i : Size) -> Nat i -> Nat (addSize n i) { addSNat zz i m = m-; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) +; addSNat (ss n) i m = succ (addSize n i) (addSNat n i m) }
+ test/succeed/sizedFinitelyBranchingTrees.golden view
@@ -0,0 +1,21 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedFinitelyBranchingTrees.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type Fin : ^ Nat -> Set+term Fin.fzero : .[n : Nat] -> < Fin.fzero n : Fin (Nat.succ n) >+term Fin.fsucc : .[n : Nat] -> ^(y1 : Fin n) -> < Fin.fsucc n y1 : Fin (Nat.succ n) >+type Tree : ^(A : Set) -> + Size -> Set+term Tree.leaf : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^ A -> Tree A s!ze+term Tree.leaf : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> < Tree.leaf i y1 : Tree A $i >+term Tree.node : .[A : Set] -> .[s!ze : Size] -> .[i < s!ze] -> ^(n : Nat) -> ^ (Fin n -> Tree A i) -> Tree A s!ze+term Tree.node : .[A : Set] -> .[i : Size] -> ^(n : Nat) -> ^(y2 : Fin n -> Tree A i) -> < Tree.node i n y2 : Tree A $i >+term map : .[A : Set] -> .[B : Set] -> (A -> B) -> .[i : Size] -> Tree A i -> Tree B i+{ map [A] [B] f [i] (Tree.leaf [j < i] a) = Tree.leaf [j] (f a)+; map [A] [B] f [i] (Tree.node [j < i] n s) = Tree.node [j] n (\ k -> map [A] [B] f [j] (s k))+}+--- evaluating ---+--- closing "sizedFinitelyBranchingTrees.ma" ---
test/succeed/sizedFinitelyBranchingTrees.ma view
@@ -13,8 +13,8 @@ ; node : [i : Size] -> (n : Nat) -> (Fin n -> Tree A i) -> Tree A ($ i) } -fun map : [A : Set] -> [B : Set] -> (A -> B) -> +fun map : [A : Set] -> [B : Set] -> (A -> B) -> [i : Size] -> Tree A i -> Tree B i { map A B f i (leaf (i > j) a) = leaf j (f a)-; map A B f i (node (i > j) n s) = node j n (\ k -> map A B f j (s k)) +; map A B f i (node (i > j) n s) = node j n (\ k -> map A B f j (s k)) }
+ test/succeed/sizedMax.golden view
@@ -0,0 +1,23 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedMax.ma" ---+--- scope checking ---+--- type checking ---+type Nat : + Size -> Set+term Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze+term Nat.zero : .[i : Size] -> < Nat.zero i : Nat $i >+term Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat i -> Nat s!ze+term Nat.succ : .[i : Size] -> ^(y1 : Nat i) -> < Nat.succ i y1 : Nat $i >+term maxN : .[i : Size] -> Nat i -> Nat i -> Nat i+{ maxN [.$i] (Nat.zero [.i]) (Nat.zero [i]) = Nat.zero [i]+; maxN [.$i] (Nat.zero [.i]) (Nat.succ [i] n) = Nat.succ [i] n+; maxN [.$i] (Nat.succ [.i] n) (Nat.zero [i]) = Nat.succ [i] n+; maxN [.$i] (Nat.succ [.i] n) (Nat.succ [i] m) = Nat.succ [i] (maxN [i] n m)+}+term maxN : .[i : Size] -> Nat i -> Nat i -> Nat i+{ maxN [i] (Nat.zero [j < i]) (Nat.zero [k < i]) = Nat.zero [j]+; maxN [i] (Nat.zero [j < i]) (Nat.succ [k < i] m) = Nat.succ [k] m+; maxN [i] (Nat.succ [j < i] n) (Nat.zero [k < i]) = Nat.succ [j] n+; maxN [i] (Nat.succ [j < i] n) (Nat.succ [k < i] m) = Nat.succ [max j k] (maxN [max j k] n m)+}+--- evaluating ---+--- closing "sizedMax.ma" ---
test/succeed/sizedMax.ma view
@@ -3,18 +3,18 @@ ; succ : [i : Size] -> Nat i -> Nat ($ i) } -check fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i +check fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i { maxN .($ i) (zero .i) (zero i) = zero i ; maxN .($ i) (zero .i) (succ i n) = succ i n ; maxN .($ i) (succ .i n) (zero i) = succ i n ; maxN .($ i) (succ .i n) (succ i m) = succ i (maxN i n m) }- -fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i ++fun maxN : [i : Size] -> Nat i -> Nat i -> Nat i { maxN i (zero (i > j) ) (zero (i > k) ) = zero j ; maxN i (zero (i > j) ) (succ (i > k) m) = succ k m ; maxN i (succ (i > j) n) (zero (i > k) ) = succ j n-; maxN i (succ (i > j) n) (succ (i > k) m) = succ (max j k) +; maxN i (succ (i > j) n) (succ (i > k) m) = succ (max j k) (maxN (max j k) n m) } @@ -31,6 +31,6 @@ j <= _Y k <= _Y _Y <= _X- -Needs to be solved as _X = _Y = max j k ++Needs to be solved as _X = _Y = max j k -}
+ test/succeed/sizedMergeWith.golden view
@@ -0,0 +1,28 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedMergeWith.ma" ---+--- scope checking ---+--- type checking ---+type Bool : Set+term Bool.true : < Bool.true : Bool >+term Bool.false : < Bool.false : Bool >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(y0 : Nat) -> < Nat.suc y0 : Nat >+type List : + Size -> Set+term List.nil : .[s!ze : Size] -> .[i < s!ze] -> List s!ze+term List.nil : .[i : Size] -> < List.nil i : List $i >+term List.cons : .[s!ze : Size] -> .[i < s!ze] -> ^ Nat -> ^ List i -> List s!ze+term List.cons : .[i : Size] -> ^(y1 : Nat) -> ^(y2 : List i) -> < List.cons i y1 y2 : List $i >+term leq : Nat -> Nat -> Bool+{}+term merge : .[i : Size] -> List i -> .[j : Size] -> List j -> List #+term merge_aux : .[i : Size] -> Nat -> List i -> .[j : Size] -> Nat -> List j -> Bool -> List #+{ merge [.$i] (List.nil [i]) [j] l = l+; merge [i] l [.$j] (List.nil [j]) = l+; merge [.$i] (List.cons [i] x xs) [.$j] (List.cons [j] y ys) = merge_aux [i] x xs [j] y ys (leq x y)+}+{ merge_aux [i] x xs [j] y ys Bool.true = List.cons [#] x (merge [i] xs [$j] (List.cons [j] y ys))+; merge_aux [i] x xs [j] y ys Bool.false = List.cons [#] y (merge [$i] (List.cons [i] x xs) [j] ys)+}+--- evaluating ---+--- closing "sizedMergeWith.ma" ---
test/succeed/sizedMergeWith.ma view
@@ -9,7 +9,7 @@ } sized data List : Size -> Set-{ nil : (i : Size) -> List ($ i) +{ nil : (i : Size) -> List ($ i) ; cons : (i : Size) -> Nat -> List i -> List ($ i) } @@ -24,6 +24,6 @@ } fun merge_aux : (i : Size) -> Nat -> List i -> (j : Size) -> Nat -> List j -> Bool -> List # { merge_aux i x xs j y ys true = cons # x (merge i xs ($ j) (cons j y ys))- ; merge_aux i x xs j y ys false = cons # y (merge ($ i) (cons i x xs) j ys) + ; merge_aux i x xs j y ys false = cons # y (merge ($ i) (cons i x xs) j ys) } }
+ test/succeed/sizedOrd.golden view
@@ -0,0 +1,27 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "sizedOrd.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type Ord : + Size -> Set+term Ord.ozero : .[s!ze : Size] -> .[i < s!ze] -> Ord s!ze+term Ord.ozero : .[i : Size] -> < Ord.ozero i : Ord $i >+term Ord.osucc : .[s!ze : Size] -> .[i < s!ze] -> ^ Ord i -> Ord s!ze+term Ord.osucc : .[i : Size] -> ^(y1 : Ord i) -> < Ord.osucc i y1 : Ord $i >+term Ord.olim : .[s!ze : Size] -> .[i < s!ze] -> ^ (Nat -> Ord i) -> Ord s!ze+term Ord.olim : .[i : Size] -> ^(y1 : Nat -> Ord i) -> < Ord.olim i y1 : Ord $i >+term maxO : .[i : Size] -> Ord i -> Ord i -> Ord i+{ maxO [i] (Ord.ozero [j < i]) q = q+; maxO [i] p (Ord.ozero [k < i]) = p+; maxO [i] (Ord.olim [j < i] f) (Ord.olim [k < i] g) = Ord.olim [max j k] (\ n -> maxO [max j k] (f n) (g n))+; maxO [i] (Ord.osucc [j < i] p) (Ord.osucc [k < i] q) = Ord.osucc [max j k] (maxO [max j k] p q)+}+term idO : .[i : Size] -> Ord i -> Ord i+{ idO [i] (Ord.ozero [j < i]) = Ord.ozero [j]+; idO [i] (Ord.osucc [j < i] p) = Ord.osucc [j] (idO [j] p)+; idO [i] (Ord.olim [j < i] f) = Ord.olim [j] (\ n -> idO [j] (f n))+}+--- evaluating ---+--- closing "sizedOrd.ma" ---
test/succeed/sizedOrd.ma view
@@ -12,7 +12,7 @@ fun maxO : [i : Size] -> Ord i -> Ord i -> Ord i { maxO i (ozero (i > j)) q = q ; maxO i p (ozero (i > k)) = p-; maxO i (olim (i > j) f) (olim (i > k) g) = +; maxO i (olim (i > j) f) (olim (i > k) g) = olim (max j k) (\ n -> maxO (max j k) (f n) (g n)) ; maxO i (osucc (i > j) p) (osucc (i > k) q) = osucc (max j k) (maxO (max j k) p q)@@ -23,4 +23,4 @@ { idO i (ozero (i > j) ) = ozero j ; idO i (osucc (i > j) p) = osucc j (idO j p) ; idO i (olim (i > j) f) = olim j (\ n -> idO j (f n))-} +}
+ test/succeed/streamIdentityNatRecursive.golden view
@@ -0,0 +1,17 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "streamIdentityNatRecursive.ma" ---+--- scope checking ---+--- type checking ---+type SNat : + Size -> Set+term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze+term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i >+term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze+term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i >+type Stream : - Size -> Set+term Stream.cons : .[i : Size] -> ^(y1 : SNat #) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i >+term sid : .[i : Size] -> SNat i -> .[j : Size] -> Stream j -> Stream j+{ sid [.$i] (SNat.zero [i]) [j] xs = xs+; sid [.$i] (SNat.succ [i] y) [j] xs = sid [i] y [j] xs+}+--- evaluating ---+--- closing "streamIdentityNatRecursive.ma" ---
+ test/succeed/subset.golden view
@@ -0,0 +1,29 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "subset.ma" ---+--- scope checking ---+--- type checking ---+type Subset : ^(A : Set) -> ^(P : A -> Set) -> Set+term Subset.put : .[A : Set] -> .[P : A -> Set] -> ^(get : A) -> .[y1 : P get] -> < Subset.put get y1 : Subset A P >+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(y0 : Nat) -> < Nat.succ y0 : Nat >+type Odd : ^ Nat -> Set+term Odd.odd1 : < Odd.odd1 : Odd (Nat.succ Nat.zero) >+term Odd.odd3 : < Odd.odd3 : Odd (Nat.succ (Nat.succ (Nat.succ Nat.zero))) >+term Odd.oddSS : .[n : Nat] -> ^(y1 : Odd n) -> < Odd.oddSS n y1 : Odd (Nat.succ (Nat.succ n)) >+type Eq : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Eq.refl : .[A : Set] -> .[a : A] -> < Eq.refl : Eq A a a >+type OddN : Set+type OddN = Subset Nat Odd+term one : Nat+term one = Nat.succ Nat.zero+term three : Nat+term three = Nat.succ (Nat.succ one)+term o3 : OddN+term o3 = Subset.put three [Odd.odd3]+term o3' : OddN+term o3' = Subset.put three [Odd.oddSS [one] Odd.odd1]+term p : Eq OddN o3 o3'+term p = Eq.refl+--- evaluating ---+--- closing "subset.ma" ---
test/succeed/subset.ma view
@@ -2,11 +2,11 @@ data Subset (A : Set) (P : A -> Set) : Set {- put : (get : A) -> [P get] -> Subset A P + put : (get : A) -> [P get] -> Subset A P } data Nat : Set-{ +{ zero : Nat; succ : Nat -> Nat }@@ -24,14 +24,14 @@ refl : Eq A a a } -let OddN : Set +let OddN : Set = Subset Nat Odd let one : Nat = succ zero let three : Nat- = succ (succ one) + = succ (succ one) let o3 : OddN = put three odd3@@ -40,4 +40,4 @@ = put three (oddSS one odd1) let p : Eq OddN o3 o3'- = refl + = refl
+ test/succeed/tailStream.golden view
@@ -0,0 +1,11 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "tailStream.ma" ---+--- scope checking ---+--- type checking ---+type Stream : ++(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term tail : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ tail [A] [i] (Stream.cons [.i] x xs) = xs+}+--- evaluating ---+--- closing "tailStream.ma" ---
test/succeed/tailStream.ma view
@@ -4,7 +4,7 @@ } -- tail is fine since it is non-recursive, so the type need not be--- admissible +-- admissible fun tail : (A : Set) -> (i : Size) -> Stream A ($ i) -> Stream A i { tail A i (cons .i x xs) = xs
+ test/succeed/vec.golden view
@@ -0,0 +1,43 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "vec.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.suc : ^(pred : Nat) -> < Nat.suc pred : Nat >+term add : Nat -> Nat -> Nat+{ add Nat.zero y = y+; add (Nat.suc x) y = Nat.suc (add x y)+}+type Vec' : ++(A : Set) -> ^ Nat -> Set+term Vec'.vnil' : .[A : Set] -> < Vec'.vnil' : Vec' A Nat.zero >+term Vec'.vcons' : .[A : Set] -> .[n : Nat] -> ^(head' : A) -> ^(tail' : Vec' A n) -> < Vec'.vcons' n head' tail' : Vec' A (Nat.suc n) >+term head' : .[A : Set] -> .[n : Nat] -> (vcons' : Vec' A (Nat.suc n)) -> A+{ head' [A] [n] (Vec'.vcons' [.n] #head' #tail') = #head'+}+term tail' : .[A : Set] -> .[n : Nat] -> (vcons' : Vec' A (Nat.suc n)) -> Vec' A n+{ tail' [A] [n] (Vec'.vcons' [.n] #head' #tail') = #tail'+}+type Vec : ++(A : Set) -> ^ Nat -> Set+term Vec.vnil : .[A : Set] -> < Vec.vnil : Vec A Nat.zero >+term Vec.vcons : .[A : Set] -> ^(head : A) -> .[n : Nat] -> ^(tail : Vec A n) -> < Vec.vcons head n tail : Vec A (Nat.suc n) >+term head : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> A+{ head [A] [n] (Vec.vcons #head [.n] #tail) = #head+}+term tail : .[A : Set] -> .[n : Nat] -> (vcons : Vec A (Nat.suc n)) -> Vec A n+{ tail [A] [n] (Vec.vcons #head [.n] #tail) = #tail+}+term length : .[A : Set] -> .[n : Nat] -> Vec A n -> Nat+{ length [A] [.Nat.zero] Vec.vnil = Nat.zero+; length [A] [.(suc n)] (Vec.vcons x [n] xs) = Nat.suc (length [A] [n] xs)+}+term append : .[A : Set] -> .[n : Nat] -> Vec A n -> .[m : Nat] -> Vec A m -> Vec A (add n m)+{ append [A] [.Nat.zero] Vec.vnil [m] ys = ys+; append [A] [.(suc n)] (Vec.vcons x [n] xs) [m] ys = Vec.vcons x [add n m] (append [A] [n] xs [m] ys)+}+type Id : ^(A : Set) -> ^(a : A) -> ^ A -> Set+term Id.refl : .[A : Set] -> .[a : A] -> < Id.refl : Id A a a >+term vec0vnil : .[A : Set] -> (v : Vec A Nat.zero) -> Id (Vec A Nat.zero) v Vec.vnil+term vec0vnil = [\ A ->] \ v -> Id.refl+--- evaluating ---+--- closing "vec.ma" ---
+ test/succeed/wkStream.golden view
@@ -0,0 +1,106 @@+MiniAgda by Andreas Abel and Karl Mehltretter+--- opening "wkStream.ma" ---+--- scope checking ---+--- type checking ---+type Nat : Set+term Nat.zero : < Nat.zero : Nat >+term Nat.succ : ^(x : Nat) -> < Nat.succ x : Nat >+term add : Nat -> Nat -> Nat+{ add x Nat.zero = x+; add x (Nat.succ y) = Nat.succ (add x y)+}+term one : Nat+term one = Nat.succ Nat.zero+type Stream : ^(A : Set) -> - Size -> Set+term Stream.cons : .[A : Set] -> .[i : Size] -> ^(y1 : A) -> ^(y2 : Stream A i) -> < Stream.cons i y1 y2 : Stream A $i >+term zeroes : .[i : Size] -> Stream Nat i+{ zeroes $[i < #] = Stream.cons [i] Nat.zero (zeroes [i])+}+term ones : .[i : Size] -> Stream Nat i+{ ones $[i < #] = Stream.cons [i] one (ones [i])+}+term ones' : Stream Nat #+term ones' = ones [#]+term map : .[A : Set] -> .[B : Set] -> .[i : Size] -> (A -> B) -> Stream A # -> Stream B i+{ map [A] [B] $[i < #] f (Stream.cons [.#] a as) = Stream.cons [i] (f a) (map [A] [B] [i] f as)+}+term twos : Stream Nat #+term twos = map [Nat] [Nat] [#] (\ x -> Nat.succ x) ones'+term tail : .[A : Set] -> Stream A # -> Stream A #+{ tail [A] (Stream.cons [.#] a as) = as+}+term twos' : Stream Nat #+term twos' = tail [Nat] twos+term head : .[A : Set] -> Stream A # -> A+{ head [A] (Stream.cons [.#] a as) = a+}+term two : Nat+term two = head [Nat] twos+term two' : Nat+term two' = head [Nat] twos'+term twos2 : Stream Nat #+term twos2 = map [Nat] [Nat] [#] (\ y -> Nat.succ y) ones'+term twos2' : Stream Nat #+term twos2' = tail [Nat] twos2+term zipWith : .[A : Set] -> .[B : Set] -> .[C : Set] -> .[i : Size] -> (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i+{ zipWith [A] [B] [C] $[i < #] f (Stream.cons [.#] a as) (Stream.cons [.#] b bs) = Stream.cons [i] (f a b) (zipWith [A] [B] [C] [i] f as bs)+}+term nth : Nat -> Stream Nat # -> Nat+{ nth Nat.zero ns = head [Nat] ns+; nth (Nat.succ x) ns = nth x (tail [Nat] ns)+}+term fours : Stream Nat #+term fours = zipWith [Nat] [Nat] [Nat] [#] add twos twos+term four : Nat+term four = head [Nat] fours+term fib : (x : Nat) -> (y : Nat) -> .[i : Size] -> Stream Nat i+{ fib x y $[i < #] = Stream.cons [$i] x (Stream.cons [i] y (fib y (add x y) [i]))+}+term fib' : Stream Nat #+term fib' = tail [Nat] (fib Nat.zero Nat.zero [#])+term fib8 : Nat+term fib8 = nth (add four four) (fib Nat.zero Nat.zero [#])+term fib2 : Nat+term fib2 = head [Nat] (tail [Nat] (fib Nat.zero Nat.zero [#]))+term nats : .[i : Size] -> Nat -> Stream Nat i+{ nats $[i < #] x = Stream.cons [i] x (nats [i] (Nat.succ x))+}+term nats' : Stream Nat #+term nats' = tail [Nat] (nats [#] Nat.zero)+term wkStream : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+term wkStream = [\ A ->] [\ i ->] \ s -> s+term wkStream_ok : .[A : Set] -> .[i : Size] -> Stream A $i -> Stream A i+{ wkStream_ok [A] $[i < #] (Stream.cons [.$i] x xs) = Stream.cons [i] x (wkStream [A] [i] xs)+}+--- evaluating ---+one has whnf (succ zero)+one evaluates to succ zero+ones' has whnf (ones #)+ones' evaluates to Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (Stream.cons # (Nat.succ Nat.zero) (ones #)))))+twos has whnf (map Nat Nat # (\ x -> succ x) ones')+twos evaluates to Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (map Nat Nat # (\ x~0 -> succ ~0) (ones #))))))+twos' has whnf (map Nat Nat # (\x -> Nat.succ x) (ones #))+twos' evaluates to Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (map Nat Nat # (\ x~0 -> Nat.succ ~0) (ones #))))))+two has whnf Nat.succ{x = Nat.succ{x = Nat.zero{}}}+two evaluates to Nat.succ (Nat.succ Nat.zero)+two' has whnf Nat.succ{x = Nat.succ{x = Nat.zero{}}}+two' evaluates to Nat.succ (Nat.succ Nat.zero)+twos2 has whnf (map Nat Nat # succ ones')+twos2 evaluates to Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (Stream.cons # (succ (Nat.succ Nat.zero)) (map Nat Nat # succ (ones #))))))+twos2' has whnf (map Nat Nat # (\y -> Nat.succ y) (ones #))+twos2' evaluates to Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (Stream.cons # (Nat.succ (Nat.succ Nat.zero)) (map Nat Nat # (\ y~0 -> Nat.succ ~0) (ones #))))))+fours has whnf (zipWith Nat Nat Nat # add twos twos)+fours evaluates to Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))) (zipWith Nat Nat Nat # (\ ~0 -> \ ~1 -> add ~0 ~1) (map Nat Nat # (\ x~0 -> Nat.succ ~0) (ones #)) (map Nat Nat # (\ x~0 -> Nat.succ ~0) (ones #)))))))+four has whnf Nat.succ{x = Nat.succ{x = Nat.succ{x = Nat.succ{x = Nat.zero{}}}}}+four evaluates to Nat.succ (Nat.succ (Nat.succ (Nat.succ Nat.zero)))+fib' has whnf Stream.cons{i = #; y1 = zero; y2 = {fib y (add x y) [i] {i = #, y = zero, x = zero}}}+fib' evaluates to Stream.cons # zero (Stream.cons # zero (Stream.cons # (add zero zero) (Stream.cons # (add zero zero) (Stream.cons # (add zero (add zero zero)) (Stream.cons # (add zero (add zero zero)) (Stream.cons # (add (add zero zero) (add zero (add zero zero))) (Stream.cons # (add (add zero zero) (add zero (add zero zero))) (Stream.cons # (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))) (Stream.cons # (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))) (Stream.cons # (add (add (add zero zero) (add zero (add zero zero))) (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero))))) (fib (add (add (add zero zero) (add zero (add zero zero))) (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero))))) (add (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))) (add (add (add zero zero) (add zero (add zero zero))) (add (add zero (add zero zero)) (add (add zero zero) (add zero (add zero zero)))))) #)))))))))))+fib8 has whnf (add (add zero zero) (add zero (add zero zero)))+fib8 evaluates to add (add zero zero) (add zero (add zero zero))+fib2 has whnf zero+fib2 evaluates to zero+nats' has whnf (nats # {Nat.succ x {x = zero, i = #}})+nats' evaluates to Stream.cons # (Nat.succ zero) (Stream.cons # (Nat.succ (Nat.succ zero)) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ zero))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ zero)))) (Stream.cons # (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ zero))))) (nats # (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ (Nat.succ zero)))))))))))+wkStream has whnf (\A -> \ i -> \ s -> s)+wkStream evaluates to \ A~0 -> \ i~1 -> \ s~2 -> ~2+--- closing "wkStream.ma" ---
test/succeed/wkStream.ma view
@@ -1,7 +1,7 @@-data Nat : Set +data Nat : Set {- zero : Nat ;- succ : (x : Nat) -> Nat+ zero : Nat ;+ succ : (x : Nat) -> Nat } fun add : Nat -> Nat -> Nat@@ -12,7 +12,7 @@ eval let one : Nat = succ zero -sized codata Stream (A : Set) : Size -> Set +sized codata Stream (A : Set) : Size -> Set { cons : (i : Size) -> A -> Stream A i -> Stream A ($ i) }@@ -21,7 +21,7 @@ { zeroes ($ i) = cons i zero (zeroes i) }- + cofun ones : (i : Size) -> Stream Nat i { ones ($ i) = cons i one (ones i)@@ -33,7 +33,7 @@ (A -> B) -> Stream A # -> Stream B i { map A B ($ i) f (cons .# a as) = cons i (f a) (map A B i f as)-} +} eval let twos : Stream Nat # = map Nat Nat # ( \ x -> succ x) ones' @@ -53,16 +53,16 @@ head A (cons .# a as) = a } -eval let two : Nat = head Nat twos +eval let two : Nat = head Nat twos eval let two' : Nat = head Nat twos' eval let twos2 : Stream Nat # = map Nat Nat # succ ones' eval let twos2' : Stream Nat # = tail Nat twos2 cofun zipWith : ( A : Set ) -> ( B : Set ) -> (C : Set) -> ( i : Size ) ->- (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i+ (A -> B -> C) -> Stream A # -> Stream B # -> Stream C i {-zipWith A B C ($ i) f (cons .# a as) (cons .# b bs) = +zipWith A B C ($ i) f (cons .# a as) (cons .# b bs) = cons i (f a b) (zipWith A B C i f as bs) } @@ -71,7 +71,7 @@ fun nth : Nat -> Stream Nat # -> Nat { nth zero ns = head Nat ns;-nth (succ x) ns = nth x (tail Nat ns) +nth (succ x) ns = nth x (tail Nat ns) } eval let fours : Stream Nat # = zipWith Nat Nat Nat # add twos twos@@ -82,9 +82,9 @@ cofun fib : (x : Nat ) -> (y : Nat ) -> (i : Size ) -> Stream Nat i { fib x y ($ i) = (cons ($ i) x (cons i y (fib y (add x y) i)))-} +} -eval let fib' : Stream Nat # = tail Nat (fib zero zero #) +eval let fib' : Stream Nat # = tail Nat (fib zero zero #) eval let fib8 : Nat = nth (add four four) (fib zero zero #)@@ -105,7 +105,6 @@ -- should be ok but does not pass admissibility check cofun wkStream_ok : ( A : Set ) -> (i : Size ) -> Stream A ($ i) -> Stream A i {-wkStream_ok A ($ i) (cons .($ i) x xs) = cons i x (wkStream A i xs) +wkStream_ok A ($ i) (cons .($ i) x xs) = cons i x (wkStream A i xs) }-