{-# OPTIONS_GHC -w #-}
{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}
#if __GLASGOW_HASKELL__ >= 710
{-# OPTIONS_GHC -XPartialTypeSignatures #-}
#endif
{-# OPTIONS_GHC -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
{-# LANGUAGE PatternSynonyms #-}

module Language.SOAS.Syntax.Par
  ( happyError
  , myLexer
  , pTermTyping
  , pContext
  , pVarTyping
  , pListVarTyping
  , pMetaVarTyping
  , pListMetaVarTyping
  , pOpTyping
  , pConstraint
  , pUnifier
  , pSubst
  , pListSubst
  , pTerm
  , pListTerm
  , pOpArg
  , pListOpArg
  , pBinders
  , pScopedTerm
  , pType
  , pType1
  , pType2
  , pListType
  , pTypeBinders
  , pScopedOpArgTyping
  , pListScopedOpArgTyping
  , pOpArgTyping
  , pScopedType
  , pListScopedType
  ) where

import Prelude

import qualified Language.SOAS.Syntax.Abs
import Language.SOAS.Syntax.Lex
import qualified Data.Array as Happy_Data_Array
import qualified Data.Bits as Bits
import qualified GHC.Exts as Happy_GHC_Exts
import Control.Applicative(Applicative(..))
import Control.Monad (ap)

-- parser produced by Happy Version 1.20.1.1

newtype HappyAbsSyn  = HappyAbsSyn HappyAny
#if __GLASGOW_HASKELL__ >= 607
type HappyAny = Happy_GHC_Exts.Any
#else
type HappyAny = forall a . a
#endif
newtype HappyWrap30 = HappyWrap30 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.VarIdent))
happyIn30 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.VarIdent)) -> (HappyAbsSyn )
happyIn30 :: (BNFC'Position, VarIdent) -> HappyAbsSyn
happyIn30 (BNFC'Position, VarIdent)
x = HappyWrap30 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, VarIdent) -> HappyWrap30
HappyWrap30 (BNFC'Position, VarIdent)
x)
{-# INLINE happyIn30 #-}
happyOut30 :: (HappyAbsSyn ) -> HappyWrap30
happyOut30 :: HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap30
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut30 #-}
newtype HappyWrap31 = HappyWrap31 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpIdent))
happyIn31 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpIdent)) -> (HappyAbsSyn )
happyIn31 :: (BNFC'Position, OpIdent) -> HappyAbsSyn
happyIn31 (BNFC'Position, OpIdent)
x = HappyWrap31 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, OpIdent) -> HappyWrap31
HappyWrap31 (BNFC'Position, OpIdent)
x)
{-# INLINE happyIn31 #-}
happyOut31 :: (HappyAbsSyn ) -> HappyWrap31
happyOut31 :: HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap31
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut31 #-}
newtype HappyWrap32 = HappyWrap32 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.MetaVarIdent))
happyIn32 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.MetaVarIdent)) -> (HappyAbsSyn )
happyIn32 :: (BNFC'Position, MetaVarIdent) -> HappyAbsSyn
happyIn32 (BNFC'Position, MetaVarIdent)
x = HappyWrap32 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, MetaVarIdent) -> HappyWrap32
HappyWrap32 (BNFC'Position, MetaVarIdent)
x)
{-# INLINE happyIn32 #-}
happyOut32 :: (HappyAbsSyn ) -> HappyWrap32
happyOut32 :: HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap32
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut32 #-}
newtype HappyWrap33 = HappyWrap33 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.TermTyping))
happyIn33 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.TermTyping)) -> (HappyAbsSyn )
happyIn33 :: (BNFC'Position, TermTyping) -> HappyAbsSyn
happyIn33 (BNFC'Position, TermTyping)
x = HappyWrap33 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, TermTyping) -> HappyWrap33
HappyWrap33 (BNFC'Position, TermTyping)
x)
{-# INLINE happyIn33 #-}
happyOut33 :: (HappyAbsSyn ) -> HappyWrap33
happyOut33 :: HappyAbsSyn -> HappyWrap33
happyOut33 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap33
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut33 #-}
newtype HappyWrap34 = HappyWrap34 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Context))
happyIn34 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Context)) -> (HappyAbsSyn )
happyIn34 :: (BNFC'Position, Context) -> HappyAbsSyn
happyIn34 (BNFC'Position, Context)
x = HappyWrap34 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Context) -> HappyWrap34
HappyWrap34 (BNFC'Position, Context)
x)
{-# INLINE happyIn34 #-}
happyOut34 :: (HappyAbsSyn ) -> HappyWrap34
happyOut34 :: HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap34
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut34 #-}
newtype HappyWrap35 = HappyWrap35 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.VarTyping))
happyIn35 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.VarTyping)) -> (HappyAbsSyn )
happyIn35 :: (BNFC'Position, VarTyping) -> HappyAbsSyn
happyIn35 (BNFC'Position, VarTyping)
x = HappyWrap35 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, VarTyping) -> HappyWrap35
HappyWrap35 (BNFC'Position, VarTyping)
x)
{-# INLINE happyIn35 #-}
happyOut35 :: (HappyAbsSyn ) -> HappyWrap35
happyOut35 :: HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap35
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut35 #-}
newtype HappyWrap36 = HappyWrap36 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.VarTyping]))
happyIn36 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.VarTyping])) -> (HappyAbsSyn )
happyIn36 :: (BNFC'Position, [VarTyping]) -> HappyAbsSyn
happyIn36 (BNFC'Position, [VarTyping])
x = HappyWrap36 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [VarTyping]) -> HappyWrap36
HappyWrap36 (BNFC'Position, [VarTyping])
x)
{-# INLINE happyIn36 #-}
happyOut36 :: (HappyAbsSyn ) -> HappyWrap36
happyOut36 :: HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap36
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut36 #-}
newtype HappyWrap37 = HappyWrap37 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.MetaVarTyping))
happyIn37 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.MetaVarTyping)) -> (HappyAbsSyn )
happyIn37 :: (BNFC'Position, MetaVarTyping) -> HappyAbsSyn
happyIn37 (BNFC'Position, MetaVarTyping)
x = HappyWrap37 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, MetaVarTyping) -> HappyWrap37
HappyWrap37 (BNFC'Position, MetaVarTyping)
x)
{-# INLINE happyIn37 #-}
happyOut37 :: (HappyAbsSyn ) -> HappyWrap37
happyOut37 :: HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap37
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut37 #-}
newtype HappyWrap38 = HappyWrap38 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.MetaVarTyping]))
happyIn38 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.MetaVarTyping])) -> (HappyAbsSyn )
happyIn38 :: (BNFC'Position, [MetaVarTyping]) -> HappyAbsSyn
happyIn38 (BNFC'Position, [MetaVarTyping])
x = HappyWrap38 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [MetaVarTyping]) -> HappyWrap38
HappyWrap38 (BNFC'Position, [MetaVarTyping])
x)
{-# INLINE happyIn38 #-}
happyOut38 :: (HappyAbsSyn ) -> HappyWrap38
happyOut38 :: HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap38
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut38 #-}
newtype HappyWrap39 = HappyWrap39 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpTyping))
happyIn39 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpTyping)) -> (HappyAbsSyn )
happyIn39 :: (BNFC'Position, OpTyping) -> HappyAbsSyn
happyIn39 (BNFC'Position, OpTyping)
x = HappyWrap39 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, OpTyping) -> HappyWrap39
HappyWrap39 (BNFC'Position, OpTyping)
x)
{-# INLINE happyIn39 #-}
happyOut39 :: (HappyAbsSyn ) -> HappyWrap39
happyOut39 :: HappyAbsSyn -> HappyWrap39
happyOut39 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap39
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut39 #-}
newtype HappyWrap40 = HappyWrap40 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Constraint))
happyIn40 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Constraint)) -> (HappyAbsSyn )
happyIn40 :: (BNFC'Position, Constraint) -> HappyAbsSyn
happyIn40 (BNFC'Position, Constraint)
x = HappyWrap40 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Constraint) -> HappyWrap40
HappyWrap40 (BNFC'Position, Constraint)
x)
{-# INLINE happyIn40 #-}
happyOut40 :: (HappyAbsSyn ) -> HappyWrap40
happyOut40 :: HappyAbsSyn -> HappyWrap40
happyOut40 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap40
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut40 #-}
newtype HappyWrap41 = HappyWrap41 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Unifier))
happyIn41 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Unifier)) -> (HappyAbsSyn )
happyIn41 :: (BNFC'Position, Unifier) -> HappyAbsSyn
happyIn41 (BNFC'Position, Unifier)
x = HappyWrap41 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Unifier) -> HappyWrap41
HappyWrap41 (BNFC'Position, Unifier)
x)
{-# INLINE happyIn41 #-}
happyOut41 :: (HappyAbsSyn ) -> HappyWrap41
happyOut41 :: HappyAbsSyn -> HappyWrap41
happyOut41 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap41
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut41 #-}
newtype HappyWrap42 = HappyWrap42 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Subst))
happyIn42 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Subst)) -> (HappyAbsSyn )
happyIn42 :: (BNFC'Position, Subst) -> HappyAbsSyn
happyIn42 (BNFC'Position, Subst)
x = HappyWrap42 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Subst) -> HappyWrap42
HappyWrap42 (BNFC'Position, Subst)
x)
{-# INLINE happyIn42 #-}
happyOut42 :: (HappyAbsSyn ) -> HappyWrap42
happyOut42 :: HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap42
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut42 #-}
newtype HappyWrap43 = HappyWrap43 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.Subst]))
happyIn43 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.Subst])) -> (HappyAbsSyn )
happyIn43 :: (BNFC'Position, [Subst]) -> HappyAbsSyn
happyIn43 (BNFC'Position, [Subst])
x = HappyWrap43 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [Subst]) -> HappyWrap43
HappyWrap43 (BNFC'Position, [Subst])
x)
{-# INLINE happyIn43 #-}
happyOut43 :: (HappyAbsSyn ) -> HappyWrap43
happyOut43 :: HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap43
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut43 #-}
newtype HappyWrap44 = HappyWrap44 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Term))
happyIn44 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Term)) -> (HappyAbsSyn )
happyIn44 :: (BNFC'Position, Term) -> HappyAbsSyn
happyIn44 (BNFC'Position, Term)
x = HappyWrap44 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Term) -> HappyWrap44
HappyWrap44 (BNFC'Position, Term)
x)
{-# INLINE happyIn44 #-}
happyOut44 :: (HappyAbsSyn ) -> HappyWrap44
happyOut44 :: HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap44
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut44 #-}
newtype HappyWrap45 = HappyWrap45 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.Term]))
happyIn45 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.Term])) -> (HappyAbsSyn )
happyIn45 :: (BNFC'Position, [Term]) -> HappyAbsSyn
happyIn45 (BNFC'Position, [Term])
x = HappyWrap45 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [Term]) -> HappyWrap45
HappyWrap45 (BNFC'Position, [Term])
x)
{-# INLINE happyIn45 #-}
happyOut45 :: (HappyAbsSyn ) -> HappyWrap45
happyOut45 :: HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap45
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut45 #-}
newtype HappyWrap46 = HappyWrap46 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpArg))
happyIn46 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpArg)) -> (HappyAbsSyn )
happyIn46 :: (BNFC'Position, OpArg) -> HappyAbsSyn
happyIn46 (BNFC'Position, OpArg)
x = HappyWrap46 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, OpArg) -> HappyWrap46
HappyWrap46 (BNFC'Position, OpArg)
x)
{-# INLINE happyIn46 #-}
happyOut46 :: (HappyAbsSyn ) -> HappyWrap46
happyOut46 :: HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap46
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut46 #-}
newtype HappyWrap47 = HappyWrap47 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.OpArg]))
happyIn47 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.OpArg])) -> (HappyAbsSyn )
happyIn47 :: (BNFC'Position, [OpArg]) -> HappyAbsSyn
happyIn47 (BNFC'Position, [OpArg])
x = HappyWrap47 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [OpArg]) -> HappyWrap47
HappyWrap47 (BNFC'Position, [OpArg])
x)
{-# INLINE happyIn47 #-}
happyOut47 :: (HappyAbsSyn ) -> HappyWrap47
happyOut47 :: HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap47
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut47 #-}
newtype HappyWrap48 = HappyWrap48 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Binders))
happyIn48 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Binders)) -> (HappyAbsSyn )
happyIn48 :: (BNFC'Position, Binders) -> HappyAbsSyn
happyIn48 (BNFC'Position, Binders)
x = HappyWrap48 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Binders) -> HappyWrap48
HappyWrap48 (BNFC'Position, Binders)
x)
{-# INLINE happyIn48 #-}
happyOut48 :: (HappyAbsSyn ) -> HappyWrap48
happyOut48 :: HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap48
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut48 #-}
newtype HappyWrap49 = HappyWrap49 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.ScopedTerm))
happyIn49 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.ScopedTerm)) -> (HappyAbsSyn )
happyIn49 :: (BNFC'Position, ScopedTerm) -> HappyAbsSyn
happyIn49 (BNFC'Position, ScopedTerm)
x = HappyWrap49 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, ScopedTerm) -> HappyWrap49
HappyWrap49 (BNFC'Position, ScopedTerm)
x)
{-# INLINE happyIn49 #-}
happyOut49 :: (HappyAbsSyn ) -> HappyWrap49
happyOut49 :: HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap49
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut49 #-}
newtype HappyWrap50 = HappyWrap50 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Type))
happyIn50 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Type)) -> (HappyAbsSyn )
happyIn50 :: (BNFC'Position, Type) -> HappyAbsSyn
happyIn50 (BNFC'Position, Type)
x = HappyWrap50 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Type) -> HappyWrap50
HappyWrap50 (BNFC'Position, Type)
x)
{-# INLINE happyIn50 #-}
happyOut50 :: (HappyAbsSyn ) -> HappyWrap50
happyOut50 :: HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap50
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut50 #-}
newtype HappyWrap51 = HappyWrap51 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Type))
happyIn51 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Type)) -> (HappyAbsSyn )
happyIn51 :: (BNFC'Position, Type) -> HappyAbsSyn
happyIn51 (BNFC'Position, Type)
x = HappyWrap51 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Type) -> HappyWrap51
HappyWrap51 (BNFC'Position, Type)
x)
{-# INLINE happyIn51 #-}
happyOut51 :: (HappyAbsSyn ) -> HappyWrap51
happyOut51 :: HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap51
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut51 #-}
newtype HappyWrap52 = HappyWrap52 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Type))
happyIn52 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.Type)) -> (HappyAbsSyn )
happyIn52 :: (BNFC'Position, Type) -> HappyAbsSyn
happyIn52 (BNFC'Position, Type)
x = HappyWrap52 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, Type) -> HappyWrap52
HappyWrap52 (BNFC'Position, Type)
x)
{-# INLINE happyIn52 #-}
happyOut52 :: (HappyAbsSyn ) -> HappyWrap52
happyOut52 :: HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap52
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut52 #-}
newtype HappyWrap53 = HappyWrap53 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.Type]))
happyIn53 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.Type])) -> (HappyAbsSyn )
happyIn53 :: (BNFC'Position, [Type]) -> HappyAbsSyn
happyIn53 (BNFC'Position, [Type])
x = HappyWrap53 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [Type]) -> HappyWrap53
HappyWrap53 (BNFC'Position, [Type])
x)
{-# INLINE happyIn53 #-}
happyOut53 :: (HappyAbsSyn ) -> HappyWrap53
happyOut53 :: HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap53
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut53 #-}
newtype HappyWrap54 = HappyWrap54 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.TypeBinders))
happyIn54 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.TypeBinders)) -> (HappyAbsSyn )
happyIn54 :: (BNFC'Position, TypeBinders) -> HappyAbsSyn
happyIn54 (BNFC'Position, TypeBinders)
x = HappyWrap54 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, TypeBinders) -> HappyWrap54
HappyWrap54 (BNFC'Position, TypeBinders)
x)
{-# INLINE happyIn54 #-}
happyOut54 :: (HappyAbsSyn ) -> HappyWrap54
happyOut54 :: HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap54
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut54 #-}
newtype HappyWrap55 = HappyWrap55 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.ScopedOpArgTyping))
happyIn55 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.ScopedOpArgTyping)) -> (HappyAbsSyn )
happyIn55 :: (BNFC'Position, ScopedOpArgTyping) -> HappyAbsSyn
happyIn55 (BNFC'Position, ScopedOpArgTyping)
x = HappyWrap55 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, ScopedOpArgTyping) -> HappyWrap55
HappyWrap55 (BNFC'Position, ScopedOpArgTyping)
x)
{-# INLINE happyIn55 #-}
happyOut55 :: (HappyAbsSyn ) -> HappyWrap55
happyOut55 :: HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap55
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut55 #-}
newtype HappyWrap56 = HappyWrap56 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.ScopedOpArgTyping]))
happyIn56 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.ScopedOpArgTyping])) -> (HappyAbsSyn )
happyIn56 :: (BNFC'Position, [ScopedOpArgTyping]) -> HappyAbsSyn
happyIn56 (BNFC'Position, [ScopedOpArgTyping])
x = HappyWrap56 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [ScopedOpArgTyping]) -> HappyWrap56
HappyWrap56 (BNFC'Position, [ScopedOpArgTyping])
x)
{-# INLINE happyIn56 #-}
happyOut56 :: (HappyAbsSyn ) -> HappyWrap56
happyOut56 :: HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap56
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut56 #-}
newtype HappyWrap57 = HappyWrap57 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpArgTyping))
happyIn57 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.OpArgTyping)) -> (HappyAbsSyn )
happyIn57 :: (BNFC'Position, OpArgTyping) -> HappyAbsSyn
happyIn57 (BNFC'Position, OpArgTyping)
x = HappyWrap57 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, OpArgTyping) -> HappyWrap57
HappyWrap57 (BNFC'Position, OpArgTyping)
x)
{-# INLINE happyIn57 #-}
happyOut57 :: (HappyAbsSyn ) -> HappyWrap57
happyOut57 :: HappyAbsSyn -> HappyWrap57
happyOut57 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap57
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut57 #-}
newtype HappyWrap58 = HappyWrap58 ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.ScopedType))
happyIn58 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, Language.SOAS.Syntax.Abs.ScopedType)) -> (HappyAbsSyn )
happyIn58 :: (BNFC'Position, ScopedType) -> HappyAbsSyn
happyIn58 (BNFC'Position, ScopedType)
x = HappyWrap58 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, ScopedType) -> HappyWrap58
HappyWrap58 (BNFC'Position, ScopedType)
x)
{-# INLINE happyIn58 #-}
happyOut58 :: (HappyAbsSyn ) -> HappyWrap58
happyOut58 :: HappyAbsSyn -> HappyWrap58
happyOut58 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap58
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut58 #-}
newtype HappyWrap59 = HappyWrap59 ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.ScopedType]))
happyIn59 :: ((Language.SOAS.Syntax.Abs.BNFC'Position, [Language.SOAS.Syntax.Abs.ScopedType])) -> (HappyAbsSyn )
happyIn59 :: (BNFC'Position, [ScopedType]) -> HappyAbsSyn
happyIn59 (BNFC'Position, [ScopedType])
x = HappyWrap59 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((BNFC'Position, [ScopedType]) -> HappyWrap59
HappyWrap59 (BNFC'Position, [ScopedType])
x)
{-# INLINE happyIn59 #-}
happyOut59 :: (HappyAbsSyn ) -> HappyWrap59
happyOut59 :: HappyAbsSyn -> HappyWrap59
happyOut59 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap59
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut59 #-}
happyInTok :: (Token) -> (HappyAbsSyn )
happyInTok :: Token -> HappyAbsSyn
happyInTok Token
x = Token -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# Token
x
{-# INLINE happyInTok #-}
happyOutTok :: (HappyAbsSyn ) -> (Token)
happyOutTok :: HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
x = HappyAbsSyn -> Token
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOutTok #-}


happyExpList :: HappyAddr
happyExpList :: HappyAddr
happyExpList = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x80\x03\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x01\x40\x00\x00\x00\x00\x00\x00\x00\x20\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x00\x00\x00\x00\x00\x00\x80\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x80\x00\x00\x00\x00\x00\x00\x00\x40\x00\x10\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01\x40\x00\x00\x00\x00\x00\x00\x00\x20\x00\x08\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\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\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\x10\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\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\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\x04\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\x40\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\x40\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\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\x20\x00\x00\x00\x00\x00\x00\x00\x10\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x80\x03\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x80\x00\x00\x00\x00\x00\x00\x00\x40\x00\x10\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\x20\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x0e\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\xe0\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\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\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\x02\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#

{-# NOINLINE happyExpListPerState #-}
happyExpListPerState :: Int -> [String]
happyExpListPerState Int
st =
    [String]
token_strs_expected
  where token_strs :: [String]
token_strs = [String
"error",String
"%dummy",String
"%start_pTermTyping_internal",String
"%start_pContext_internal",String
"%start_pVarTyping_internal",String
"%start_pListVarTyping_internal",String
"%start_pMetaVarTyping_internal",String
"%start_pListMetaVarTyping_internal",String
"%start_pOpTyping_internal",String
"%start_pConstraint_internal",String
"%start_pUnifier_internal",String
"%start_pSubst_internal",String
"%start_pListSubst_internal",String
"%start_pTerm_internal",String
"%start_pListTerm_internal",String
"%start_pOpArg_internal",String
"%start_pListOpArg_internal",String
"%start_pBinders_internal",String
"%start_pScopedTerm_internal",String
"%start_pType_internal",String
"%start_pType1_internal",String
"%start_pType2_internal",String
"%start_pListType_internal",String
"%start_pTypeBinders_internal",String
"%start_pScopedOpArgTyping_internal",String
"%start_pListScopedOpArgTyping_internal",String
"%start_pOpArgTyping_internal",String
"%start_pScopedType_internal",String
"%start_pListScopedType_internal",String
"VarIdent",String
"OpIdent",String
"MetaVarIdent",String
"TermTyping",String
"Context",String
"VarTyping",String
"ListVarTyping",String
"MetaVarTyping",String
"ListMetaVarTyping",String
"OpTyping",String
"Constraint",String
"Unifier",String
"Subst",String
"ListSubst",String
"Term",String
"ListTerm",String
"OpArg",String
"ListOpArg",String
"Binders",String
"ScopedTerm",String
"Type",String
"Type1",String
"Type2",String
"ListType",String
"TypeBinders",String
"ScopedOpArgTyping",String
"ListScopedOpArgTyping",String
"OpArgTyping",String
"ScopedType",String
"ListScopedType",String
"'('",String
"')'",String
"','",String
"'.'",String
"':'",String
"'='",String
"'['",String
"']'",String
"'|'",String
"'\215'",String
"'\8594'",String
"'\8614'",String
"'\8704'",String
"'\8866'",String
"L_VarIdent",String
"L_OpIdent",String
"L_MetaVarIdent",String
"%eof"]
        bit_start :: Int
bit_start = Int
st Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.* Int
77
        bit_end :: Int
bit_end = (Int
st Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.+ Int
1) Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.* Int
77
        read_bit :: Int -> Bool
read_bit = HappyAddr -> Int -> Bool
readArrayBit HappyAddr
happyExpList
        bits :: [Bool]
bits = (Int -> Bool) -> [Int] -> [Bool]
forall a b. (a -> b) -> [a] -> [b]
Prelude.map Int -> Bool
read_bit [Int
bit_start..Int
bit_end Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.- Int
1]
        bits_indexed :: [(Bool, Int)]
bits_indexed = [Bool] -> [Int] -> [(Bool, Int)]
forall a b. [a] -> [b] -> [(a, b)]
Prelude.zip [Bool]
bits [Int
0..Int
76]
        token_strs_expected :: [String]
token_strs_expected = ((Bool, Int) -> [String]) -> [(Bool, Int)] -> [String]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
Prelude.concatMap (Bool, Int) -> [String]
f [(Bool, Int)]
bits_indexed
        f :: (Bool, Int) -> [String]
f (Bool
Prelude.False, Int
_) = []
        f (Bool
Prelude.True, Int
nr) = [[String]
token_strs [String] -> Int -> String
forall a. HasCallStack => [a] -> Int -> a
Prelude.!! Int
nr]

happyActOffsets :: HappyAddr
happyActOffsets :: HappyAddr
happyActOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\xfb\xff\xf8\xff\x1a\x00\x1a\x00\x4d\x00\x4d\x00\x51\x00\x48\x00\x5e\x00\x71\x00\x71\x00\x19\x01\x19\x01\x19\x01\x15\x01\x77\x00\x19\x01\xb2\x00\xb2\x00\xb2\x00\xb2\x00\x77\x00\xb2\x00\x9e\x00\xb2\x00\xb2\x00\xb2\x00\x77\x00\x00\x00\x00\x00\x00\x00\xbc\x00\x00\x00\xb2\x00\x6e\x00\xb2\x00\x6e\x00\x86\x00\x98\x00\x8c\x00\xb6\x00\xb0\x00\x00\x00\xb0\x00\xcf\x00\xb9\x00\xb9\x00\xb9\x00\xf9\xff\xb9\x00\x00\x00\xd1\x00\xd8\x00\x00\x00\xda\x00\x00\x00\x00\x00\xe4\x00\xe7\x00\xfe\xff\x00\x00\xf7\x00\xed\x00\x01\x01\xf0\x00\x0d\x01\xfb\x00\xfb\x00\x10\x01\x1e\x01\x0c\x01\x0c\x01\x0c\x01\xd9\x00\x1c\x01\x1d\x01\x26\x01\x1f\x01\x28\x01\x2c\x01\x20\x01\x20\x01\x2b\x01\x30\x01\x22\x01\x22\x01\x22\x01\x2d\x01\x23\x01\x29\x01\x33\x01\x2a\x01\x2a\x01\xb2\x00\x2e\x01\x34\x01\x2f\x01\x36\x01\x35\x01\x31\x01\x32\x01\x19\x01\x19\x01\xec\x00\x00\x00\x19\x01\xec\x00\xb2\x00\x00\x00\xad\x00\xb2\x00\xb2\x00\x3c\x01\x00\x00\xb2\x00\x39\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x01\x3d\x01\x00\x00\x00\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x19\x01\x37\x01\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x01\x3a\x01\x42\x01\x40\x01\x45\x01\x41\x01\x00\x00\x00\x00\x19\x01\x19\x01\x4b\x01\xb2\x00\x19\x01\x49\x01\x00\x00\xad\x00\x00\x00\x00\x00\x4d\x01\xb2\x00\x00\x00\x46\x01\xb2\x00\x00\x00\x00\x00"#

happyGotoOffsets :: HappyAddr
happyGotoOffsets :: HappyAddr
happyGotoOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x4f\x01\xff\x00\x07\x00\x0f\x01\xb4\x00\x11\x01\x09\x00\x4a\x01\x48\x01\xcb\x00\x03\x00\xf6\x00\xe0\x00\xdb\x00\xbe\x00\x2e\x00\x8a\x00\x60\x00\x7f\x00\x06\x00\x53\x00\x13\x00\x3b\x00\x1f\x00\x44\x00\x0e\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x16\x01\x1a\x01\x66\x00\x1b\x01\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x88\x00\xe3\x00\x8d\x00\xc3\x00\x00\x00\xe6\x00\xc8\x00\x4e\x00\x00\x00\x28\x00\x6f\x00\x57\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x4a\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\xa7\x00\x00\x00\x7d\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00"#

happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#
happyAdjustOffset :: Int# -> Int#
happyAdjustOffset Int#
off = Int#
off

happyDefActions :: HappyAddr
happyDefActions :: HappyAddr
happyDefActions = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\xda\xff\x00\x00\xde\xff\x00\x00\xda\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\x00\x00\xcd\xff\xc5\xff\xc5\xff\xc5\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbc\xff\xb9\xff\xbc\xff\xbc\xff\xbc\xff\x00\x00\xb1\xff\x00\x00\xe4\xff\xbe\xff\xb2\xff\xc1\xff\xbf\xff\xb1\xff\x00\x00\x00\x00\x00\x00\xbb\xff\x00\x00\x00\x00\xb5\xff\x00\x00\xb7\xff\x00\x00\xb9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x00\x00\x00\x00\xc3\xff\x00\x00\xe3\xff\xe2\xff\xc5\xff\x00\x00\xd0\xff\xc9\xff\xc7\xff\x00\x00\x00\x00\x00\x00\xcc\xff\x00\x00\x00\x00\x00\x00\xd2\xff\x00\x00\x00\x00\x00\x00\xd3\xff\x00\x00\xc5\xff\x00\x00\x00\x00\x00\x00\xd9\xff\x00\x00\x00\x00\x00\x00\xdd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\x00\x00\xde\xff\xde\xff\x00\x00\xda\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\xc5\xff\xcd\xff\x00\x00\xc8\xff\xc4\xff\xcd\xff\xc8\xff\x00\x00\xb8\xff\xb6\xff\x00\x00\xbc\xff\x00\x00\xb0\xff\x00\x00\xc2\xff\xbd\xff\xba\xff\xb3\xff\xb4\xff\xc0\xff\x00\x00\x00\x00\xc6\xff\xca\xff\xcb\xff\x00\x00\xd1\xff\xd5\xff\x00\x00\xb9\xff\xbc\xff\xd8\xff\xdf\xff\xdc\xff\xe0\xff\xda\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xcf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\xb6\xff\xd6\xff\xd4\xff\x00\x00\x00\x00\xe1\xff\x00\x00\x00\x00\xd7\xff"#

happyCheck :: HappyAddr
happyCheck :: HappyAddr
happyCheck = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\x00\x00\x04\x00\x0a\x00\x00\x00\x02\x00\x00\x00\x00\x00\x0d\x00\x11\x00\x01\x00\x12\x00\x05\x00\x0f\x00\x00\x00\x0c\x00\x0d\x00\x00\x00\x09\x00\x00\x00\x00\x00\x14\x00\x15\x00\x16\x00\x14\x00\x15\x00\x16\x00\x00\x00\x16\x00\x1c\x00\x1d\x00\x00\x00\x1c\x00\x1d\x00\x14\x00\x15\x00\x16\x00\x14\x00\x15\x00\x16\x00\x00\x00\x0f\x00\x1c\x00\x18\x00\x18\x00\x1c\x00\x00\x00\x14\x00\x15\x00\x16\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x1c\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x12\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x19\x00\x0d\x00\x1b\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x18\x00\x11\x00\x1b\x00\x00\x00\x10\x00\x18\x00\x00\x00\x16\x00\x07\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x14\x00\x15\x00\x16\x00\x14\x00\x15\x00\x16\x00\x14\x00\x15\x00\x16\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x11\x00\x14\x00\x15\x00\x16\x00\x0f\x00\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x12\x00\x14\x00\x15\x00\x16\x00\x15\x00\x16\x00\x15\x00\x16\x00\x0e\x00\x12\x00\x12\x00\x0e\x00\x04\x00\x13\x00\x12\x00\x01\x00\x13\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x0f\x00\x01\x00\x0e\x00\x12\x00\x04\x00\x0e\x00\x01\x00\x13\x00\x0e\x00\x02\x00\x13\x00\x0e\x00\x03\x00\x13\x00\x07\x00\x0f\x00\x13\x00\x00\x00\x01\x00\x02\x00\x0f\x00\x12\x00\x00\x00\x01\x00\x02\x00\x0a\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x12\x00\x0e\x00\x02\x00\x10\x00\x11\x00\x12\x00\x0e\x00\x01\x00\x10\x00\x11\x00\x12\x00\x0e\x00\x0c\x00\x10\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x0f\x00\x07\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x0e\x00\x11\x00\x10\x00\x12\x00\x12\x00\x0e\x00\x0f\x00\x04\x00\x0e\x00\x0f\x00\x0f\x00\x0e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x12\x00\x03\x00\x0f\x00\x10\x00\x11\x00\x02\x00\x12\x00\x02\x00\x02\x00\x12\x00\x04\x00\x0e\x00\x04\x00\x07\x00\x08\x00\x0c\x00\x0d\x00\x0c\x00\x0d\x00\x02\x00\x12\x00\x04\x00\x00\x00\x03\x00\x07\x00\x08\x00\x02\x00\x05\x00\x06\x00\x00\x00\x07\x00\x07\x00\x08\x00\x00\x00\x05\x00\x06\x00\x02\x00\x12\x00\x05\x00\x06\x00\x03\x00\x07\x00\x08\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x0f\x00\x10\x00\x11\x00\x05\x00\x0f\x00\x05\x00\x12\x00\x03\x00\x05\x00\x12\x00\x12\x00\x03\x00\x12\x00\x12\x00\x09\x00\x04\x00\x0f\x00\x0f\x00\x04\x00\x07\x00\x0d\x00\x08\x00\x02\x00\x11\x00\x02\x00\x0f\x00\x11\x00\x0a\x00\x04\x00\x08\x00\x0f\x00\x08\x00\x0e\x00\x11\x00\x08\x00\x06\x00\x01\x00\x0c\x00\x05\x00\x02\x00\xff\xff\x0b\x00\x03\x00\x0b\x00\x0a\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"#

happyTable :: HappyAddr
happyTable :: HappyAddr
happyTable = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x1d\x00\xc5\xff\x6c\x00\x1d\x00\x44\x00\x1d\x00\x52\x00\x5a\x00\x39\x00\x4c\x00\xff\xff\x55\x00\x1d\x00\x1d\x00\x45\x00\x46\x00\x1d\x00\x4d\x00\x2c\x00\x2c\x00\x1e\x00\x1f\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x1d\x00\x2f\x00\x21\x00\x22\x00\x1d\x00\x21\x00\x71\x00\x1e\x00\x1f\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x1d\x00\x1d\x00\x24\x00\x2d\x00\x6c\x00\x9c\x00\x39\x00\x1e\x00\x1f\x00\x20\x00\x1d\x00\x25\x00\x1f\x00\x20\x00\x26\x00\x9f\x00\x28\x00\x29\x00\x2a\x00\x1d\x00\x25\x00\x1f\x00\x20\x00\x26\x00\x3a\x00\x28\x00\x77\x00\x2a\x00\x1d\x00\x2c\x00\x25\x00\x1f\x00\x20\x00\x26\x00\x2c\x00\x28\x00\x9a\x00\x2a\x00\x1d\x00\x25\x00\x1f\x00\x20\x00\x26\x00\x1d\x00\x2b\x00\x4c\x00\x2a\x00\x1d\x00\x25\x00\x1f\x00\x20\x00\x26\x00\x1d\x00\x5a\x00\x39\x00\x27\x00\x1d\x00\x38\x00\x8b\x00\x1d\x00\x78\x00\x4a\x00\x1d\x00\x25\x00\x1f\x00\x20\x00\x2e\x00\x25\x00\x1f\x00\x20\x00\x75\x00\x1d\x00\x25\x00\x1f\x00\x20\x00\x8a\x00\x31\x00\x1f\x00\x20\x00\x70\x00\x1f\x00\x20\x00\x85\x00\x1f\x00\x20\x00\x1d\x00\x39\x00\x1d\x00\xff\xff\x1d\x00\x39\x00\x76\x00\x1f\x00\x20\x00\x1d\x00\x39\x00\x39\x00\x70\x00\x32\x00\x33\x00\x34\x00\x32\x00\x33\x00\x34\x00\x68\x00\x96\x00\x1f\x00\x20\x00\x30\x00\x20\x00\x73\x00\x20\x00\x35\x00\x61\x00\x7e\x00\x35\x00\x6f\x00\x36\x00\xff\xff\x24\x00\x7c\x00\x32\x00\x33\x00\x34\x00\x32\x00\x33\x00\x34\x00\x32\x00\x33\x00\x34\x00\x32\x00\x33\x00\x34\x00\x1d\x00\x24\x00\x35\x00\xb6\xff\xbc\xff\x35\x00\x24\x00\x8c\x00\x35\x00\x4e\x00\x99\x00\x35\x00\x6e\x00\x98\x00\x51\x00\x1d\x00\x95\x00\x3b\x00\x33\x00\x34\x00\x1d\x00\xff\xff\x3b\x00\x33\x00\x34\x00\x6c\x00\x73\x00\x3b\x00\x33\x00\x34\x00\xff\xff\x3c\x00\x44\x00\x3d\x00\x3e\x00\x3f\x00\x3c\x00\x6b\x00\x3d\x00\x7b\x00\x3f\x00\x3c\x00\x47\x00\x3d\x00\x79\x00\x3f\x00\x3b\x00\x33\x00\x34\x00\x1d\x00\x6a\x00\x32\x00\x33\x00\x34\x00\x32\x00\x33\x00\x34\x00\x32\x00\x33\x00\x34\x00\x3c\x00\x39\x00\x40\x00\xff\xff\x3f\x00\x41\x00\x42\x00\xc5\xff\x41\x00\x7d\x00\x1d\x00\x41\x00\x7a\x00\x32\x00\x33\x00\x34\x00\xff\xff\x68\x00\x1d\x00\x38\x00\x39\x00\x44\x00\xff\xff\x44\x00\x4e\x00\xff\xff\x56\x00\x43\x00\x67\x00\x4f\x00\x57\x00\x45\x00\x62\x00\x45\x00\x7f\x00\x4e\x00\xff\xff\x89\x00\x52\x00\x66\x00\x4f\x00\x57\x00\x4e\x00\x53\x00\x54\x00\x52\x00\x65\x00\x4f\x00\x50\x00\x52\x00\x53\x00\x87\x00\x4e\x00\xff\xff\x53\x00\x86\x00\x64\x00\x4f\x00\x84\x00\x1d\x00\x38\x00\x39\x00\xc8\xff\x1d\x00\x38\x00\x39\x00\x61\x00\x1d\x00\x60\x00\xff\xff\x5f\x00\x5e\x00\xff\xff\xff\xff\x5d\x00\xff\xff\xff\xff\x5c\x00\x89\x00\x1d\x00\x1d\x00\x82\x00\x84\x00\x83\x00\x81\x00\x75\x00\x39\x00\x90\x00\x1d\x00\x39\x00\x6c\x00\x93\x00\x8f\x00\x1d\x00\x8e\x00\x95\x00\x39\x00\x94\x00\x92\x00\x98\x00\x91\x00\x9c\x00\x9e\x00\x00\x00\x9f\x00\x58\x00\x48\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 :: Array
  Int
  (Int#
   -> Token
   -> Int#
   -> Happy_IntList
   -> HappyStk HappyAbsSyn
   -> [Token]
   -> Err HappyAbsSyn)
happyReduceArr = (Int, Int)
-> [(Int,
     Int#
     -> Token
     -> Int#
     -> Happy_IntList
     -> HappyStk HappyAbsSyn
     -> [Token]
     -> Err HappyAbsSyn)]
-> Array
     Int
     (Int#
      -> Token
      -> Int#
      -> Happy_IntList
      -> HappyStk HappyAbsSyn
      -> [Token]
      -> Err HappyAbsSyn)
forall i e. Ix i => (i, i) -> [(i, e)] -> Array i e
Happy_Data_Array.array (Int
27, Int
79) [
	(Int
27 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_27),
	(Int
28 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_28),
	(Int
29 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_29),
	(Int
30 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_30),
	(Int
31 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_31),
	(Int
32 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_32),
	(Int
33 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_33),
	(Int
34 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_34),
	(Int
35 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_35),
	(Int
36 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_36),
	(Int
37 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_37),
	(Int
38 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_38),
	(Int
39 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_39),
	(Int
40 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_40),
	(Int
41 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_41),
	(Int
42 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_42),
	(Int
43 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_43),
	(Int
44 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_44),
	(Int
45 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_45),
	(Int
46 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_46),
	(Int
47 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_47),
	(Int
48 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_48),
	(Int
49 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_49),
	(Int
50 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_50),
	(Int
51 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_51),
	(Int
52 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_52),
	(Int
53 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_53),
	(Int
54 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_54),
	(Int
55 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_55),
	(Int
56 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_56),
	(Int
57 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_57),
	(Int
58 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_58),
	(Int
59 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_59),
	(Int
60 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_60),
	(Int
61 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_61),
	(Int
62 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_62),
	(Int
63 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_63),
	(Int
64 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_64),
	(Int
65 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_65),
	(Int
66 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_66),
	(Int
67 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_67),
	(Int
68 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_68),
	(Int
69 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_69),
	(Int
70 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_70),
	(Int
71 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_71),
	(Int
72 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_72),
	(Int
73 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_73),
	(Int
74 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_74),
	(Int
75 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_75),
	(Int
76 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_76),
	(Int
77 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_77),
	(Int
78 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_78),
	(Int
79 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_79)
	]

happy_n_terms :: Int
happy_n_terms = Int
19 :: Prelude.Int
happy_n_nonterms :: Int
happy_n_nonterms = Int
30 :: Prelude.Int

happyReduce_27 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_27 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
0# HappyAbsSyn -> HappyAbsSyn
happyReduction_27
happyReduction_27 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_27 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	(BNFC'Position, VarIdent) -> HappyAbsSyn
happyIn30
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), String -> VarIdent
Language.SOAS.Syntax.Abs.VarIdent (Token -> String
tokenText Token
happy_var_1))
	)}

happyReduce_28 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_28 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
1# HappyAbsSyn -> HappyAbsSyn
happyReduction_28
happyReduction_28 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_28 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	(BNFC'Position, OpIdent) -> HappyAbsSyn
happyIn31
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), String -> OpIdent
Language.SOAS.Syntax.Abs.OpIdent (Token -> String
tokenText Token
happy_var_1))
	)}

happyReduce_29 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_29 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
2# HappyAbsSyn -> HappyAbsSyn
happyReduction_29
happyReduction_29 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_29 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	(BNFC'Position, MetaVarIdent) -> HappyAbsSyn
happyIn32
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), String -> MetaVarIdent
Language.SOAS.Syntax.Abs.MetaVarIdent (Token -> String
tokenText Token
happy_var_1))
	)}

happyReduce_30 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_30 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
8# Int#
3# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_30
happyReduction_30 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_30 (HappyAbsSyn
happy_x_8 `HappyStk`
	HappyAbsSyn
happy_x_7 `HappyStk`
	HappyAbsSyn
happy_x_6 `HappyStk`
	HappyAbsSyn
happy_x_5 `HappyStk`
	HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	case HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
happy_x_2 of { (HappyWrap54 (BNFC'Position, TypeBinders)
happy_var_2) -> 
	case HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
happy_x_4 of { (HappyWrap34 (BNFC'Position, Context)
happy_var_4) -> 
	case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_6 of { (HappyWrap49 (BNFC'Position, ScopedTerm)
happy_var_6) -> 
	case HappyAbsSyn -> HappyWrap58
happyOut58 HappyAbsSyn
happy_x_8 of { (HappyWrap58 (BNFC'Position, ScopedType)
happy_var_8) -> 
	(BNFC'Position, TermTyping) -> HappyAbsSyn
happyIn33
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), BNFC'Position
-> TypeBinders -> Context -> ScopedTerm -> ScopedType -> TermTyping
forall a.
a
-> TypeBinders' a
-> Context' a
-> ScopedTerm' a
-> ScopedType' a
-> TermTyping' a
Language.SOAS.Syntax.Abs.TermTyping ((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1)) ((BNFC'Position, TypeBinders) -> TypeBinders
forall a b. (a, b) -> b
snd (BNFC'Position, TypeBinders)
happy_var_2) ((BNFC'Position, Context) -> Context
forall a b. (a, b) -> b
snd (BNFC'Position, Context)
happy_var_4) ((BNFC'Position, ScopedTerm) -> ScopedTerm
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedTerm)
happy_var_6) ((BNFC'Position, ScopedType) -> ScopedType
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedType)
happy_var_8))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}}

happyReduce_31 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_31 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_31
happyReduction_31 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_31 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_1 of { (HappyWrap38 (BNFC'Position, [MetaVarTyping])
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
happy_x_3 of { (HappyWrap36 (BNFC'Position, [VarTyping])
happy_var_3) -> 
	(BNFC'Position, Context) -> HappyAbsSyn
happyIn34
		 (((BNFC'Position, [MetaVarTyping]) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, [MetaVarTyping])
happy_var_1, BNFC'Position -> [MetaVarTyping] -> [VarTyping] -> Context
forall a. a -> [MetaVarTyping' a] -> [VarTyping' a] -> Context' a
Language.SOAS.Syntax.Abs.Context ((BNFC'Position, [MetaVarTyping]) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, [MetaVarTyping])
happy_var_1) ((BNFC'Position, [MetaVarTyping]) -> [MetaVarTyping]
forall a b. (a, b) -> b
snd (BNFC'Position, [MetaVarTyping])
happy_var_1) ((BNFC'Position, [VarTyping]) -> [VarTyping]
forall a b. (a, b) -> b
snd (BNFC'Position, [VarTyping])
happy_var_3))
	)}}

happyReduce_32 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_32 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
5# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_32
happyReduction_32 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_32 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_1 of { (HappyWrap30 (BNFC'Position, VarIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_3 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_3) -> 
	(BNFC'Position, VarTyping) -> HappyAbsSyn
happyIn35
		 (((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1, BNFC'Position -> VarIdent -> Type -> VarTyping
forall a. a -> VarIdent -> Type' a -> VarTyping' a
Language.SOAS.Syntax.Abs.VarTyping ((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, VarIdent) -> VarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_3))
	)}}

happyReduce_33 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_33 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
6# HappyAbsSyn
happyReduction_33
happyReduction_33 :: HappyAbsSyn
happyReduction_33  =  (BNFC'Position, [VarTyping]) -> HappyAbsSyn
happyIn36
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_34 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_34 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
6# HappyAbsSyn -> HappyAbsSyn
happyReduction_34
happyReduction_34 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_34 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
happy_x_1 of { (HappyWrap35 (BNFC'Position, VarTyping)
happy_var_1) -> 
	(BNFC'Position, [VarTyping]) -> HappyAbsSyn
happyIn36
		 (((BNFC'Position, VarTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarTyping)
happy_var_1, (VarTyping -> [VarTyping] -> [VarTyping]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, VarTyping) -> VarTyping
forall a b. (a, b) -> b
snd (BNFC'Position, VarTyping)
happy_var_1))
	)}

happyReduce_35 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_35 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
6# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_35
happyReduction_35 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_35 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
happy_x_1 of { (HappyWrap35 (BNFC'Position, VarTyping)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
happy_x_3 of { (HappyWrap36 (BNFC'Position, [VarTyping])
happy_var_3) -> 
	(BNFC'Position, [VarTyping]) -> HappyAbsSyn
happyIn36
		 (((BNFC'Position, VarTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarTyping)
happy_var_1, (:) ((BNFC'Position, VarTyping) -> VarTyping
forall a b. (a, b) -> b
snd (BNFC'Position, VarTyping)
happy_var_1) ((BNFC'Position, [VarTyping]) -> [VarTyping]
forall a b. (a, b) -> b
snd (BNFC'Position, [VarTyping])
happy_var_3))
	)}}

happyReduce_36 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_36 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
6# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_36
happyReduction_36 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_36 (HappyAbsSyn
happy_x_6 `HappyStk`
	HappyAbsSyn
happy_x_5 `HappyStk`
	HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 (BNFC'Position, MetaVarIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_4 of { (HappyWrap53 (BNFC'Position, [Type])
happy_var_4) -> 
	case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_6 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_6) -> 
	(BNFC'Position, MetaVarTyping) -> HappyAbsSyn
happyIn37
		 (((BNFC'Position, MetaVarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarIdent)
happy_var_1, BNFC'Position -> MetaVarIdent -> [Type] -> Type -> MetaVarTyping
forall a.
a -> MetaVarIdent -> [Type' a] -> Type' a -> MetaVarTyping' a
Language.SOAS.Syntax.Abs.MetaVarTyping ((BNFC'Position, MetaVarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarIdent)
happy_var_1) ((BNFC'Position, MetaVarIdent) -> MetaVarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, MetaVarIdent)
happy_var_1) ((BNFC'Position, [Type]) -> [Type]
forall a b. (a, b) -> b
snd (BNFC'Position, [Type])
happy_var_4) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_6))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_37 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_37 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
8# HappyAbsSyn
happyReduction_37
happyReduction_37 :: HappyAbsSyn
happyReduction_37  =  (BNFC'Position, [MetaVarTyping]) -> HappyAbsSyn
happyIn38
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_38 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_38 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
8# HappyAbsSyn -> HappyAbsSyn
happyReduction_38
happyReduction_38 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_38 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
happy_x_1 of { (HappyWrap37 (BNFC'Position, MetaVarTyping)
happy_var_1) -> 
	(BNFC'Position, [MetaVarTyping]) -> HappyAbsSyn
happyIn38
		 (((BNFC'Position, MetaVarTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarTyping)
happy_var_1, (MetaVarTyping -> [MetaVarTyping] -> [MetaVarTyping]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, MetaVarTyping) -> MetaVarTyping
forall a b. (a, b) -> b
snd (BNFC'Position, MetaVarTyping)
happy_var_1))
	)}

happyReduce_39 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_39 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
8# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_39
happyReduction_39 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_39 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
happy_x_1 of { (HappyWrap37 (BNFC'Position, MetaVarTyping)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_3 of { (HappyWrap38 (BNFC'Position, [MetaVarTyping])
happy_var_3) -> 
	(BNFC'Position, [MetaVarTyping]) -> HappyAbsSyn
happyIn38
		 (((BNFC'Position, MetaVarTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarTyping)
happy_var_1, (:) ((BNFC'Position, MetaVarTyping) -> MetaVarTyping
forall a b. (a, b) -> b
snd (BNFC'Position, MetaVarTyping)
happy_var_1) ((BNFC'Position, [MetaVarTyping]) -> [MetaVarTyping]
forall a b. (a, b) -> b
snd (BNFC'Position, [MetaVarTyping])
happy_var_3))
	)}}

happyReduce_40 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_40 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
10# Int#
9# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_40
happyReduction_40 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_40 (HappyAbsSyn
happy_x_10 `HappyStk`
	HappyAbsSyn
happy_x_9 `HappyStk`
	HappyAbsSyn
happy_x_8 `HappyStk`
	HappyAbsSyn
happy_x_7 `HappyStk`
	HappyAbsSyn
happy_x_6 `HappyStk`
	HappyAbsSyn
happy_x_5 `HappyStk`
	HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_1 of { (HappyWrap31 (BNFC'Position, OpIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
happy_x_4 of { (HappyWrap54 (BNFC'Position, TypeBinders)
happy_var_4) -> 
	case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_7 of { (HappyWrap56 (BNFC'Position, [ScopedOpArgTyping])
happy_var_7) -> 
	case HappyAbsSyn -> HappyWrap58
happyOut58 HappyAbsSyn
happy_x_10 of { (HappyWrap58 (BNFC'Position, ScopedType)
happy_var_10) -> 
	(BNFC'Position, OpTyping) -> HappyAbsSyn
happyIn39
		 (((BNFC'Position, OpIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpIdent)
happy_var_1, BNFC'Position
-> OpIdent
-> TypeBinders
-> [ScopedOpArgTyping]
-> ScopedType
-> OpTyping
forall a.
a
-> OpIdent
-> TypeBinders' a
-> [ScopedOpArgTyping' a]
-> ScopedType' a
-> OpTyping' a
Language.SOAS.Syntax.Abs.OpTyping ((BNFC'Position, OpIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpIdent)
happy_var_1) ((BNFC'Position, OpIdent) -> OpIdent
forall a b. (a, b) -> b
snd (BNFC'Position, OpIdent)
happy_var_1) ((BNFC'Position, TypeBinders) -> TypeBinders
forall a b. (a, b) -> b
snd (BNFC'Position, TypeBinders)
happy_var_4) ((BNFC'Position, [ScopedOpArgTyping]) -> [ScopedOpArgTyping]
forall a b. (a, b) -> b
snd (BNFC'Position, [ScopedOpArgTyping])
happy_var_7) ((BNFC'Position, ScopedType) -> ScopedType
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedType)
happy_var_10))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}

happyReduce_41 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_41 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
6# Int#
10# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_41
happyReduction_41 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_41 (HappyAbsSyn
happy_x_6 `HappyStk`
	HappyAbsSyn
happy_x_5 `HappyStk`
	HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	case HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
happy_x_2 of { (HappyWrap48 (BNFC'Position, Binders)
happy_var_2) -> 
	case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_4 of { (HappyWrap49 (BNFC'Position, ScopedTerm)
happy_var_4) -> 
	case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_6 of { (HappyWrap49 (BNFC'Position, ScopedTerm)
happy_var_6) -> 
	(BNFC'Position, Constraint) -> HappyAbsSyn
happyIn40
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), BNFC'Position -> Binders -> ScopedTerm -> ScopedTerm -> Constraint
forall a.
a -> Binders' a -> ScopedTerm' a -> ScopedTerm' a -> Constraint' a
Language.SOAS.Syntax.Abs.ConstraintEq ((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1)) ((BNFC'Position, Binders) -> Binders
forall a b. (a, b) -> b
snd (BNFC'Position, Binders)
happy_var_2) ((BNFC'Position, ScopedTerm) -> ScopedTerm
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedTerm)
happy_var_4) ((BNFC'Position, ScopedTerm) -> ScopedTerm
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedTerm)
happy_var_6))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}

happyReduce_42 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_42 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
11# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_42
happyReduction_42 :: p -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_42 p
happy_x_3
	HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	case HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
happy_x_2 of { (HappyWrap43 (BNFC'Position, [Subst])
happy_var_2) -> 
	(BNFC'Position, Unifier) -> HappyAbsSyn
happyIn41
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), BNFC'Position -> [Subst] -> Unifier
forall a. a -> [Subst' a] -> Unifier' a
Language.SOAS.Syntax.Abs.Unifier ((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1)) ((BNFC'Position, [Subst]) -> [Subst]
forall a b. (a, b) -> b
snd (BNFC'Position, [Subst])
happy_var_2))
	)}}

happyReduce_43 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_43 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
6# Int#
12# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_43
happyReduction_43 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_43 (HappyAbsSyn
happy_x_6 `HappyStk`
	HappyAbsSyn
happy_x_5 `HappyStk`
	HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 (BNFC'Position, MetaVarIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
happy_x_3 of { (HappyWrap48 (BNFC'Position, Binders)
happy_var_3) -> 
	case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_6 of { (HappyWrap49 (BNFC'Position, ScopedTerm)
happy_var_6) -> 
	(BNFC'Position, Subst) -> HappyAbsSyn
happyIn42
		 (((BNFC'Position, MetaVarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarIdent)
happy_var_1, BNFC'Position -> MetaVarIdent -> Binders -> ScopedTerm -> Subst
forall a.
a -> MetaVarIdent -> Binders' a -> ScopedTerm' a -> Subst' a
Language.SOAS.Syntax.Abs.Subst ((BNFC'Position, MetaVarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarIdent)
happy_var_1) ((BNFC'Position, MetaVarIdent) -> MetaVarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, MetaVarIdent)
happy_var_1) ((BNFC'Position, Binders) -> Binders
forall a b. (a, b) -> b
snd (BNFC'Position, Binders)
happy_var_3) ((BNFC'Position, ScopedTerm) -> ScopedTerm
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedTerm)
happy_var_6))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_44 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_44 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
13# HappyAbsSyn
happyReduction_44
happyReduction_44 :: HappyAbsSyn
happyReduction_44  =  (BNFC'Position, [Subst]) -> HappyAbsSyn
happyIn43
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_45 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_45 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
13# HappyAbsSyn -> HappyAbsSyn
happyReduction_45
happyReduction_45 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_45 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
happy_x_1 of { (HappyWrap42 (BNFC'Position, Subst)
happy_var_1) -> 
	(BNFC'Position, [Subst]) -> HappyAbsSyn
happyIn43
		 (((BNFC'Position, Subst) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Subst)
happy_var_1, (Subst -> [Subst] -> [Subst]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, Subst) -> Subst
forall a b. (a, b) -> b
snd (BNFC'Position, Subst)
happy_var_1))
	)}

happyReduce_46 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_46 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
13# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_46
happyReduction_46 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_46 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
happy_x_1 of { (HappyWrap42 (BNFC'Position, Subst)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
happy_x_3 of { (HappyWrap43 (BNFC'Position, [Subst])
happy_var_3) -> 
	(BNFC'Position, [Subst]) -> HappyAbsSyn
happyIn43
		 (((BNFC'Position, Subst) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Subst)
happy_var_1, (:) ((BNFC'Position, Subst) -> Subst
forall a b. (a, b) -> b
snd (BNFC'Position, Subst)
happy_var_1) ((BNFC'Position, [Subst]) -> [Subst]
forall a b. (a, b) -> b
snd (BNFC'Position, [Subst])
happy_var_3))
	)}}

happyReduce_47 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_47 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
14# HappyAbsSyn -> HappyAbsSyn
happyReduction_47
happyReduction_47 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_47 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_1 of { (HappyWrap30 (BNFC'Position, VarIdent)
happy_var_1) -> 
	(BNFC'Position, Term) -> HappyAbsSyn
happyIn44
		 (((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1, BNFC'Position -> VarIdent -> Term
forall a. a -> VarIdent -> Term' a
Language.SOAS.Syntax.Abs.Var ((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, VarIdent) -> VarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, VarIdent)
happy_var_1))
	)}

happyReduce_48 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_48 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
4# Int#
14# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_48
happyReduction_48 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_48 (HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_1 of { (HappyWrap31 (BNFC'Position, OpIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
happy_x_3 of { (HappyWrap47 (BNFC'Position, [OpArg])
happy_var_3) -> 
	(BNFC'Position, Term) -> HappyAbsSyn
happyIn44
		 (((BNFC'Position, OpIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpIdent)
happy_var_1, BNFC'Position -> OpIdent -> [OpArg] -> Term
forall a. a -> OpIdent -> [OpArg' a] -> Term' a
Language.SOAS.Syntax.Abs.Op ((BNFC'Position, OpIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpIdent)
happy_var_1) ((BNFC'Position, OpIdent) -> OpIdent
forall a b. (a, b) -> b
snd (BNFC'Position, OpIdent)
happy_var_1) ((BNFC'Position, [OpArg]) -> [OpArg]
forall a b. (a, b) -> b
snd (BNFC'Position, [OpArg])
happy_var_3))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}

happyReduce_49 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_49 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
4# Int#
14# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_49
happyReduction_49 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_49 (HappyAbsSyn
happy_x_4 `HappyStk`
	HappyAbsSyn
happy_x_3 `HappyStk`
	HappyAbsSyn
happy_x_2 `HappyStk`
	HappyAbsSyn
happy_x_1 `HappyStk`
	HappyStk HappyAbsSyn
happyRest)
	 = case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 (BNFC'Position, MetaVarIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_3 of { (HappyWrap45 (BNFC'Position, [Term])
happy_var_3) -> 
	(BNFC'Position, Term) -> HappyAbsSyn
happyIn44
		 (((BNFC'Position, MetaVarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarIdent)
happy_var_1, BNFC'Position -> MetaVarIdent -> [Term] -> Term
forall a. a -> MetaVarIdent -> [Term' a] -> Term' a
Language.SOAS.Syntax.Abs.MetaVar ((BNFC'Position, MetaVarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, MetaVarIdent)
happy_var_1) ((BNFC'Position, MetaVarIdent) -> MetaVarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, MetaVarIdent)
happy_var_1) ((BNFC'Position, [Term]) -> [Term]
forall a b. (a, b) -> b
snd (BNFC'Position, [Term])
happy_var_3))
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}

happyReduce_50 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_50 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
15# HappyAbsSyn
happyReduction_50
happyReduction_50 :: HappyAbsSyn
happyReduction_50  =  (BNFC'Position, [Term]) -> HappyAbsSyn
happyIn45
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_51 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_51 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
15# HappyAbsSyn -> HappyAbsSyn
happyReduction_51
happyReduction_51 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_51 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_1 of { (HappyWrap44 (BNFC'Position, Term)
happy_var_1) -> 
	(BNFC'Position, [Term]) -> HappyAbsSyn
happyIn45
		 (((BNFC'Position, Term) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Term)
happy_var_1, (Term -> [Term] -> [Term]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, Term) -> Term
forall a b. (a, b) -> b
snd (BNFC'Position, Term)
happy_var_1))
	)}

happyReduce_52 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_52 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
15# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_52
happyReduction_52 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_52 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_1 of { (HappyWrap44 (BNFC'Position, Term)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_3 of { (HappyWrap45 (BNFC'Position, [Term])
happy_var_3) -> 
	(BNFC'Position, [Term]) -> HappyAbsSyn
happyIn45
		 (((BNFC'Position, Term) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Term)
happy_var_1, (:) ((BNFC'Position, Term) -> Term
forall a b. (a, b) -> b
snd (BNFC'Position, Term)
happy_var_1) ((BNFC'Position, [Term]) -> [Term]
forall a b. (a, b) -> b
snd (BNFC'Position, [Term])
happy_var_3))
	)}}

happyReduce_53 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_53 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
16# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_53
happyReduction_53 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_53 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
happy_x_1 of { (HappyWrap48 (BNFC'Position, Binders)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_3 of { (HappyWrap49 (BNFC'Position, ScopedTerm)
happy_var_3) -> 
	(BNFC'Position, OpArg) -> HappyAbsSyn
happyIn46
		 (((BNFC'Position, Binders) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Binders)
happy_var_1, BNFC'Position -> Binders -> ScopedTerm -> OpArg
forall a. a -> Binders' a -> ScopedTerm' a -> OpArg' a
Language.SOAS.Syntax.Abs.OpArg ((BNFC'Position, Binders) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Binders)
happy_var_1) ((BNFC'Position, Binders) -> Binders
forall a b. (a, b) -> b
snd (BNFC'Position, Binders)
happy_var_1) ((BNFC'Position, ScopedTerm) -> ScopedTerm
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedTerm)
happy_var_3))
	)}}

happyReduce_54 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_54 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
16# HappyAbsSyn -> HappyAbsSyn
happyReduction_54
happyReduction_54 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_54 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_1 of { (HappyWrap44 (BNFC'Position, Term)
happy_var_1) -> 
	(BNFC'Position, OpArg) -> HappyAbsSyn
happyIn46
		 (((BNFC'Position, Term) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Term)
happy_var_1, BNFC'Position -> Term -> OpArg
forall a. a -> Term' a -> OpArg' a
Language.SOAS.Syntax.Abs.PlainOpArg ((BNFC'Position, Term) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Term)
happy_var_1) ((BNFC'Position, Term) -> Term
forall a b. (a, b) -> b
snd (BNFC'Position, Term)
happy_var_1))
	)}

happyReduce_55 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_55 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
17# HappyAbsSyn
happyReduction_55
happyReduction_55 :: HappyAbsSyn
happyReduction_55  =  (BNFC'Position, [OpArg]) -> HappyAbsSyn
happyIn47
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_56 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_56 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
17# HappyAbsSyn -> HappyAbsSyn
happyReduction_56
happyReduction_56 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_56 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
happy_x_1 of { (HappyWrap46 (BNFC'Position, OpArg)
happy_var_1) -> 
	(BNFC'Position, [OpArg]) -> HappyAbsSyn
happyIn47
		 (((BNFC'Position, OpArg) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpArg)
happy_var_1, (OpArg -> [OpArg] -> [OpArg]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, OpArg) -> OpArg
forall a b. (a, b) -> b
snd (BNFC'Position, OpArg)
happy_var_1))
	)}

happyReduce_57 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_57 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
17# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_57
happyReduction_57 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_57 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
happy_x_1 of { (HappyWrap46 (BNFC'Position, OpArg)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
happy_x_3 of { (HappyWrap47 (BNFC'Position, [OpArg])
happy_var_3) -> 
	(BNFC'Position, [OpArg]) -> HappyAbsSyn
happyIn47
		 (((BNFC'Position, OpArg) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpArg)
happy_var_1, (:) ((BNFC'Position, OpArg) -> OpArg
forall a b. (a, b) -> b
snd (BNFC'Position, OpArg)
happy_var_1) ((BNFC'Position, [OpArg]) -> [OpArg]
forall a b. (a, b) -> b
snd (BNFC'Position, [OpArg])
happy_var_3))
	)}}

happyReduce_58 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_58 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
18# HappyAbsSyn
happyReduction_58
happyReduction_58 :: HappyAbsSyn
happyReduction_58  =  (BNFC'Position, Binders) -> HappyAbsSyn
happyIn48
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, BNFC'Position -> Binders
forall a. a -> Binders' a
Language.SOAS.Syntax.Abs.NoBinders BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition)
	)

happyReduce_59 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_59 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
18# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_59
happyReduction_59 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_59 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_1 of { (HappyWrap30 (BNFC'Position, VarIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
happy_x_2 of { (HappyWrap48 (BNFC'Position, Binders)
happy_var_2) -> 
	(BNFC'Position, Binders) -> HappyAbsSyn
happyIn48
		 (((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1, BNFC'Position -> VarIdent -> Binders -> Binders
forall a. a -> VarIdent -> Binders' a -> Binders' a
Language.SOAS.Syntax.Abs.SomeBinders ((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, VarIdent) -> VarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, Binders) -> Binders
forall a b. (a, b) -> b
snd (BNFC'Position, Binders)
happy_var_2))
	)}}

happyReduce_60 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_60 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
19# HappyAbsSyn -> HappyAbsSyn
happyReduction_60
happyReduction_60 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_60 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_1 of { (HappyWrap44 (BNFC'Position, Term)
happy_var_1) -> 
	(BNFC'Position, ScopedTerm) -> HappyAbsSyn
happyIn49
		 (((BNFC'Position, Term) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Term)
happy_var_1, BNFC'Position -> Term -> ScopedTerm
forall a. a -> Term' a -> ScopedTerm' a
Language.SOAS.Syntax.Abs.ScopedTerm ((BNFC'Position, Term) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Term)
happy_var_1) ((BNFC'Position, Term) -> Term
forall a b. (a, b) -> b
snd (BNFC'Position, Term)
happy_var_1))
	)}

happyReduce_61 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_61 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
20# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_61
happyReduction_61 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_61 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
happy_x_1 of { (HappyWrap51 (BNFC'Position, Type)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
happy_x_3 of { (HappyWrap51 (BNFC'Position, Type)
happy_var_3) -> 
	(BNFC'Position, Type) -> HappyAbsSyn
happyIn50
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, BNFC'Position -> Type -> Type -> Type
forall a. a -> Type' a -> Type' a -> Type' a
Language.SOAS.Syntax.Abs.TypeFun ((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_3))
	)}}

happyReduce_62 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_62 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
20# HappyAbsSyn -> HappyAbsSyn
happyReduction_62
happyReduction_62 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_62 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
happy_x_1 of { (HappyWrap51 (BNFC'Position, Type)
happy_var_1) -> 
	(BNFC'Position, Type) -> HappyAbsSyn
happyIn50
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1))
	)}

happyReduce_63 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_63 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
21# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_63
happyReduction_63 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_63 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
happy_x_1 of { (HappyWrap51 (BNFC'Position, Type)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
happy_x_3 of { (HappyWrap52 (BNFC'Position, Type)
happy_var_3) -> 
	(BNFC'Position, Type) -> HappyAbsSyn
happyIn51
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, BNFC'Position -> Type -> Type -> Type
forall a. a -> Type' a -> Type' a -> Type' a
Language.SOAS.Syntax.Abs.TypeProduct ((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_3))
	)}}

happyReduce_64 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_64 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
21# HappyAbsSyn -> HappyAbsSyn
happyReduction_64
happyReduction_64 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_64 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
happy_x_1 of { (HappyWrap52 (BNFC'Position, Type)
happy_var_1) -> 
	(BNFC'Position, Type) -> HappyAbsSyn
happyIn51
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1))
	)}

happyReduce_65 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_65 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
22# HappyAbsSyn -> HappyAbsSyn
happyReduction_65
happyReduction_65 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_65 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_1 of { (HappyWrap30 (BNFC'Position, VarIdent)
happy_var_1) -> 
	(BNFC'Position, Type) -> HappyAbsSyn
happyIn52
		 (((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1, BNFC'Position -> VarIdent -> Type
forall a. a -> VarIdent -> Type' a
Language.SOAS.Syntax.Abs.TypeVar ((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, VarIdent) -> VarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, VarIdent)
happy_var_1))
	)}

happyReduce_66 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_66 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
22# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_66
happyReduction_66 :: p -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_66 p
happy_x_3
	HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
	case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_2 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_2) -> 
	(BNFC'Position, Type) -> HappyAbsSyn
happyIn52
		 (((Int -> Int -> BNFC'Position) -> (Int, Int) -> BNFC'Position
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Int -> Int -> BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'Position (Token -> (Int, Int)
tokenLineCol Token
happy_var_1), ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_2))
	)}}

happyReduce_67 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_67 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
23# HappyAbsSyn
happyReduction_67
happyReduction_67 :: HappyAbsSyn
happyReduction_67  =  (BNFC'Position, [Type]) -> HappyAbsSyn
happyIn53
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_68 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_68 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
23# HappyAbsSyn -> HappyAbsSyn
happyReduction_68
happyReduction_68 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_68 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_1 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_1) -> 
	(BNFC'Position, [Type]) -> HappyAbsSyn
happyIn53
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, (Type -> [Type] -> [Type]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1))
	)}

happyReduce_69 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_69 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
23# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_69
happyReduction_69 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_69 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_1 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_3 of { (HappyWrap53 (BNFC'Position, [Type])
happy_var_3) -> 
	(BNFC'Position, [Type]) -> HappyAbsSyn
happyIn53
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, (:) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1) ((BNFC'Position, [Type]) -> [Type]
forall a b. (a, b) -> b
snd (BNFC'Position, [Type])
happy_var_3))
	)}}

happyReduce_70 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_70 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
24# HappyAbsSyn
happyReduction_70
happyReduction_70 :: HappyAbsSyn
happyReduction_70  =  (BNFC'Position, TypeBinders) -> HappyAbsSyn
happyIn54
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, BNFC'Position -> TypeBinders
forall a. a -> TypeBinders' a
Language.SOAS.Syntax.Abs.NoTypeBinders BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition)
	)

happyReduce_71 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_71 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
24# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_71
happyReduction_71 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_71 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_1 of { (HappyWrap30 (BNFC'Position, VarIdent)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
happy_x_2 of { (HappyWrap54 (BNFC'Position, TypeBinders)
happy_var_2) -> 
	(BNFC'Position, TypeBinders) -> HappyAbsSyn
happyIn54
		 (((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1, BNFC'Position -> VarIdent -> TypeBinders -> TypeBinders
forall a. a -> VarIdent -> TypeBinders' a -> TypeBinders' a
Language.SOAS.Syntax.Abs.SomeTypeBinders ((BNFC'Position, VarIdent) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, VarIdent) -> VarIdent
forall a b. (a, b) -> b
snd (BNFC'Position, VarIdent)
happy_var_1) ((BNFC'Position, TypeBinders) -> TypeBinders
forall a b. (a, b) -> b
snd (BNFC'Position, TypeBinders)
happy_var_2))
	)}}

happyReduce_72 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_72 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
25# HappyAbsSyn -> HappyAbsSyn
happyReduction_72
happyReduction_72 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_72 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap57
happyOut57 HappyAbsSyn
happy_x_1 of { (HappyWrap57 (BNFC'Position, OpArgTyping)
happy_var_1) -> 
	(BNFC'Position, ScopedOpArgTyping) -> HappyAbsSyn
happyIn55
		 (((BNFC'Position, OpArgTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpArgTyping)
happy_var_1, BNFC'Position -> OpArgTyping -> ScopedOpArgTyping
forall a. a -> OpArgTyping' a -> ScopedOpArgTyping' a
Language.SOAS.Syntax.Abs.ScopedOpArgTyping ((BNFC'Position, OpArgTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, OpArgTyping)
happy_var_1) ((BNFC'Position, OpArgTyping) -> OpArgTyping
forall a b. (a, b) -> b
snd (BNFC'Position, OpArgTyping)
happy_var_1))
	)}

happyReduce_73 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_73 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
26# HappyAbsSyn
happyReduction_73
happyReduction_73 :: HappyAbsSyn
happyReduction_73  =  (BNFC'Position, [ScopedOpArgTyping]) -> HappyAbsSyn
happyIn56
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_74 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_74 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
26# HappyAbsSyn -> HappyAbsSyn
happyReduction_74
happyReduction_74 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_74 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
happy_x_1 of { (HappyWrap55 (BNFC'Position, ScopedOpArgTyping)
happy_var_1) -> 
	(BNFC'Position, [ScopedOpArgTyping]) -> HappyAbsSyn
happyIn56
		 (((BNFC'Position, ScopedOpArgTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, ScopedOpArgTyping)
happy_var_1, (ScopedOpArgTyping -> [ScopedOpArgTyping] -> [ScopedOpArgTyping]
forall a. a -> [a] -> [a]
:[]) ((BNFC'Position, ScopedOpArgTyping) -> ScopedOpArgTyping
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedOpArgTyping)
happy_var_1))
	)}

happyReduce_75 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_75 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
26# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_75
happyReduction_75 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_75 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
happy_x_1 of { (HappyWrap55 (BNFC'Position, ScopedOpArgTyping)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_3 of { (HappyWrap56 (BNFC'Position, [ScopedOpArgTyping])
happy_var_3) -> 
	(BNFC'Position, [ScopedOpArgTyping]) -> HappyAbsSyn
happyIn56
		 (((BNFC'Position, ScopedOpArgTyping) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, ScopedOpArgTyping)
happy_var_1, (:) ((BNFC'Position, ScopedOpArgTyping) -> ScopedOpArgTyping
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedOpArgTyping)
happy_var_1) ((BNFC'Position, [ScopedOpArgTyping]) -> [ScopedOpArgTyping]
forall a b. (a, b) -> b
snd (BNFC'Position, [ScopedOpArgTyping])
happy_var_3))
	)}}

happyReduce_76 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_76 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
27# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_76
happyReduction_76 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_76 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_1 of { (HappyWrap53 (BNFC'Position, [Type])
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_3 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_3) -> 
	(BNFC'Position, OpArgTyping) -> HappyAbsSyn
happyIn57
		 (((BNFC'Position, [Type]) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, [Type])
happy_var_1, BNFC'Position -> [Type] -> Type -> OpArgTyping
forall a. a -> [Type' a] -> Type' a -> OpArgTyping' a
Language.SOAS.Syntax.Abs.OpArgTyping ((BNFC'Position, [Type]) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, [Type])
happy_var_1) ((BNFC'Position, [Type]) -> [Type]
forall a b. (a, b) -> b
snd (BNFC'Position, [Type])
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_3))
	)}}

happyReduce_77 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_77 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
happyReduction_77
happyReduction_77 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_77 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_1 of { (HappyWrap50 (BNFC'Position, Type)
happy_var_1) -> 
	(BNFC'Position, ScopedType) -> HappyAbsSyn
happyIn58
		 (((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1, BNFC'Position -> Type -> ScopedType
forall a. a -> Type' a -> ScopedType' a
Language.SOAS.Syntax.Abs.ScopedType ((BNFC'Position, Type) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, Type)
happy_var_1) ((BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (BNFC'Position, Type)
happy_var_1))
	)}

happyReduce_78 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_78 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
29# HappyAbsSyn
happyReduction_78
happyReduction_78 :: HappyAbsSyn
happyReduction_78  =  (BNFC'Position, [ScopedType]) -> HappyAbsSyn
happyIn59
		 ((BNFC'Position
Language.SOAS.Syntax.Abs.BNFC'NoPosition, [])
	)

happyReduce_79 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_79 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
29# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_79
happyReduction_79 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_79 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap58
happyOut58 HappyAbsSyn
happy_x_1 of { (HappyWrap58 (BNFC'Position, ScopedType)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap59
happyOut59 HappyAbsSyn
happy_x_2 of { (HappyWrap59 (BNFC'Position, [ScopedType])
happy_var_2) -> 
	(BNFC'Position, [ScopedType]) -> HappyAbsSyn
happyIn59
		 (((BNFC'Position, ScopedType) -> BNFC'Position
forall a b. (a, b) -> a
fst (BNFC'Position, ScopedType)
happy_var_1, (:) ((BNFC'Position, ScopedType) -> ScopedType
forall a b. (a, b) -> b
snd (BNFC'Position, ScopedType)
happy_var_1) ((BNFC'Position, [ScopedType]) -> [ScopedType]
forall a b. (a, b) -> b
snd (BNFC'Position, [ScopedType])
happy_var_2))
	)}}

happyNewToken :: Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk [] =
	Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
18# Token
forall a. a
notHappyAtAll Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk []

happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk (Token
tk:[Token]
tks) =
	let cont :: Int# -> Err HappyAbsSyn
cont Int#
i = Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
i Token
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk [Token]
tks in
	case Token
tk of {
	PT Posn
_ (TS String
_ Int
1) -> Int# -> Err HappyAbsSyn
cont Int#
1#;
	PT Posn
_ (TS String
_ Int
2) -> Int# -> Err HappyAbsSyn
cont Int#
2#;
	PT Posn
_ (TS String
_ Int
3) -> Int# -> Err HappyAbsSyn
cont Int#
3#;
	PT Posn
_ (TS String
_ Int
4) -> Int# -> Err HappyAbsSyn
cont Int#
4#;
	PT Posn
_ (TS String
_ Int
5) -> Int# -> Err HappyAbsSyn
cont Int#
5#;
	PT Posn
_ (TS String
_ Int
6) -> Int# -> Err HappyAbsSyn
cont Int#
6#;
	PT Posn
_ (TS String
_ Int
7) -> Int# -> Err HappyAbsSyn
cont Int#
7#;
	PT Posn
_ (TS String
_ Int
8) -> Int# -> Err HappyAbsSyn
cont Int#
8#;
	PT Posn
_ (TS String
_ Int
9) -> Int# -> Err HappyAbsSyn
cont Int#
9#;
	PT Posn
_ (TS String
_ Int
10) -> Int# -> Err HappyAbsSyn
cont Int#
10#;
	PT Posn
_ (TS String
_ Int
11) -> Int# -> Err HappyAbsSyn
cont Int#
11#;
	PT Posn
_ (TS String
_ Int
12) -> Int# -> Err HappyAbsSyn
cont Int#
12#;
	PT Posn
_ (TS String
_ Int
13) -> Int# -> Err HappyAbsSyn
cont Int#
13#;
	PT Posn
_ (TS String
_ Int
14) -> Int# -> Err HappyAbsSyn
cont Int#
14#;
	PT Posn
_ (T_VarIdent String
_) -> Int# -> Err HappyAbsSyn
cont Int#
15#;
	PT Posn
_ (T_OpIdent String
_) -> Int# -> Err HappyAbsSyn
cont Int#
16#;
	PT Posn
_ (T_MetaVarIdent String
_) -> Int# -> Err HappyAbsSyn
cont Int#
17#;
	Token
_ -> ([Token], [String]) -> Err HappyAbsSyn
forall a. ([Token], [String]) -> Err a
happyError' ((Token
tkToken -> [Token] -> [Token]
forall a. a -> [a] -> [a]
:[Token]
tks), [])
	}

happyError_ :: [String] -> Int# -> Token -> [Token] -> Err a
happyError_ [String]
explist Int#
18# Token
tk [Token]
tks = ([Token], [String]) -> Err a
forall a. ([Token], [String]) -> Err a
happyError' ([Token]
tks, [String]
explist)
happyError_ [String]
explist Int#
_ Token
tk [Token]
tks = ([Token], [String]) -> Err a
forall a. ([Token], [String]) -> Err a
happyError' ((Token
tkToken -> [Token] -> [Token]
forall a. a -> [a] -> [a]
:[Token]
tks), [String]
explist)

happyThen :: () => Err a -> (a -> Err b) -> Err b
happyThen :: forall a b. Err a -> (a -> Err b) -> Err b
happyThen = (Either String a -> (a -> Either String b) -> Either String b
forall a b. Err a -> (a -> Err b) -> Err b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(>>=))
happyReturn :: () => a -> Err a
happyReturn :: forall a. a -> Err a
happyReturn = (a -> Either String a
forall a. a -> Err a
forall (m :: * -> *) a. Monad m => a -> m a
return)
happyThen1 :: m t -> (t -> t -> m b) -> t -> m b
happyThen1 m t
m t -> t -> m b
k t
tks = (forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(>>=)) m t
m (\t
a -> t -> t -> m b
k t
a t
tks)
happyReturn1 :: () => a -> b -> Err a
happyReturn1 :: forall a b. a -> b -> Err a
happyReturn1 = \a
a b
tks -> (forall (m :: * -> *) a. Monad m => a -> m a
return) a
a
happyError' :: () => ([(Token)], [Prelude.String]) -> Err a
happyError' :: forall a. ([Token], [String]) -> Err a
happyError' = (\([Token]
tokens, [String]
_) -> [Token] -> Err a
forall a. [Token] -> Err a
happyError [Token]
tokens)
pTermTyping_internal :: [Token] -> Err (BNFC'Position, TermTyping)
pTermTyping_internal [Token]
tks = Err (BNFC'Position, TermTyping)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, TermTyping)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, TermTyping))
-> Err (BNFC'Position, TermTyping)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
0# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, TermTyping) -> Err (BNFC'Position, TermTyping)
forall a. a -> Err a
happyReturn (let {(HappyWrap33 (BNFC'Position, TermTyping)
x') = HappyAbsSyn -> HappyWrap33
happyOut33 HappyAbsSyn
x} in (BNFC'Position, TermTyping)
x'))

pContext_internal :: [Token] -> Err (BNFC'Position, Context)
pContext_internal [Token]
tks = Err (BNFC'Position, Context)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Context)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Context))
-> Err (BNFC'Position, Context)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
1# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Context) -> Err (BNFC'Position, Context)
forall a. a -> Err a
happyReturn (let {(HappyWrap34 (BNFC'Position, Context)
x') = HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
x} in (BNFC'Position, Context)
x'))

pVarTyping_internal :: [Token] -> Err (BNFC'Position, VarTyping)
pVarTyping_internal [Token]
tks = Err (BNFC'Position, VarTyping)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, VarTyping)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, VarTyping))
-> Err (BNFC'Position, VarTyping)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
2# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, VarTyping) -> Err (BNFC'Position, VarTyping)
forall a. a -> Err a
happyReturn (let {(HappyWrap35 (BNFC'Position, VarTyping)
x') = HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
x} in (BNFC'Position, VarTyping)
x'))

pListVarTyping_internal :: [Token] -> Err (BNFC'Position, [VarTyping])
pListVarTyping_internal [Token]
tks = Err (BNFC'Position, [VarTyping])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [VarTyping])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [VarTyping]))
-> Err (BNFC'Position, [VarTyping])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
3# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [VarTyping]) -> Err (BNFC'Position, [VarTyping])
forall a. a -> Err a
happyReturn (let {(HappyWrap36 (BNFC'Position, [VarTyping])
x') = HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
x} in (BNFC'Position, [VarTyping])
x'))

pMetaVarTyping_internal :: [Token] -> Err (BNFC'Position, MetaVarTyping)
pMetaVarTyping_internal [Token]
tks = Err (BNFC'Position, MetaVarTyping)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, MetaVarTyping)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, MetaVarTyping))
-> Err (BNFC'Position, MetaVarTyping)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
4# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, MetaVarTyping)
-> Err (BNFC'Position, MetaVarTyping)
forall a. a -> Err a
happyReturn (let {(HappyWrap37 (BNFC'Position, MetaVarTyping)
x') = HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
x} in (BNFC'Position, MetaVarTyping)
x'))

pListMetaVarTyping_internal :: [Token] -> Err (BNFC'Position, [MetaVarTyping])
pListMetaVarTyping_internal [Token]
tks = Err (BNFC'Position, [MetaVarTyping])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [MetaVarTyping])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [MetaVarTyping]))
-> Err (BNFC'Position, [MetaVarTyping])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
5# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [MetaVarTyping])
-> Err (BNFC'Position, [MetaVarTyping])
forall a. a -> Err a
happyReturn (let {(HappyWrap38 (BNFC'Position, [MetaVarTyping])
x') = HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
x} in (BNFC'Position, [MetaVarTyping])
x'))

pOpTyping_internal :: [Token] -> Err (BNFC'Position, OpTyping)
pOpTyping_internal [Token]
tks = Err (BNFC'Position, OpTyping)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, OpTyping)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, OpTyping))
-> Err (BNFC'Position, OpTyping)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
6# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, OpTyping) -> Err (BNFC'Position, OpTyping)
forall a. a -> Err a
happyReturn (let {(HappyWrap39 (BNFC'Position, OpTyping)
x') = HappyAbsSyn -> HappyWrap39
happyOut39 HappyAbsSyn
x} in (BNFC'Position, OpTyping)
x'))

pConstraint_internal :: [Token] -> Err (BNFC'Position, Constraint)
pConstraint_internal [Token]
tks = Err (BNFC'Position, Constraint)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Constraint)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Constraint))
-> Err (BNFC'Position, Constraint)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
7# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Constraint) -> Err (BNFC'Position, Constraint)
forall a. a -> Err a
happyReturn (let {(HappyWrap40 (BNFC'Position, Constraint)
x') = HappyAbsSyn -> HappyWrap40
happyOut40 HappyAbsSyn
x} in (BNFC'Position, Constraint)
x'))

pUnifier_internal :: [Token] -> Err (BNFC'Position, Unifier)
pUnifier_internal [Token]
tks = Err (BNFC'Position, Unifier)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Unifier)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Unifier))
-> Err (BNFC'Position, Unifier)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
8# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Unifier) -> Err (BNFC'Position, Unifier)
forall a. a -> Err a
happyReturn (let {(HappyWrap41 (BNFC'Position, Unifier)
x') = HappyAbsSyn -> HappyWrap41
happyOut41 HappyAbsSyn
x} in (BNFC'Position, Unifier)
x'))

pSubst_internal :: [Token] -> Err (BNFC'Position, Subst)
pSubst_internal [Token]
tks = Err (BNFC'Position, Subst)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Subst)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Subst))
-> Err (BNFC'Position, Subst)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
9# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Subst) -> Err (BNFC'Position, Subst)
forall a. a -> Err a
happyReturn (let {(HappyWrap42 (BNFC'Position, Subst)
x') = HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
x} in (BNFC'Position, Subst)
x'))

pListSubst_internal :: [Token] -> Err (BNFC'Position, [Subst])
pListSubst_internal [Token]
tks = Err (BNFC'Position, [Subst])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [Subst])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [Subst]))
-> Err (BNFC'Position, [Subst])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
10# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [Subst]) -> Err (BNFC'Position, [Subst])
forall a. a -> Err a
happyReturn (let {(HappyWrap43 (BNFC'Position, [Subst])
x') = HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
x} in (BNFC'Position, [Subst])
x'))

pTerm_internal :: [Token] -> Err (BNFC'Position, Term)
pTerm_internal [Token]
tks = Err (BNFC'Position, Term)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Term)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Term))
-> Err (BNFC'Position, Term)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
11# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Term) -> Err (BNFC'Position, Term)
forall a. a -> Err a
happyReturn (let {(HappyWrap44 (BNFC'Position, Term)
x') = HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
x} in (BNFC'Position, Term)
x'))

pListTerm_internal :: [Token] -> Err (BNFC'Position, [Term])
pListTerm_internal [Token]
tks = Err (BNFC'Position, [Term])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [Term])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [Term]))
-> Err (BNFC'Position, [Term])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
12# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [Term]) -> Err (BNFC'Position, [Term])
forall a. a -> Err a
happyReturn (let {(HappyWrap45 (BNFC'Position, [Term])
x') = HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
x} in (BNFC'Position, [Term])
x'))

pOpArg_internal :: [Token] -> Err (BNFC'Position, OpArg)
pOpArg_internal [Token]
tks = Err (BNFC'Position, OpArg)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, OpArg)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, OpArg))
-> Err (BNFC'Position, OpArg)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
13# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, OpArg) -> Err (BNFC'Position, OpArg)
forall a. a -> Err a
happyReturn (let {(HappyWrap46 (BNFC'Position, OpArg)
x') = HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
x} in (BNFC'Position, OpArg)
x'))

pListOpArg_internal :: [Token] -> Err (BNFC'Position, [OpArg])
pListOpArg_internal [Token]
tks = Err (BNFC'Position, [OpArg])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [OpArg])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [OpArg]))
-> Err (BNFC'Position, [OpArg])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
14# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [OpArg]) -> Err (BNFC'Position, [OpArg])
forall a. a -> Err a
happyReturn (let {(HappyWrap47 (BNFC'Position, [OpArg])
x') = HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
x} in (BNFC'Position, [OpArg])
x'))

pBinders_internal :: [Token] -> Err (BNFC'Position, Binders)
pBinders_internal [Token]
tks = Err (BNFC'Position, Binders)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Binders)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Binders))
-> Err (BNFC'Position, Binders)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
15# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Binders) -> Err (BNFC'Position, Binders)
forall a. a -> Err a
happyReturn (let {(HappyWrap48 (BNFC'Position, Binders)
x') = HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
x} in (BNFC'Position, Binders)
x'))

pScopedTerm_internal :: [Token] -> Err (BNFC'Position, ScopedTerm)
pScopedTerm_internal [Token]
tks = Err (BNFC'Position, ScopedTerm)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, ScopedTerm)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, ScopedTerm))
-> Err (BNFC'Position, ScopedTerm)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
16# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, ScopedTerm) -> Err (BNFC'Position, ScopedTerm)
forall a. a -> Err a
happyReturn (let {(HappyWrap49 (BNFC'Position, ScopedTerm)
x') = HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
x} in (BNFC'Position, ScopedTerm)
x'))

pType_internal :: [Token] -> Err (BNFC'Position, Type)
pType_internal [Token]
tks = Err (BNFC'Position, Type)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Type)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Type))
-> Err (BNFC'Position, Type)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
17# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Type) -> Err (BNFC'Position, Type)
forall a. a -> Err a
happyReturn (let {(HappyWrap50 (BNFC'Position, Type)
x') = HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
x} in (BNFC'Position, Type)
x'))

pType1_internal :: [Token] -> Err (BNFC'Position, Type)
pType1_internal [Token]
tks = Err (BNFC'Position, Type)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Type)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Type))
-> Err (BNFC'Position, Type)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
18# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Type) -> Err (BNFC'Position, Type)
forall a. a -> Err a
happyReturn (let {(HappyWrap51 (BNFC'Position, Type)
x') = HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
x} in (BNFC'Position, Type)
x'))

pType2_internal :: [Token] -> Err (BNFC'Position, Type)
pType2_internal [Token]
tks = Err (BNFC'Position, Type)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, Type)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, Type))
-> Err (BNFC'Position, Type)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
19# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, Type) -> Err (BNFC'Position, Type)
forall a. a -> Err a
happyReturn (let {(HappyWrap52 (BNFC'Position, Type)
x') = HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
x} in (BNFC'Position, Type)
x'))

pListType_internal :: [Token] -> Err (BNFC'Position, [Type])
pListType_internal [Token]
tks = Err (BNFC'Position, [Type])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [Type])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [Type]))
-> Err (BNFC'Position, [Type])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
20# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [Type]) -> Err (BNFC'Position, [Type])
forall a. a -> Err a
happyReturn (let {(HappyWrap53 (BNFC'Position, [Type])
x') = HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
x} in (BNFC'Position, [Type])
x'))

pTypeBinders_internal :: [Token] -> Err (BNFC'Position, TypeBinders)
pTypeBinders_internal [Token]
tks = Err (BNFC'Position, TypeBinders)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, TypeBinders)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, TypeBinders))
-> Err (BNFC'Position, TypeBinders)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
21# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, TypeBinders) -> Err (BNFC'Position, TypeBinders)
forall a. a -> Err a
happyReturn (let {(HappyWrap54 (BNFC'Position, TypeBinders)
x') = HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
x} in (BNFC'Position, TypeBinders)
x'))

pScopedOpArgTyping_internal :: [Token] -> Err (BNFC'Position, ScopedOpArgTyping)
pScopedOpArgTyping_internal [Token]
tks = Err (BNFC'Position, ScopedOpArgTyping)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, ScopedOpArgTyping)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, ScopedOpArgTyping))
-> Err (BNFC'Position, ScopedOpArgTyping)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
22# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, ScopedOpArgTyping)
-> Err (BNFC'Position, ScopedOpArgTyping)
forall a. a -> Err a
happyReturn (let {(HappyWrap55 (BNFC'Position, ScopedOpArgTyping)
x') = HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
x} in (BNFC'Position, ScopedOpArgTyping)
x'))

pListScopedOpArgTyping_internal :: [Token] -> Err (BNFC'Position, [ScopedOpArgTyping])
pListScopedOpArgTyping_internal [Token]
tks = Err (BNFC'Position, [ScopedOpArgTyping])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [ScopedOpArgTyping])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [ScopedOpArgTyping]))
-> Err (BNFC'Position, [ScopedOpArgTyping])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
23# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [ScopedOpArgTyping])
-> Err (BNFC'Position, [ScopedOpArgTyping])
forall a. a -> Err a
happyReturn (let {(HappyWrap56 (BNFC'Position, [ScopedOpArgTyping])
x') = HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
x} in (BNFC'Position, [ScopedOpArgTyping])
x'))

pOpArgTyping_internal :: [Token] -> Err (BNFC'Position, OpArgTyping)
pOpArgTyping_internal [Token]
tks = Err (BNFC'Position, OpArgTyping)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, OpArgTyping)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, OpArgTyping))
-> Err (BNFC'Position, OpArgTyping)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
24# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, OpArgTyping) -> Err (BNFC'Position, OpArgTyping)
forall a. a -> Err a
happyReturn (let {(HappyWrap57 (BNFC'Position, OpArgTyping)
x') = HappyAbsSyn -> HappyWrap57
happyOut57 HappyAbsSyn
x} in (BNFC'Position, OpArgTyping)
x'))

pScopedType_internal :: [Token] -> Err (BNFC'Position, ScopedType)
pScopedType_internal [Token]
tks = Err (BNFC'Position, ScopedType)
happySomeParser where
 happySomeParser :: Err (BNFC'Position, ScopedType)
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, ScopedType))
-> Err (BNFC'Position, ScopedType)
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
25# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, ScopedType) -> Err (BNFC'Position, ScopedType)
forall a. a -> Err a
happyReturn (let {(HappyWrap58 (BNFC'Position, ScopedType)
x') = HappyAbsSyn -> HappyWrap58
happyOut58 HappyAbsSyn
x} in (BNFC'Position, ScopedType)
x'))

pListScopedType_internal :: [Token] -> Err (BNFC'Position, [ScopedType])
pListScopedType_internal [Token]
tks = Err (BNFC'Position, [ScopedType])
happySomeParser where
 happySomeParser :: Err (BNFC'Position, [ScopedType])
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err (BNFC'Position, [ScopedType]))
-> Err (BNFC'Position, [ScopedType])
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
26# [Token]
tks) (\HappyAbsSyn
x -> (BNFC'Position, [ScopedType]) -> Err (BNFC'Position, [ScopedType])
forall a. a -> Err a
happyReturn (let {(HappyWrap59 (BNFC'Position, [ScopedType])
x') = HappyAbsSyn -> HappyWrap59
happyOut59 HappyAbsSyn
x} in (BNFC'Position, [ScopedType])
x'))

happySeq :: a -> b -> b
happySeq = a -> b -> b
forall a b. a -> b -> b
happyDontSeq


type Err = Either String

happyError :: [Token] -> Err a
happyError :: forall a. [Token] -> Err a
happyError [Token]
ts = String -> Either String a
forall a b. a -> Either a b
Left (String -> Either String a) -> String -> Either String a
forall a b. (a -> b) -> a -> b
$
  String
"syntax error at " String -> String -> String
forall a. [a] -> [a] -> [a]
++ [Token] -> String
tokenPos [Token]
ts String -> String -> String
forall a. [a] -> [a] -> [a]
++
  case [Token]
ts of
    []      -> []
    [Err Posn
_] -> String
" due to lexer error"
    Token
t:[Token]
_     -> String
" before `" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (Token -> String
prToken Token
t) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"'"

myLexer :: String -> [Token]
myLexer :: String -> [Token]
myLexer = String -> [Token]
tokens

-- Entrypoints

pTermTyping :: [Token] -> Err Language.SOAS.Syntax.Abs.TermTyping
pTermTyping :: [Token] -> Err TermTyping
pTermTyping = ((BNFC'Position, TermTyping) -> TermTyping)
-> Err (BNFC'Position, TermTyping) -> Err TermTyping
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, TermTyping) -> TermTyping
forall a b. (a, b) -> b
snd (Err (BNFC'Position, TermTyping) -> Err TermTyping)
-> ([Token] -> Err (BNFC'Position, TermTyping))
-> [Token]
-> Err TermTyping
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, TermTyping)
pTermTyping_internal

pContext :: [Token] -> Err Language.SOAS.Syntax.Abs.Context
pContext :: [Token] -> Err Context
pContext = ((BNFC'Position, Context) -> Context)
-> Err (BNFC'Position, Context) -> Err Context
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Context) -> Context
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Context) -> Err Context)
-> ([Token] -> Err (BNFC'Position, Context))
-> [Token]
-> Err Context
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Context)
pContext_internal

pVarTyping :: [Token] -> Err Language.SOAS.Syntax.Abs.VarTyping
pVarTyping :: [Token] -> Err VarTyping
pVarTyping = ((BNFC'Position, VarTyping) -> VarTyping)
-> Err (BNFC'Position, VarTyping) -> Err VarTyping
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, VarTyping) -> VarTyping
forall a b. (a, b) -> b
snd (Err (BNFC'Position, VarTyping) -> Err VarTyping)
-> ([Token] -> Err (BNFC'Position, VarTyping))
-> [Token]
-> Err VarTyping
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, VarTyping)
pVarTyping_internal

pListVarTyping :: [Token] -> Err [Language.SOAS.Syntax.Abs.VarTyping]
pListVarTyping :: [Token] -> Err [VarTyping]
pListVarTyping = ((BNFC'Position, [VarTyping]) -> [VarTyping])
-> Err (BNFC'Position, [VarTyping]) -> Err [VarTyping]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [VarTyping]) -> [VarTyping]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [VarTyping]) -> Err [VarTyping])
-> ([Token] -> Err (BNFC'Position, [VarTyping]))
-> [Token]
-> Err [VarTyping]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [VarTyping])
pListVarTyping_internal

pMetaVarTyping :: [Token] -> Err Language.SOAS.Syntax.Abs.MetaVarTyping
pMetaVarTyping :: [Token] -> Err MetaVarTyping
pMetaVarTyping = ((BNFC'Position, MetaVarTyping) -> MetaVarTyping)
-> Err (BNFC'Position, MetaVarTyping) -> Err MetaVarTyping
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, MetaVarTyping) -> MetaVarTyping
forall a b. (a, b) -> b
snd (Err (BNFC'Position, MetaVarTyping) -> Err MetaVarTyping)
-> ([Token] -> Err (BNFC'Position, MetaVarTyping))
-> [Token]
-> Err MetaVarTyping
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, MetaVarTyping)
pMetaVarTyping_internal

pListMetaVarTyping :: [Token] -> Err [Language.SOAS.Syntax.Abs.MetaVarTyping]
pListMetaVarTyping :: [Token] -> Err [MetaVarTyping]
pListMetaVarTyping = ((BNFC'Position, [MetaVarTyping]) -> [MetaVarTyping])
-> Err (BNFC'Position, [MetaVarTyping]) -> Err [MetaVarTyping]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [MetaVarTyping]) -> [MetaVarTyping]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [MetaVarTyping]) -> Err [MetaVarTyping])
-> ([Token] -> Err (BNFC'Position, [MetaVarTyping]))
-> [Token]
-> Err [MetaVarTyping]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [MetaVarTyping])
pListMetaVarTyping_internal

pOpTyping :: [Token] -> Err Language.SOAS.Syntax.Abs.OpTyping
pOpTyping :: [Token] -> Err OpTyping
pOpTyping = ((BNFC'Position, OpTyping) -> OpTyping)
-> Err (BNFC'Position, OpTyping) -> Err OpTyping
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, OpTyping) -> OpTyping
forall a b. (a, b) -> b
snd (Err (BNFC'Position, OpTyping) -> Err OpTyping)
-> ([Token] -> Err (BNFC'Position, OpTyping))
-> [Token]
-> Err OpTyping
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, OpTyping)
pOpTyping_internal

pConstraint :: [Token] -> Err Language.SOAS.Syntax.Abs.Constraint
pConstraint :: [Token] -> Err Constraint
pConstraint = ((BNFC'Position, Constraint) -> Constraint)
-> Err (BNFC'Position, Constraint) -> Err Constraint
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Constraint) -> Constraint
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Constraint) -> Err Constraint)
-> ([Token] -> Err (BNFC'Position, Constraint))
-> [Token]
-> Err Constraint
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Constraint)
pConstraint_internal

pUnifier :: [Token] -> Err Language.SOAS.Syntax.Abs.Unifier
pUnifier :: [Token] -> Err Unifier
pUnifier = ((BNFC'Position, Unifier) -> Unifier)
-> Err (BNFC'Position, Unifier) -> Err Unifier
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Unifier) -> Unifier
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Unifier) -> Err Unifier)
-> ([Token] -> Err (BNFC'Position, Unifier))
-> [Token]
-> Err Unifier
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Unifier)
pUnifier_internal

pSubst :: [Token] -> Err Language.SOAS.Syntax.Abs.Subst
pSubst :: [Token] -> Err Subst
pSubst = ((BNFC'Position, Subst) -> Subst)
-> Err (BNFC'Position, Subst) -> Err Subst
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Subst) -> Subst
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Subst) -> Err Subst)
-> ([Token] -> Err (BNFC'Position, Subst)) -> [Token] -> Err Subst
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Subst)
pSubst_internal

pListSubst :: [Token] -> Err [Language.SOAS.Syntax.Abs.Subst]
pListSubst :: [Token] -> Err [Subst]
pListSubst = ((BNFC'Position, [Subst]) -> [Subst])
-> Err (BNFC'Position, [Subst]) -> Err [Subst]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [Subst]) -> [Subst]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [Subst]) -> Err [Subst])
-> ([Token] -> Err (BNFC'Position, [Subst]))
-> [Token]
-> Err [Subst]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [Subst])
pListSubst_internal

pTerm :: [Token] -> Err Language.SOAS.Syntax.Abs.Term
pTerm :: [Token] -> Err Term
pTerm = ((BNFC'Position, Term) -> Term)
-> Err (BNFC'Position, Term) -> Err Term
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Term) -> Term
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Term) -> Err Term)
-> ([Token] -> Err (BNFC'Position, Term)) -> [Token] -> Err Term
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Term)
pTerm_internal

pListTerm :: [Token] -> Err [Language.SOAS.Syntax.Abs.Term]
pListTerm :: [Token] -> Err [Term]
pListTerm = ((BNFC'Position, [Term]) -> [Term])
-> Err (BNFC'Position, [Term]) -> Err [Term]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [Term]) -> [Term]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [Term]) -> Err [Term])
-> ([Token] -> Err (BNFC'Position, [Term]))
-> [Token]
-> Err [Term]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [Term])
pListTerm_internal

pOpArg :: [Token] -> Err Language.SOAS.Syntax.Abs.OpArg
pOpArg :: [Token] -> Err OpArg
pOpArg = ((BNFC'Position, OpArg) -> OpArg)
-> Err (BNFC'Position, OpArg) -> Err OpArg
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, OpArg) -> OpArg
forall a b. (a, b) -> b
snd (Err (BNFC'Position, OpArg) -> Err OpArg)
-> ([Token] -> Err (BNFC'Position, OpArg)) -> [Token] -> Err OpArg
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, OpArg)
pOpArg_internal

pListOpArg :: [Token] -> Err [Language.SOAS.Syntax.Abs.OpArg]
pListOpArg :: [Token] -> Err [OpArg]
pListOpArg = ((BNFC'Position, [OpArg]) -> [OpArg])
-> Err (BNFC'Position, [OpArg]) -> Err [OpArg]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [OpArg]) -> [OpArg]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [OpArg]) -> Err [OpArg])
-> ([Token] -> Err (BNFC'Position, [OpArg]))
-> [Token]
-> Err [OpArg]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [OpArg])
pListOpArg_internal

pBinders :: [Token] -> Err Language.SOAS.Syntax.Abs.Binders
pBinders :: [Token] -> Err Binders
pBinders = ((BNFC'Position, Binders) -> Binders)
-> Err (BNFC'Position, Binders) -> Err Binders
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Binders) -> Binders
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Binders) -> Err Binders)
-> ([Token] -> Err (BNFC'Position, Binders))
-> [Token]
-> Err Binders
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Binders)
pBinders_internal

pScopedTerm :: [Token] -> Err Language.SOAS.Syntax.Abs.ScopedTerm
pScopedTerm :: [Token] -> Err ScopedTerm
pScopedTerm = ((BNFC'Position, ScopedTerm) -> ScopedTerm)
-> Err (BNFC'Position, ScopedTerm) -> Err ScopedTerm
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, ScopedTerm) -> ScopedTerm
forall a b. (a, b) -> b
snd (Err (BNFC'Position, ScopedTerm) -> Err ScopedTerm)
-> ([Token] -> Err (BNFC'Position, ScopedTerm))
-> [Token]
-> Err ScopedTerm
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, ScopedTerm)
pScopedTerm_internal

pType :: [Token] -> Err Language.SOAS.Syntax.Abs.Type
pType :: [Token] -> Err Type
pType = ((BNFC'Position, Type) -> Type)
-> Err (BNFC'Position, Type) -> Err Type
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Type) -> Err Type)
-> ([Token] -> Err (BNFC'Position, Type)) -> [Token] -> Err Type
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Type)
pType_internal

pType1 :: [Token] -> Err Language.SOAS.Syntax.Abs.Type
pType1 :: [Token] -> Err Type
pType1 = ((BNFC'Position, Type) -> Type)
-> Err (BNFC'Position, Type) -> Err Type
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Type) -> Err Type)
-> ([Token] -> Err (BNFC'Position, Type)) -> [Token] -> Err Type
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Type)
pType1_internal

pType2 :: [Token] -> Err Language.SOAS.Syntax.Abs.Type
pType2 :: [Token] -> Err Type
pType2 = ((BNFC'Position, Type) -> Type)
-> Err (BNFC'Position, Type) -> Err Type
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, Type) -> Type
forall a b. (a, b) -> b
snd (Err (BNFC'Position, Type) -> Err Type)
-> ([Token] -> Err (BNFC'Position, Type)) -> [Token] -> Err Type
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, Type)
pType2_internal

pListType :: [Token] -> Err [Language.SOAS.Syntax.Abs.Type]
pListType :: [Token] -> Err [Type]
pListType = ((BNFC'Position, [Type]) -> [Type])
-> Err (BNFC'Position, [Type]) -> Err [Type]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [Type]) -> [Type]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [Type]) -> Err [Type])
-> ([Token] -> Err (BNFC'Position, [Type]))
-> [Token]
-> Err [Type]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [Type])
pListType_internal

pTypeBinders :: [Token] -> Err Language.SOAS.Syntax.Abs.TypeBinders
pTypeBinders :: [Token] -> Err TypeBinders
pTypeBinders = ((BNFC'Position, TypeBinders) -> TypeBinders)
-> Err (BNFC'Position, TypeBinders) -> Err TypeBinders
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, TypeBinders) -> TypeBinders
forall a b. (a, b) -> b
snd (Err (BNFC'Position, TypeBinders) -> Err TypeBinders)
-> ([Token] -> Err (BNFC'Position, TypeBinders))
-> [Token]
-> Err TypeBinders
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, TypeBinders)
pTypeBinders_internal

pScopedOpArgTyping :: [Token] -> Err Language.SOAS.Syntax.Abs.ScopedOpArgTyping
pScopedOpArgTyping :: [Token] -> Err ScopedOpArgTyping
pScopedOpArgTyping = ((BNFC'Position, ScopedOpArgTyping) -> ScopedOpArgTyping)
-> Err (BNFC'Position, ScopedOpArgTyping) -> Err ScopedOpArgTyping
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, ScopedOpArgTyping) -> ScopedOpArgTyping
forall a b. (a, b) -> b
snd (Err (BNFC'Position, ScopedOpArgTyping) -> Err ScopedOpArgTyping)
-> ([Token] -> Err (BNFC'Position, ScopedOpArgTyping))
-> [Token]
-> Err ScopedOpArgTyping
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, ScopedOpArgTyping)
pScopedOpArgTyping_internal

pListScopedOpArgTyping :: [Token] -> Err [Language.SOAS.Syntax.Abs.ScopedOpArgTyping]
pListScopedOpArgTyping :: [Token] -> Err [ScopedOpArgTyping]
pListScopedOpArgTyping = ((BNFC'Position, [ScopedOpArgTyping]) -> [ScopedOpArgTyping])
-> Err (BNFC'Position, [ScopedOpArgTyping])
-> Err [ScopedOpArgTyping]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [ScopedOpArgTyping]) -> [ScopedOpArgTyping]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [ScopedOpArgTyping])
 -> Err [ScopedOpArgTyping])
-> ([Token] -> Err (BNFC'Position, [ScopedOpArgTyping]))
-> [Token]
-> Err [ScopedOpArgTyping]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [ScopedOpArgTyping])
pListScopedOpArgTyping_internal

pOpArgTyping :: [Token] -> Err Language.SOAS.Syntax.Abs.OpArgTyping
pOpArgTyping :: [Token] -> Err OpArgTyping
pOpArgTyping = ((BNFC'Position, OpArgTyping) -> OpArgTyping)
-> Err (BNFC'Position, OpArgTyping) -> Err OpArgTyping
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, OpArgTyping) -> OpArgTyping
forall a b. (a, b) -> b
snd (Err (BNFC'Position, OpArgTyping) -> Err OpArgTyping)
-> ([Token] -> Err (BNFC'Position, OpArgTyping))
-> [Token]
-> Err OpArgTyping
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, OpArgTyping)
pOpArgTyping_internal

pScopedType :: [Token] -> Err Language.SOAS.Syntax.Abs.ScopedType
pScopedType :: [Token] -> Err ScopedType
pScopedType = ((BNFC'Position, ScopedType) -> ScopedType)
-> Err (BNFC'Position, ScopedType) -> Err ScopedType
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, ScopedType) -> ScopedType
forall a b. (a, b) -> b
snd (Err (BNFC'Position, ScopedType) -> Err ScopedType)
-> ([Token] -> Err (BNFC'Position, ScopedType))
-> [Token]
-> Err ScopedType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, ScopedType)
pScopedType_internal

pListScopedType :: [Token] -> Err [Language.SOAS.Syntax.Abs.ScopedType]
pListScopedType :: [Token] -> Err [ScopedType]
pListScopedType = ((BNFC'Position, [ScopedType]) -> [ScopedType])
-> Err (BNFC'Position, [ScopedType]) -> Err [ScopedType]
forall a b. (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (BNFC'Position, [ScopedType]) -> [ScopedType]
forall a b. (a, b) -> b
snd (Err (BNFC'Position, [ScopedType]) -> Err [ScopedType])
-> ([Token] -> Err (BNFC'Position, [ScopedType]))
-> [Token]
-> Err [ScopedType]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Token] -> Err (BNFC'Position, [ScopedType])
pListScopedType_internal
{-# 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.