packages feed

epic 0.9.3 → 0.9.3.2

raw patch · 10 files changed

+1784/−1702 lines, 10 filesdep ~basenew-uploader

Dependency ranges changed: base

Files

Epic/CodegenC.lhs view
@@ -1,3 +1,4 @@+> {-#LANGUAGE FlexibleContexts#-} > module Epic.CodegenC where  > import Control.Monad.State@@ -98,10 +99,11 @@ >       if (x>max) then put x else return ()  >    cgs [] = return ""+ >    cgs (x:xs) = do xc <- cg x >                    xsc <- cgs xs >                    return $ xc ++ "\n" ++ xsc-+>    cg::  (MonadState Int m) => ByteOp -> m [Char] >    cg (CALL t fn args) = return $ tmp t ++ " = " ++ quickcall fn ++  >                          targs "(" args ++ ");" >    cg (TAILCALL t fn args) 
Epic/Epic.lhs view
@@ -448,6 +448,8 @@  > -- | Top level declarations > data EpicDecl = forall e. EpicFn e => EpicFn Name e -- ^ Normal function+>               | forall e. EpicFn e => EpicExportFn Name Type [Type] String e +>                                          -- ^ exported to C >               | EpicExt Name Int  -- ^ Epic function defined in a separate .o >               | Include String -- ^ Include a C header >               | Link String    -- ^ Link to a C library@@ -467,6 +469,10 @@  > mkDecl :: EpicDecl -> Decl > mkDecl (EpicFn n e) = Decl n TyAny (mkFunc e) Nothing []+> mkDecl (EpicExportFn n rty tys cname e)+>                     = Decl n rty (updateArgTys (mkFunc e)) (Just cname) []+>   where updateArgTys (Bind args l d f) +>             = Bind (zip (map fst args) tys) l d f > mkDecl (EpicExt nm arity)  >     = Epic.Language.Extern nm TyAny (take arity (repeat TyAny)) > mkDecl (Epic.Epic.Include f) = Epic.Language.Include f
Epic/Language.lhs view
@@ -1,9 +1,14 @@-> {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses,+> {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses,CPP, > FunctionalDependencies #-}  > module Epic.Language where  > import Control.Monad+#if MIN_VERSION_base(4,6,0)+> import Control.Exception.Base+#endif++ > import System.IO > import System.Directory > import System.Environment@@ -379,7 +384,14 @@ > environment :: String -> IO (Maybe String) > environment x = catch (do e <- getEnv x >                           return (Just e))->                       (\_ -> return Nothing)+#if MIN_VERSION_base(4,6,0)+>                           (\y-> do return (y::SomeException);  return Nothing)  +#endif+> +#if !MIN_VERSION_base(4,6,0)+>                           (\_->  return Nothing)  +#endif  +  Some tests 
dist/build/Epic/Parser.hs view
@@ -11,8 +11,9 @@ import Epic.Lexer import qualified Data.Array as Happy_Data_Array import qualified GHC.Exts as Happy_GHC_Exts+import Control.Applicative(Applicative(..)) --- parser produced by Happy Version 1.18.6+-- parser produced by Happy Version 1.19.4  newtype HappyAbsSyn  = HappyAbsSyn HappyAny #if __GLASGOW_HASKELL__ >= 607@@ -1325,7 +1326,8 @@ 	_ -> happyError' tk 	}) -happyError_ tk = happyError' tk+happyError_ 88# tk = happyError' tk+happyError_ _ tk = happyError' tk  happyThen :: () => P a -> (a -> P b) -> P b happyThen = (thenP)@@ -1375,20 +1377,36 @@ {-# LINE 1 "templates/GenericTemplate.hs" #-} -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp  -{-# LINE 30 "templates/GenericTemplate.hs" #-}+{-# LINE 13 "templates/GenericTemplate.hs" #-}  ++++-- 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)) :: Bool)+#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool)+#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: 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+{-# LINE 46 "templates/GenericTemplate.hs" #-}++ data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList     -{-# LINE 51 "templates/GenericTemplate.hs" #-}+{-# LINE 67 "templates/GenericTemplate.hs" #-} -{-# LINE 61 "templates/GenericTemplate.hs" #-}+{-# LINE 77 "templates/GenericTemplate.hs" #-} -{-# LINE 70 "templates/GenericTemplate.hs" #-}+{-# LINE 86 "templates/GenericTemplate.hs" #-}  infixr 9 `HappyStk` data HappyStk a = HappyStk a (HappyStk a)@@ -1405,9 +1423,9 @@ -- 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+        happyReturn1 ans happyAccept j tk st sts (HappyStk ans _) = -	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)+        (happyTcHack j (happyTcHack st)) (happyReturn1 ans)  ----------------------------------------------------------------------------- -- Arrays only: do the next action@@ -1415,37 +1433,35 @@   happyDoAction i tk st-	= {- nothing -}+        = {- nothing -}  -	  case action of-		0#		  -> {- nothing -}-				     happyFail i tk st-		-1# 	  -> {- nothing -}-				     happyAccept i tk st-		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}+          case action of+                0#           -> {- nothing -}+                                     happyFail 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 -}+                                                   (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)    = indexShortOffAddr happyActOffsets st-         (off_i)  = (off Happy_GHC_Exts.+# i)-	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))-			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)-			else False-         (action)+                                     happyShift new_state i tk st+                                     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))+   where off    = 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 False+         action           | check     = indexShortOffAddr happyTable off_i           | otherwise = indexShortOffAddr happyDefActions st -{-# LINE 130 "templates/GenericTemplate.hs" #-} - indexShortOffAddr (HappyA# arr) off =-	Happy_GHC_Exts.narrow16Int# i+        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#)))@@ -1464,13 +1480,13 @@ ----------------------------------------------------------------------------- -- HappyState data type (not arrays) -{-# LINE 163 "templates/GenericTemplate.hs" #-}+{-# LINE 170 "templates/GenericTemplate.hs" #-}  ----------------------------------------------------------------------------- -- 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+     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) @@ -1506,30 +1522,33 @@      = 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)+         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 =-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))-       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))-             drop_stk = happyDropStk k 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 =-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))-       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))-             drop_stk = happyDropStk k stk+      case happyDrop k (HappyCons (st) (sts)) of+        sts1@((HappyCons (st1@(action)) (_))) ->+         let drop_stk = happyDropStk k stk -             (off) = indexShortOffAddr happyGotoOffsets st1-             (off_i) = (off Happy_GHC_Exts.+# nt)-             (new_state) = indexShortOffAddr happyTable off_i+             off = 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@@ -1544,9 +1563,9 @@ happyGoto nt j tk st =     {- nothing -}    happyDoAction j tk new_state-   where (off) = indexShortOffAddr happyGotoOffsets st-         (off_i) = (off Happy_GHC_Exts.+# nt)-         (new_state) = indexShortOffAddr happyTable off_i+   where off = indexShortOffAddr happyGotoOffsets st+         off_i = (off Happy_GHC_Exts.+# nt)+         new_state = indexShortOffAddr happyTable off_i   @@ -1555,9 +1574,10 @@ -- Error recovery (0# is the error token)  -- parse error if we are in recovery and we fail again-happyFail  0# tk old_st _ stk =---	trace "failing" $ -    	happyError_ tk+happyFail 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_ 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@@ -1565,16 +1585,16 @@  -- discard a state happyFail  0# tk old_st (HappyCons ((action)) (sts)) -						(saved_tok `HappyStk` _ `HappyStk` stk) =---	trace ("discarding state, depth " ++ show (length stk))  $-	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))+                                                (saved_tok `HappyStk` _ `HappyStk` stk) =+--      trace ("discarding state, depth " ++ show (length stk))  $+        happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk)) -}  -- Enter error recovery: generate an error token, --                       save the old token and carry on. happyFail  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)+        happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)  -- Internal happy errors: @@ -1592,9 +1612,9 @@  ----------------------------------------------------------------------------- -- Seq-ing.  If the --strict flag is given, then Happy emits ---	happySeq = happyDoSeq+--      happySeq = happyDoSeq -- otherwise it emits--- 	happySeq = happyDontSeq+--      happySeq = happyDontSeq  happyDoSeq, happyDontSeq :: a -> b -> b happyDoSeq   a b = a `seq` b
− dist/build/Epic/epic-tmp/Epic/Parser.hs
@@ -1,1626 +0,0 @@-{-# OPTIONS_GHC -w #-}-{-# OPTIONS -fglasgow-exts -cpp #-}--- -*-Haskell-*---module Epic.Parser where--import Data.Char-import System.IO.Unsafe--import Epic.Language-import Epic.Lexer-import qualified Data.Array as Happy_Data_Array-import qualified GHC.Exts as Happy_GHC_Exts---- parser produced by Happy Version 1.18.6--newtype HappyAbsSyn  = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-happyIn6 :: ([Decl]) -> (HappyAbsSyn )-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn6 #-}-happyOut6 :: (HappyAbsSyn ) -> ([Decl])-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut6 #-}-happyIn7 :: (Type) -> (HappyAbsSyn )-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn7 #-}-happyOut7 :: (HappyAbsSyn ) -> (Type)-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut7 #-}-happyIn8 :: (Decl) -> (HappyAbsSyn )-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn8 #-}-happyOut8 :: (HappyAbsSyn ) -> (Decl)-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut8 #-}-happyIn9 :: ([CGFlag]) -> (HappyAbsSyn )-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn9 #-}-happyOut9 :: (HappyAbsSyn ) -> ([CGFlag])-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut9 #-}-happyIn10 :: (CGFlag) -> (HappyAbsSyn )-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn10 #-}-happyOut10 :: (HappyAbsSyn ) -> (CGFlag)-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut10 #-}-happyIn11 :: (Maybe String) -> (HappyAbsSyn )-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn11 #-}-happyOut11 :: (HappyAbsSyn ) -> (Maybe String)-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut11 #-}-happyIn12 :: ([(Name,Type)]) -> (HappyAbsSyn )-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn12 #-}-happyOut12 :: (HappyAbsSyn ) -> ([(Name,Type)])-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut12 #-}-happyIn13 :: (Expr) -> (HappyAbsSyn )-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn13 #-}-happyOut13 :: (HappyAbsSyn ) -> (Expr)-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut13 #-}-happyIn14 :: (Allocator) -> (HappyAbsSyn )-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn ) -> (Allocator)-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut14 #-}-happyIn15 :: (Expr) -> (HappyAbsSyn )-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn ) -> (Expr)-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut15 #-}-happyIn16 :: ([CaseAlt]) -> (HappyAbsSyn )-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn ) -> ([CaseAlt])-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut16 #-}-happyIn17 :: (CaseAlt) -> (HappyAbsSyn )-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn ) -> (CaseAlt)-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut17 #-}-happyIn18 :: (Expr) -> (HappyAbsSyn )-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn ) -> (Expr)-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut18 #-}-happyIn19 :: ([Expr]) -> (HappyAbsSyn )-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn ) -> ([Expr])-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut19 #-}-happyIn20 :: ([(Expr,Type)]) -> (HappyAbsSyn )-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn ) -> ([(Expr,Type)])-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut20 #-}-happyIn21 :: (Const) -> (HappyAbsSyn )-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn ) -> (Const)-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut21 #-}-happyIn22 :: (LineNumber) -> (HappyAbsSyn )-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> (LineNumber)-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: (String) -> (HappyAbsSyn )-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> (String)-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyInTok :: (Token) -> (HappyAbsSyn )-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (Token)-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x87\x03\x01\x00\xda\x00\xda\x00\x00\x00\xe2\xff\x62\x02\x58\x02\x56\x02\x55\x02\xfa\x01\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x02\x09\x00\x01\x00\x01\x00\x0d\x02\x0c\x02\x00\x00\x0f\x00\x0b\x02\x0a\x02\x36\x00\x31\x02\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x25\x02\xc4\x01\x82\x02\x19\x02\x87\x03\x00\x00\xd0\x01\xd3\xff\xd3\xff\x50\x01\xe6\x01\x27\x02\x00\x00\x12\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x02\xcf\x01\xce\x01\x00\x00\x01\x00\x01\x00\x36\x00\x01\x00\x7a\x00\x01\x00\x4c\x00\x21\x00\xb1\x01\xf9\x01\xb0\x01\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\xe5\x01\x01\x00\x00\x00\x00\x00\xaf\x01\x00\x00\xdb\x01\xe2\xff\x00\x00\x00\x00\x00\x00\x9e\x01\xc1\x01\x7b\x02\x00\x00\x97\x02\x97\x02\x97\x02\x97\x02\xaf\x02\xaf\x02\x97\x02\x97\x02\x5f\x02\x97\x02\x97\x02\x5f\x02\xd3\xff\xd3\xff\xc0\x02\xc0\x02\xd3\xff\xd3\xff\xd3\xff\xc0\x02\xc0\x02\x92\x01\x01\x00\x82\x01\x36\x00\x90\x01\x01\x00\x34\x01\x6d\x01\x00\x00\x00\x00\x08\x02\xa1\x01\xe9\x01\xca\x01\x36\x00\x36\x00\x00\x00\x74\x01\x00\x00\x00\x00\x01\x00\x36\x00\x00\x00\x00\x00\x5e\x01\x00\x00\x01\x00\x72\x01\x71\x01\x00\x00\x00\x00\x5f\x01\x00\x00\x01\x00\x01\x00\x76\x00\x0b\x00\x5d\x01\x01\x00\x54\x01\x00\x00\x53\x01\x27\x01\x66\x01\x37\x01\x36\x00\x04\x01\x00\x00\xdd\x00\x01\x00\x19\x01\xfd\x00\xe8\x00\x24\x01\xc9\x00\x01\x00\xfc\x00\x18\x01\x01\x00\x00\x00\x00\x00\xab\x01\xdf\x00\x01\x00\x43\x02\x00\x00\x36\x00\xd7\x00\x01\x00\x00\x00\x01\x00\x43\x02\x01\x00\xc8\x00\x01\x00\x0b\x00\x00\x00\xb9\x00\x01\x00\x36\x00\x9c\x00\x90\x00\x36\x00\xdb\x00\x00\x00\x43\x02\x01\x00\x00\x00\x43\x02\xdb\x00\x43\x02\x8f\x01\x70\x01\x00\x00\x82\x00\x01\x00\x00\x00\x00\x00\x94\x00\x43\x02\x00\x00\x5e\x00\x01\x00\xc6\xff\x00\x00\x01\x00\x43\x02\x43\x02\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x6f\x00\xc9\x03\x25\x00\x16\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x03\xbf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x00\x00\x00\x00\xbe\x03\xd9\x00\xb5\x03\xb4\x03\x00\x00\x00\x00\x4e\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\xaa\x03\xa7\x00\xa1\x03\x9d\x00\xa0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x97\x03\x96\x03\x8d\x03\x8c\x03\x83\x03\x82\x03\x79\x03\x78\x03\x6f\x03\x6e\x03\x65\x03\x64\x03\x5b\x03\x5a\x03\x51\x03\x50\x03\x47\x03\x46\x03\x3d\x03\x3c\x03\x33\x03\x00\x00\x32\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x98\x00\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x77\x00\xfb\xff\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x1f\x03\x00\x00\xe1\x00\x00\x00\x1e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x15\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x03\x00\x00\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x03\x00\x00\x00\x00\x51\x00\x00\x00\x0a\x03\x00\x00\x01\x03\x00\x00\x00\x03\x00\x00\xf7\x02\xba\x00\x00\x00\x00\x00\xf6\x02\x3b\x00\x00\x00\x00\x00\x33\x00\x2b\x00\x00\x00\x00\x00\xe6\x02\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"#--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\xe2\xff\x00\x00\xe2\xff\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xca\xff\xd5\xff\xdd\xff\x99\xff\x9f\xff\x9e\xff\x9c\xff\x9b\xff\x9a\xff\x9d\xff\x98\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x00\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x00\x00\xe2\xff\xfb\xff\x00\x00\xb4\xff\xba\xff\xa4\xff\x00\x00\x00\x00\xc9\xff\x00\x00\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf2\xff\xf1\xff\xeb\xff\xef\xff\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xe1\xff\x00\x00\xe8\xff\x00\x00\xe6\xff\xe3\xff\xe4\xff\xe5\xff\x00\x00\xe0\xff\xd0\xff\xd4\xff\xa9\xff\xaa\xff\xae\xff\xaf\xff\xb0\xff\xb1\xff\xa7\xff\xa8\xff\xa6\xff\xac\xff\xad\xff\xab\xff\xb2\xff\xb3\xff\xb5\xff\xb6\xff\xb7\xff\xb8\xff\xb9\xff\xbb\xff\xbc\xff\x00\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\xff\xc4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xff\x00\x00\xdc\xff\xda\xff\xa5\xff\x00\x00\x95\xff\xfa\xff\x00\x00\xa3\xff\xa2\xff\x00\x00\x00\x00\xd7\xff\xd8\xff\x00\x00\xd9\xff\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\xe0\xff\x00\x00\x00\x00\x00\x00\xd6\xff\x00\x00\x00\x00\x00\x00\xc1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xff\xec\xff\xed\xff\x00\x00\x00\x00\x00\x00\xd1\xff\xc7\xff\x00\x00\x00\x00\x00\x00\xce\xff\x00\x00\xcf\xff\x00\x00\x00\x00\x00\x00\xc2\xff\xc3\xff\x00\x00\x00\x00\x00\x00\xdf\xff\x00\x00\x00\x00\xe0\xff\xe9\xff\xd2\xff\x00\x00\xc0\xff\xbe\xff\xe0\xff\xbd\xff\x00\x00\x00\x00\xc6\xff\xa1\xff\xa2\xff\xcc\xff\xcd\xff\x00\x00\xd3\xff\xde\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x00\x00\xea\xff\xbf\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x01\x00\x29\x00\x11\x00\x07\x00\x03\x00\x09\x00\x06\x00\x00\x00\x0c\x00\x02\x00\x0e\x00\x0f\x00\x05\x00\x51\x00\x02\x00\x18\x00\x19\x00\x05\x00\x1b\x00\x1c\x00\x4b\x00\x1e\x00\x03\x00\x04\x00\x21\x00\x22\x00\x19\x00\x1a\x00\x25\x00\x02\x00\x27\x00\x28\x00\x05\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x07\x00\x06\x00\x09\x00\x32\x00\x01\x00\x0c\x00\x35\x00\x0e\x00\x0f\x00\x57\x00\x2b\x00\x3a\x00\x01\x00\x2e\x00\x1d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x2e\x00\x02\x00\x50\x00\x01\x00\x05\x00\x4b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x1f\x00\x4b\x00\x4c\x00\x07\x00\x00\x00\x09\x00\x02\x00\x06\x00\x0c\x00\x05\x00\x0e\x00\x0f\x00\x07\x00\x01\x00\x09\x00\x2e\x00\x06\x00\x0c\x00\x0d\x00\x01\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x20\x00\x4b\x00\x4c\x00\x01\x00\x07\x00\x3d\x00\x09\x00\x23\x00\x24\x00\x0c\x00\x0d\x00\x07\x00\x0f\x00\x09\x00\x2e\x00\x08\x00\x0c\x00\x0d\x00\x01\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x2f\x00\x0a\x00\x0b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x4d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x01\x00\x4b\x00\x4c\x00\x26\x00\x07\x00\x51\x00\x09\x00\x03\x00\x04\x00\x0c\x00\x0d\x00\x2e\x00\x0f\x00\x4d\x00\x58\x00\x0a\x00\x0b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x2e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x26\x00\x4b\x00\x4c\x00\x2f\x00\x07\x00\x07\x00\x09\x00\x09\x00\x2e\x00\x0c\x00\x0c\x00\x2f\x00\x0f\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x51\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x03\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x51\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x4d\x00\x31\x00\x4e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x51\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x4d\x00\x2f\x00\x01\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x4a\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x4d\x00\x2f\x00\x2f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x2e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x3d\x00\x4b\x00\x4c\x00\x4d\x00\x2e\x00\x2f\x00\x2f\x00\x2f\x00\x2e\x00\x02\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x4f\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4d\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x3d\x00\x30\x00\x2f\x00\x01\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x2e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x01\x00\x2e\x00\x2e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x03\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x01\x00\x4a\x00\x2e\x00\x2e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x02\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x02\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x33\x00\x4a\x00\x02\x00\x58\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x02\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x2e\x00\x2e\x00\x2e\x00\x2e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x03\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x58\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x02\x00\x02\x00\x01\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x02\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\x58\x00\x44\x00\x45\x00\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x07\x00\x2e\x00\x09\x00\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x36\x00\x37\x00\x38\x00\xff\xff\x4b\x00\x3b\x00\x3c\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\x4b\x00\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\x52\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4f\x00\x70\x00\xa2\x00\xc8\x00\xc0\x00\x0c\x00\xed\x00\xa1\x00\x0d\x00\x2b\x00\xf3\x00\x0e\x00\x05\x00\xf5\x00\x04\x00\x18\x00\x19\x00\x05\x00\x1a\x00\x1b\x00\x68\x00\x1c\x00\x71\x00\x6e\x00\x1d\x00\x1e\x00\xc1\x00\xc2\x00\x1f\x00\x0a\x00\x20\x00\x21\x00\x05\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xc8\x00\xef\x00\x0c\x00\x27\x00\xf0\x00\x0d\x00\x28\x00\xce\x00\x0e\x00\x71\x00\x49\x00\x29\x00\xdf\x00\x4a\x00\x90\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x2e\x00\x52\x00\x2b\x00\x2a\x00\xe9\x00\x05\x00\x50\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xdb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x91\x00\x68\x00\x69\x00\xc8\x00\x2a\x00\x0c\x00\x2b\x00\xb7\x00\x0d\x00\x05\x00\xc9\x00\x0e\x00\x32\x00\xa3\x00\x0c\x00\x52\x00\xb4\x00\x0d\x00\xa4\x00\xa6\x00\x0e\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xa7\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xc3\x00\x68\x00\x69\x00\xb0\x00\x32\x00\xf2\x00\x0c\x00\x94\x00\x95\x00\x0d\x00\xb2\x00\x32\x00\x0e\x00\x0c\x00\x52\x00\x92\x00\x0d\x00\x8b\x00\x96\x00\x0e\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x36\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xf3\x00\xe2\x00\xbe\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xeb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xb6\x00\x68\x00\x69\x00\xe2\x00\x32\x00\xde\x00\x0c\x00\x6d\x00\x6e\x00\x0d\x00\x33\x00\x52\x00\x0e\x00\xdf\x00\xff\xff\xbd\x00\xbe\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xe5\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xda\x00\x68\x00\x69\x00\xe9\x00\xf6\x00\xf5\x00\x0c\x00\x0c\x00\x52\x00\x0d\x00\x0d\x00\xcd\x00\x0e\x00\x0e\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xd4\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xd5\x00\x68\x00\x69\x00\x52\x00\xd1\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xd6\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xd2\x00\xd8\x00\xd7\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xdb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xd0\x00\xdd\x00\xb6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xb9\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xae\x00\xba\x00\xbb\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xc6\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xbd\x00\x68\x00\x69\x00\xa0\x00\x52\x00\xec\x00\xc7\x00\xc8\x00\xa6\x00\xab\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xcb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xad\x00\x68\x00\x69\x00\x52\x00\xed\x00\xb2\x00\xb0\x00\xb4\x00\xb6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xb7\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x73\x00\x74\x00\x8d\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x76\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xce\x00\x68\x00\x69\x00\x52\x00\xa9\x00\x8e\x00\x8f\x00\x9a\x00\x9b\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x9c\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9d\x00\x68\x00\x69\x00\x52\x00\xaa\x00\x9f\x00\xa1\x00\x2e\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x30\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x36\x00\x68\x00\x69\x00\x52\x00\xac\x00\x47\x00\x48\x00\x4b\x00\x4c\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x51\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\x68\x00\x69\x00\x52\x00\x9e\x00\x6a\x00\x6b\x00\x6c\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x6d\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x2d\x00\x00\x00\xfc\xff\x62\x00\x63\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\xee\x00\x52\x00\x0c\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x0e\x00\x55\x00\x56\x00\x57\x00\x00\x00\x68\x00\x5a\x00\x5b\x00\xe0\x00\xe3\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xe5\x00\xe6\x00\x0c\x00\x0c\x00\x68\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xe7\x00\xcb\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xd2\x00\xd8\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xbb\x00\xc3\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xc4\x00\xae\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x74\x00\x76\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x77\x00\x78\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x79\x00\x7a\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x7b\x00\x7c\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x7d\x00\x7e\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x7f\x00\x80\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x81\x00\x82\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x83\x00\x84\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x85\x00\x86\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x87\x00\x88\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x89\x00\x8a\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x91\x00\x95\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x97\x00\x98\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x30\x00\x31\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x34\x00\x4c\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x4d\x00\x0b\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyReduceArr = Happy_Data_Array.array (3, 106) [-	(3 , happyReduce_3),-	(4 , happyReduce_4),-	(5 , happyReduce_5),-	(6 , happyReduce_6),-	(7 , happyReduce_7),-	(8 , happyReduce_8),-	(9 , happyReduce_9),-	(10 , happyReduce_10),-	(11 , happyReduce_11),-	(12 , happyReduce_12),-	(13 , happyReduce_13),-	(14 , happyReduce_14),-	(15 , happyReduce_15),-	(16 , happyReduce_16),-	(17 , happyReduce_17),-	(18 , happyReduce_18),-	(19 , happyReduce_19),-	(20 , happyReduce_20),-	(21 , happyReduce_21),-	(22 , happyReduce_22),-	(23 , happyReduce_23),-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87),-	(88 , happyReduce_88),-	(89 , happyReduce_89),-	(90 , happyReduce_90),-	(91 , happyReduce_91),-	(92 , happyReduce_92),-	(93 , happyReduce_93),-	(94 , happyReduce_94),-	(95 , happyReduce_95),-	(96 , happyReduce_96),-	(97 , happyReduce_97),-	(98 , happyReduce_98),-	(99 , happyReduce_99),-	(100 , happyReduce_100),-	(101 , happyReduce_101),-	(102 , happyReduce_102),-	(103 , happyReduce_103),-	(104 , happyReduce_104),-	(105 , happyReduce_105),-	(106 , happyReduce_106)-	]--happy_n_terms = 89 :: Int-happy_n_nonterms = 18 :: Int--happyReduce_3 = happySpecReduce_1  0# happyReduction_3-happyReduction_3 happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	happyIn6-		 ([happy_var_1]-	)}--happyReduce_4 = happySpecReduce_2  0# happyReduction_4-happyReduction_4 happy_x_2-	happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	case happyOut6 happy_x_2 of { happy_var_2 -> -	happyIn6-		 (happy_var_1:happy_var_2-	)}}--happyReduce_5 = happyMonadReduce 4# 0# happyReduction_5-happyReduction_5 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> -	case happyOut6 happy_x_3 of { happy_var_3 -> -	case happyOut23 happy_x_4 of { happy_var_4 -> -	(- 	   let rest = happy_var_3 in-	   let pt = unsafePerformIO (readFile happy_var_2) in-		case (parse pt happy_var_4) of-		   Success x -> returnP (x ++ rest)-		   Failure err file ln -> failP err)}}}-	) (\r -> happyReturn (happyIn6 r))--happyReduce_6 = happySpecReduce_1  1# happyReduction_6-happyReduction_6 happy_x_1-	 =  happyIn7-		 (TyInt-	)--happyReduce_7 = happySpecReduce_1  1# happyReduction_7-happyReduction_7 happy_x_1-	 =  happyIn7-		 (TyBigInt-	)--happyReduce_8 = happySpecReduce_1  1# happyReduction_8-happyReduction_8 happy_x_1-	 =  happyIn7-		 (TyChar-	)--happyReduce_9 = happySpecReduce_1  1# happyReduction_9-happyReduction_9 happy_x_1-	 =  happyIn7-		 (TyBool-	)--happyReduce_10 = happySpecReduce_1  1# happyReduction_10-happyReduction_10 happy_x_1-	 =  happyIn7-		 (TyFloat-	)--happyReduce_11 = happySpecReduce_1  1# happyReduction_11-happyReduction_11 happy_x_1-	 =  happyIn7-		 (TyBigFloat-	)--happyReduce_12 = happySpecReduce_1  1# happyReduction_12-happyReduction_12 happy_x_1-	 =  happyIn7-		 (TyString-	)--happyReduce_13 = happySpecReduce_1  1# happyReduction_13-happyReduction_13 happy_x_1-	 =  happyIn7-		 (TyPtr-	)--happyReduce_14 = happySpecReduce_1  1# happyReduction_14-happyReduction_14 happy_x_1-	 =  happyIn7-		 (TyUnit-	)--happyReduce_15 = happySpecReduce_1  1# happyReduction_15-happyReduction_15 happy_x_1-	 =  happyIn7-		 (TyAny-	)--happyReduce_16 = happySpecReduce_1  1# happyReduction_16-happyReduction_16 happy_x_1-	 =  happyIn7-		 (TyData-	)--happyReduce_17 = happySpecReduce_2  1# happyReduction_17-happyReduction_17 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> -	happyIn7-		 (TyCType happy_var_2-	)}--happyReduce_18 = happyReduce 4# 1# happyReduction_18-happyReduction_18 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn7-		 (TyLin happy_var_3-	) `HappyStk` happyRest}--happyReduce_19 = happyReduce 4# 1# happyReduction_19-happyReduction_19 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn7-		 (TyEval happy_var_3-	) `HappyStk` happyRest}--happyReduce_20 = happySpecReduce_1  1# happyReduction_20-happyReduction_20 happy_x_1-	 =  happyIn7-		 (TyFun-	)--happyReduce_21 = happyReduce 10# 2# happyReduction_21-happyReduction_21 (happy_x_10 `HappyStk`-	happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut11 happy_x_1 of { happy_var_1 -> -	case happyOut9 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (TokenName happy_var_3) -> -	case happyOut12 happy_x_5 of { happy_var_5 -> -	case happyOut7 happy_x_8 of { happy_var_8 -> -	case happyOut13 happy_x_10 of { happy_var_10 -> -	happyIn8-		 (mkBind happy_var_3 (map snd happy_var_5) happy_var_8 (map fst happy_var_5) happy_var_10 happy_var_1 happy_var_2-	) `HappyStk` happyRest}}}}}}--happyReduce_22 = happyReduce 7# 2# happyReduction_22-happyReduction_22 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> -	case happyOut12 happy_x_4 of { happy_var_4 -> -	case happyOut7 happy_x_7 of { happy_var_7 -> -	happyIn8-		 (mkExtern happy_var_2 (map snd happy_var_4) happy_var_7 (map fst happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_23 = happySpecReduce_2  2# happyReduction_23-happyReduction_23 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> -	happyIn8-		 (Include happy_var_2-	)}--happyReduce_24 = happySpecReduce_2  2# happyReduction_24-happyReduction_24 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> -	happyIn8-		 (CType happy_var_2-	)}--happyReduce_25 = happySpecReduce_0  3# happyReduction_25-happyReduction_25  =  happyIn9-		 ([]-	)--happyReduce_26 = happySpecReduce_2  3# happyReduction_26-happyReduction_26 happy_x_2-	happy_x_1-	 =  case happyOut10 happy_x_1 of { happy_var_1 -> -	case happyOut9 happy_x_2 of { happy_var_2 -> -	happyIn9-		 (happy_var_1:happy_var_2-	)}}--happyReduce_27 = happySpecReduce_1  4# happyReduction_27-happyReduction_27 happy_x_1-	 =  happyIn10-		 (Inline-	)--happyReduce_28 = happySpecReduce_1  4# happyReduction_28-happyReduction_28 happy_x_1-	 =  happyIn10-		 (Strict-	)--happyReduce_29 = happySpecReduce_0  5# happyReduction_29-happyReduction_29  =  happyIn11-		 (Nothing-	)--happyReduce_30 = happySpecReduce_2  5# happyReduction_30-happyReduction_30 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> -	happyIn11-		 (Just happy_var_2-	)}--happyReduce_31 = happySpecReduce_0  6# happyReduction_31-happyReduction_31  =  happyIn12-		 ([]-	)--happyReduce_32 = happySpecReduce_3  6# happyReduction_32-happyReduction_32 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> -	case happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn12-		 ([(happy_var_1,happy_var_3)]-	)}}--happyReduce_33 = happyReduce 5# 6# happyReduction_33-happyReduction_33 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> -	case happyOut7 happy_x_3 of { happy_var_3 -> -	case happyOut12 happy_x_5 of { happy_var_5 -> -	happyIn12-		 ((happy_var_1,happy_var_3):happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_34 = happySpecReduce_1  7# happyReduction_34-happyReduction_34 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> -	happyIn13-		 (R happy_var_1-	)}--happyReduce_35 = happySpecReduce_3  7# happyReduction_35-happyReduction_35 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> -	happyIn13-		 (happy_var_2-	)}--happyReduce_36 = happyReduce 4# 7# happyReduction_36-happyReduction_36 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut19 happy_x_3 of { happy_var_3 -> -	happyIn13-		 (App happy_var_1 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_37 = happySpecReduce_3  7# happyReduction_37-happyReduction_37 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut19 happy_x_2 of { happy_var_2 -> -	happyIn13-		 (Con 0 happy_var_2-	)}--happyReduce_38 = happyReduce 4# 7# happyReduction_38-happyReduction_38 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn13-		 (Lazy happy_var_3-	) `HappyStk` happyRest}--happyReduce_39 = happyReduce 4# 7# happyReduction_39-happyReduction_39 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn13-		 (Par happy_var_3-	) `HappyStk` happyRest}--happyReduce_40 = happyReduce 4# 7# happyReduction_40-happyReduction_40 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn13-		 (Effect happy_var_3-	) `HappyStk` happyRest}--happyReduce_41 = happyReduce 5# 7# happyReduction_41-happyReduction_41 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> -	case happyOut19 happy_x_4 of { happy_var_4 -> -	happyIn13-		 (Con happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_42 = happySpecReduce_1  7# happyReduction_42-happyReduction_42 happy_x_1-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> -	happyIn13-		 (Const happy_var_1-	)}--happyReduce_43 = happySpecReduce_3  7# happyReduction_43-happyReduction_43 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_3 of { (TokenInt happy_var_3) -> -	happyIn13-		 (Proj happy_var_1 happy_var_3-	)}}--happyReduce_44 = happyReduce 8# 7# happyReduction_44-happyReduction_44 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> -	case happyOut7 happy_x_4 of { happy_var_4 -> -	case happyOut13 happy_x_6 of { happy_var_6 -> -	case happyOut13 happy_x_8 of { happy_var_8 -> -	happyIn13-		 (Let happy_var_2 happy_var_4 happy_var_6 happy_var_8-	) `HappyStk` happyRest}}}}--happyReduce_45 = happyReduce 7# 7# happyReduction_45-happyReduction_45 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TokenName happy_var_3) -> -	case happyOut13 happy_x_5 of { happy_var_5 -> -	case happyOut13 happy_x_7 of { happy_var_7 -> -	happyIn13-		 (LetM happy_var_3 happy_var_5 happy_var_7-	) `HappyStk` happyRest}}}--happyReduce_46 = happyReduce 6# 7# happyReduction_46-happyReduction_46 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> -	case happyOut7 happy_x_4 of { happy_var_4 -> -	case happyOut13 happy_x_6 of { happy_var_6 -> -	happyIn13-		 (Lam happy_var_2 happy_var_4 happy_var_6-	) `HappyStk` happyRest}}}--happyReduce_47 = happySpecReduce_3  7# happyReduction_47-happyReduction_47 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn13-		 (Let (MN "unused" 0) TyUnit happy_var_1 happy_var_3-	)}}--happyReduce_48 = happyReduce 6# 7# happyReduction_48-happyReduction_48 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_2 of { happy_var_2 -> -	case happyOut13 happy_x_4 of { happy_var_4 -> -	case happyOut13 happy_x_6 of { happy_var_6 -> -	happyIn13-		 (If happy_var_2 happy_var_4 happy_var_6-	) `HappyStk` happyRest}}}--happyReduce_49 = happyReduce 6# 7# happyReduction_49-happyReduction_49 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_3 of { happy_var_3 -> -	case happyOut13 happy_x_5 of { happy_var_5 -> -	happyIn13-		 (While happy_var_3 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_50 = happyReduce 8# 7# happyReduction_50-happyReduction_50 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_3 of { happy_var_3 -> -	case happyOut13 happy_x_5 of { happy_var_5 -> -	case happyOut13 happy_x_7 of { happy_var_7 -> -	happyIn13-		 (WhileAcc happy_var_3 happy_var_5 happy_var_7-	) `HappyStk` happyRest}}}--happyReduce_51 = happyReduce 8# 7# happyReduction_51-happyReduction_51 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut14 happy_x_3 of { happy_var_3 -> -	case happyOut13 happy_x_5 of { happy_var_5 -> -	case happyOut13 happy_x_7 of { happy_var_7 -> -	happyIn13-		 (WithMem happy_var_3 happy_var_5 happy_var_7-	) `HappyStk` happyRest}}}--happyReduce_52 = happySpecReduce_1  7# happyReduction_52-happyReduction_52 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn13-		 (happy_var_1-	)}--happyReduce_53 = happySpecReduce_1  7# happyReduction_53-happyReduction_53 happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	happyIn13-		 (happy_var_1-	)}--happyReduce_54 = happySpecReduce_2  7# happyReduction_54-happyReduction_54 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> -	happyIn13-		 (Error happy_var_2-	)}--happyReduce_55 = happySpecReduce_1  7# happyReduction_55-happyReduction_55 happy_x_1-	 =  happyIn13-		 (Impossible-	)--happyReduce_56 = happyReduce 6# 7# happyReduction_56-happyReduction_56 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut7 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> -	case happyOut20 happy_x_5 of { happy_var_5 -> -	happyIn13-		 (ForeignCall happy_var_2 happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_57 = happyReduce 7# 7# happyReduction_57-happyReduction_57 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut7 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokenString happy_var_4) -> -	case happyOut20 happy_x_6 of { happy_var_6 -> -	happyIn13-		 (LazyForeignCall happy_var_3 happy_var_4 happy_var_6-	) `HappyStk` happyRest}}}--happyReduce_58 = happySpecReduce_1  8# happyReduction_58-happyReduction_58 happy_x_1-	 =  happyIn14-		 (FixedPool-	)--happyReduce_59 = happySpecReduce_1  8# happyReduction_59-happyReduction_59 happy_x_1-	 =  happyIn14-		 (GrowablePool-	)--happyReduce_60 = happyReduce 6# 9# happyReduction_60-happyReduction_60 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_2 of { happy_var_2 -> -	case happyOut16 happy_x_5 of { happy_var_5 -> -	happyIn15-		 (Case happy_var_2 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_61 = happySpecReduce_0  10# happyReduction_61-happyReduction_61  =  happyIn16-		 ([]-	)--happyReduce_62 = happySpecReduce_1  10# happyReduction_62-happyReduction_62 happy_x_1-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> -	happyIn16-		 ([happy_var_1]-	)}--happyReduce_63 = happySpecReduce_3  10# happyReduction_63-happyReduction_63 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> -	case happyOut16 happy_x_3 of { happy_var_3 -> -	happyIn16-		 (happy_var_1:happy_var_3-	)}}--happyReduce_64 = happyReduce 7# 11# happyReduction_64-happyReduction_64 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> -	case happyOut12 happy_x_4 of { happy_var_4 -> -	case happyOut13 happy_x_7 of { happy_var_7 -> -	happyIn17-		 (Alt happy_var_2 happy_var_4 happy_var_7-	) `HappyStk` happyRest}}}--happyReduce_65 = happySpecReduce_3  11# happyReduction_65-happyReduction_65 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn17-		 (ConstAlt happy_var_1 happy_var_3-	)}}--happyReduce_66 = happySpecReduce_3  11# happyReduction_66-happyReduction_66 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn17-		 (DefaultCase happy_var_3-	)}--happyReduce_67 = happySpecReduce_3  12# happyReduction_67-happyReduction_67 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op Plus happy_var_1 happy_var_3-	)}}--happyReduce_68 = happySpecReduce_3  12# happyReduction_68-happyReduction_68 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op Minus happy_var_1 happy_var_3-	)}}--happyReduce_69 = happySpecReduce_2  12# happyReduction_69-happyReduction_69 happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> -	happyIn18-		 (Op Minus (Const (MkInt 0)) happy_var_2-	)}--happyReduce_70 = happySpecReduce_3  12# happyReduction_70-happyReduction_70 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op Times happy_var_1 happy_var_3-	)}}--happyReduce_71 = happySpecReduce_3  12# happyReduction_71-happyReduction_71 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op Divide happy_var_1 happy_var_3-	)}}--happyReduce_72 = happySpecReduce_3  12# happyReduction_72-happyReduction_72 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op Modulo happy_var_1 happy_var_3-	)}}--happyReduce_73 = happySpecReduce_3  12# happyReduction_73-happyReduction_73 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op FPlus happy_var_1 happy_var_3-	)}}--happyReduce_74 = happySpecReduce_3  12# happyReduction_74-happyReduction_74 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op FMinus happy_var_1 happy_var_3-	)}}--happyReduce_75 = happySpecReduce_2  12# happyReduction_75-happyReduction_75 happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> -	happyIn18-		 (Op FMinus (Const (MkInt 0)) happy_var_2-	)}--happyReduce_76 = happySpecReduce_3  12# happyReduction_76-happyReduction_76 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op FTimes happy_var_1 happy_var_3-	)}}--happyReduce_77 = happySpecReduce_3  12# happyReduction_77-happyReduction_77 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op FDivide happy_var_1 happy_var_3-	)}}--happyReduce_78 = happySpecReduce_3  12# happyReduction_78-happyReduction_78 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op ShL happy_var_1 happy_var_3-	)}}--happyReduce_79 = happySpecReduce_3  12# happyReduction_79-happyReduction_79 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op ShR happy_var_1 happy_var_3-	)}}--happyReduce_80 = happySpecReduce_3  12# happyReduction_80-happyReduction_80 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpLT happy_var_1 happy_var_3-	)}}--happyReduce_81 = happySpecReduce_3  12# happyReduction_81-happyReduction_81 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpGT happy_var_1 happy_var_3-	)}}--happyReduce_82 = happySpecReduce_3  12# happyReduction_82-happyReduction_82 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpLE happy_var_1 happy_var_3-	)}}--happyReduce_83 = happySpecReduce_3  12# happyReduction_83-happyReduction_83 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpGE happy_var_1 happy_var_3-	)}}--happyReduce_84 = happySpecReduce_3  12# happyReduction_84-happyReduction_84 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpEQ happy_var_1 happy_var_3-	)}}--happyReduce_85 = happySpecReduce_3  12# happyReduction_85-happyReduction_85 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpFLT happy_var_1 happy_var_3-	)}}--happyReduce_86 = happySpecReduce_3  12# happyReduction_86-happyReduction_86 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpFGT happy_var_1 happy_var_3-	)}}--happyReduce_87 = happySpecReduce_3  12# happyReduction_87-happyReduction_87 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpFLE happy_var_1 happy_var_3-	)}}--happyReduce_88 = happySpecReduce_3  12# happyReduction_88-happyReduction_88 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpFGE happy_var_1 happy_var_3-	)}}--happyReduce_89 = happySpecReduce_3  12# happyReduction_89-happyReduction_89 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut13 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (Op OpFEQ happy_var_1 happy_var_3-	)}}--happyReduce_90 = happySpecReduce_0  13# happyReduction_90-happyReduction_90  =  happyIn19-		 ([]-	)--happyReduce_91 = happySpecReduce_1  13# happyReduction_91-happyReduction_91 happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	happyIn19-		 ([happy_var_1]-	)}--happyReduce_92 = happySpecReduce_3  13# happyReduction_92-happyReduction_92 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut19 happy_x_3 of { happy_var_3 -> -	happyIn19-		 (happy_var_1:happy_var_3-	)}}--happyReduce_93 = happySpecReduce_0  14# happyReduction_93-happyReduction_93  =  happyIn20-		 ([]-	)--happyReduce_94 = happySpecReduce_3  14# happyReduction_94-happyReduction_94 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn20-		 ([(happy_var_1,happy_var_3)]-	)}}--happyReduce_95 = happyReduce 5# 14# happyReduction_95-happyReduction_95 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut7 happy_x_3 of { happy_var_3 -> -	case happyOut20 happy_x_5 of { happy_var_5 -> -	happyIn20-		 ((happy_var_1,happy_var_3):happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_96 = happySpecReduce_1  15# happyReduction_96-happyReduction_96 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> -	happyIn21-		 (MkInt happy_var_1-	)}--happyReduce_97 = happySpecReduce_1  15# happyReduction_97-happyReduction_97 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenBigInt happy_var_1) -> -	happyIn21-		 (MkBigInt happy_var_1-	)}--happyReduce_98 = happySpecReduce_1  15# happyReduction_98-happyReduction_98 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> -	happyIn21-		 (MkChar happy_var_1-	)}--happyReduce_99 = happySpecReduce_1  15# happyReduction_99-happyReduction_99 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> -	happyIn21-		 (MkBool happy_var_1-	)}--happyReduce_100 = happySpecReduce_1  15# happyReduction_100-happyReduction_100 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> -	happyIn21-		 (MkFloat happy_var_1-	)}--happyReduce_101 = happySpecReduce_1  15# happyReduction_101-happyReduction_101 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenBigFloat happy_var_1) -> -	happyIn21-		 (MkBigFloat happy_var_1-	)}--happyReduce_102 = happySpecReduce_1  15# happyReduction_102-happyReduction_102 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> -	happyIn21-		 (MkString happy_var_1-	)}--happyReduce_103 = happySpecReduce_1  15# happyReduction_103-happyReduction_103 happy_x_1-	 =  happyIn21-		 (MkUnit-	)--happyReduce_104 = happySpecReduce_1  15# happyReduction_104-happyReduction_104 happy_x_1-	 =  happyIn21-		 (MkUnused-	)--happyReduce_105 = happyMonadReduce 0# 16# happyReduction_105-happyReduction_105 (happyRest) tk-	 = happyThen (( getLineNo)-	) (\r -> happyReturn (happyIn22 r))--happyReduce_106 = happyMonadReduce 0# 17# happyReduction_106-happyReduction_106 (happyRest) tk-	 = happyThen (( getFileName)-	) (\r -> happyReturn (happyIn23 r))--happyNewToken action sts stk-	= lexer(\tk -> -	let cont i = happyDoAction i tk action sts stk in-	case tk of {-	TokenEOF -> happyDoAction 88# tk action sts stk;-	TokenName happy_dollar_dollar -> cont 1#;-	TokenString happy_dollar_dollar -> cont 2#;-	TokenInt happy_dollar_dollar -> cont 3#;-	TokenBigInt happy_dollar_dollar -> cont 4#;-	TokenBool happy_dollar_dollar -> cont 5#;-	TokenFloat happy_dollar_dollar -> cont 6#;-	TokenBigFloat happy_dollar_dollar -> cont 7#;-	TokenChar happy_dollar_dollar -> cont 8#;-	TokenIntType -> cont 9#;-	TokenBigIntType -> cont 10#;-	TokenCharType -> cont 11#;-	TokenBoolType -> cont 12#;-	TokenFloatType -> cont 13#;-	TokenBigFloatType -> cont 14#;-	TokenStringType -> cont 15#;-	TokenPtrType -> cont 16#;-	TokenUnitType -> cont 17#;-	TokenFunType -> cont 18#;-	TokenDataType -> cont 19#;-	TokenTyCType -> cont 20#;-	TokenTyLinear -> cont 21#;-	TokenTyEval -> cont 22#;-	TokenAnyType -> cont 23#;-	TokenUnit -> cont 24#;-	TokenCon -> cont 25#;-	TokenDefault -> cont 26#;-	TokenLet -> cont 27#;-	TokenCase -> cont 28#;-	TokenOf -> cont 29#;-	TokenIf -> cont 30#;-	TokenThen -> cont 31#;-	TokenElse -> cont 32#;-	TokenWhile -> cont 33#;-	TokenMemory -> cont 34#;-	TokenFixed -> cont 35#;-	TokenGrowable -> cont 36#;-	TokenUnused -> cont 37#;-	TokenIn -> cont 38#;-	TokenLazy -> cont 39#;-	TokenPar -> cont 40#;-	TokenStrict -> cont 41#;-	TokenEffect -> cont 42#;-	TokenForeign -> cont 43#;-	TokenError -> cont 44#;-	TokenImpossible -> cont 45#;-	TokenOB -> cont 46#;-	TokenCB -> cont 47#;-	TokenOCB -> cont 48#;-	TokenCCB -> cont 49#;-	TokenOSB -> cont 50#;-	TokenCSB -> cont 51#;-	TokenPlus -> cont 52#;-	TokenMinus -> cont 53#;-	TokenTimes -> cont 54#;-	TokenDivide -> cont 55#;-	TokenMod -> cont 56#;-	TokenFPlus -> cont 57#;-	TokenFMinus -> cont 58#;-	TokenFTimes -> cont 59#;-	TokenFDivide -> cont 60#;-	TokenEquals -> cont 61#;-	TokenEQ -> cont 62#;-	TokenLE -> cont 63#;-	TokenGE -> cont 64#;-	TokenFEQ -> cont 65#;-	TokenFLE -> cont 66#;-	TokenFGE -> cont 67#;-	TokenShL -> cont 68#;-	TokenShR -> cont 69#;-	TokenLT -> cont 70#;-	TokenGT -> cont 71#;-	TokenFLT -> cont 72#;-	TokenFGT -> cont 73#;-	TokenColon -> cont 74#;-	TokenProj -> cont 75#;-	TokenSemi -> cont 76#;-	TokenComma -> cont 77#;-	TokenBar -> cont 78#;-	TokenDot -> cont 79#;-	TokenLam -> cont 80#;-	TokenArrow -> cont 81#;-	TokenCInclude -> cont 82#;-	TokenExtern -> cont 83#;-	TokenExport -> cont 84#;-	TokenCType -> cont 85#;-	TokenInclude -> cont 86#;-	TokenInline -> cont 87#;-	_ -> happyError' tk-	})--happyError_ tk = happyError' tk--happyThen :: () => P a -> (a -> P b) -> P b-happyThen = (thenP)-happyReturn :: () => a -> P a-happyReturn = (returnP)-happyThen1 = happyThen-happyReturn1 :: () => a -> P a-happyReturn1 = happyReturn-happyError' :: () => (Token) -> P a-happyError' tk = (\token -> happyError) tk--mkparse = happySomeParser where-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))--mkexpr = happySomeParser where-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut13 x))--mkdecl = happySomeParser where-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut8 x))--happySeq = happyDontSeq---mkBind :: Name -> [Type] -> Type -> [Name] -> Expr -> Maybe String -> [CGFlag] -> Decl-mkBind n tys ret ns expr export fl = Decl n ret (Bind (zip ns tys) 0 expr fl) export fl--mkExtern :: Name -> [Type] -> Type -> [Name] -> Decl-mkExtern n tys ret ns = Extern n ret tys--parse :: String -> FilePath -> Result [Decl]-parse s fn = mkparse s fn 1--parseExpr :: String -> Result Expr-parseExpr s = mkexpr s "[expr]" 1--parseDecl :: String -> Result Decl-parseDecl s = mkdecl s "[decl]" 1--parseFile :: FilePath -> IO (Result [Decl])-parseFile fn = do s <- readFile fn-                  let x = parse s fn-                  return x-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp --{-# LINE 30 "templates/GenericTemplate.hs" #-}---data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList------{-# LINE 51 "templates/GenericTemplate.hs" #-}--{-# LINE 61 "templates/GenericTemplate.hs" #-}--{-# LINE 70 "templates/GenericTemplate.hs" #-}--infixr 9 `HappyStk`-data HappyStk a = HappyStk a (HappyStk a)---------------------------------------------------------------------------------- starting the parse--happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll---------------------------------------------------------------------------------- Accepting the parse---- If the current token is 0#, 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 i tk st-		-1# 	  -> {- nothing -}-				     happyAccept i tk st-		n | (n Happy_GHC_Exts.<# (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)    = indexShortOffAddr happyActOffsets st-         (off_i)  = (off Happy_GHC_Exts.+# i)-	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))-			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)-			else False-         (action)-          | check     = indexShortOffAddr happyTable off_i-          | otherwise = indexShortOffAddr happyDefActions st--{-# LINE 130 "templates/GenericTemplate.hs" #-}---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#------data HappyAddr = HappyA# Happy_GHC_Exts.Addr#------------------------------------------------------------------------------------- HappyState data type (not arrays)--{-# LINE 163 "templates/GenericTemplate.hs" #-}---------------------------------------------------------------------------------- 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 =-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))-       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))-             drop_stk = happyDropStk k 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 =-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))-       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))-             drop_stk = happyDropStk k stk--             (off) = indexShortOffAddr happyGotoOffsets st1-             (off_i) = (off Happy_GHC_Exts.+# nt)-             (new_state) = indexShortOffAddr happyTable off_i-----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) = indexShortOffAddr happyGotoOffsets st-         (off_i) = (off Happy_GHC_Exts.+# nt)-         (new_state) = indexShortOffAddr happyTable off_i------------------------------------------------------------------------------------- Error recovery (0# is the error token)---- parse error if we are in recovery and we fail again-happyFail  0# tk old_st _ stk =---	trace "failing" $ -    	happyError_ 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  0# tk old_st (HappyCons ((action)) (sts)) -						(saved_tok `HappyStk` _ `HappyStk` stk) =---	trace ("discarding state, depth " ++ show (length stk))  $-	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))--}---- Enter error recovery: generate an error token,---                       save the old token and carry on.-happyFail  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 = 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 `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.
+ dist/build/epic/epic-tmp/Epic/Parser.hs view
@@ -0,0 +1,1646 @@+{-# OPTIONS_GHC -w #-}+{-# OPTIONS -fglasgow-exts -cpp #-}+-- -*-Haskell-*-++module Epic.Parser where++import Data.Char+import System.IO.Unsafe++import Epic.Language+import Epic.Lexer+import qualified Data.Array as Happy_Data_Array+import qualified GHC.Exts as Happy_GHC_Exts+import Control.Applicative(Applicative(..))++-- parser produced by Happy Version 1.19.4++newtype HappyAbsSyn  = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+happyIn6 :: ([Decl]) -> (HappyAbsSyn )+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn6 #-}+happyOut6 :: (HappyAbsSyn ) -> ([Decl])+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut6 #-}+happyIn7 :: (Type) -> (HappyAbsSyn )+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn7 #-}+happyOut7 :: (HappyAbsSyn ) -> (Type)+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut7 #-}+happyIn8 :: (Decl) -> (HappyAbsSyn )+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn8 #-}+happyOut8 :: (HappyAbsSyn ) -> (Decl)+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut8 #-}+happyIn9 :: ([CGFlag]) -> (HappyAbsSyn )+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn9 #-}+happyOut9 :: (HappyAbsSyn ) -> ([CGFlag])+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut9 #-}+happyIn10 :: (CGFlag) -> (HappyAbsSyn )+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn10 #-}+happyOut10 :: (HappyAbsSyn ) -> (CGFlag)+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut10 #-}+happyIn11 :: (Maybe String) -> (HappyAbsSyn )+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn11 #-}+happyOut11 :: (HappyAbsSyn ) -> (Maybe String)+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut11 #-}+happyIn12 :: ([(Name,Type)]) -> (HappyAbsSyn )+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn12 #-}+happyOut12 :: (HappyAbsSyn ) -> ([(Name,Type)])+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut12 #-}+happyIn13 :: (Expr) -> (HappyAbsSyn )+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn13 #-}+happyOut13 :: (HappyAbsSyn ) -> (Expr)+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut13 #-}+happyIn14 :: (Allocator) -> (HappyAbsSyn )+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn14 #-}+happyOut14 :: (HappyAbsSyn ) -> (Allocator)+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut14 #-}+happyIn15 :: (Expr) -> (HappyAbsSyn )+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn15 #-}+happyOut15 :: (HappyAbsSyn ) -> (Expr)+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut15 #-}+happyIn16 :: ([CaseAlt]) -> (HappyAbsSyn )+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn16 #-}+happyOut16 :: (HappyAbsSyn ) -> ([CaseAlt])+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut16 #-}+happyIn17 :: (CaseAlt) -> (HappyAbsSyn )+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn17 #-}+happyOut17 :: (HappyAbsSyn ) -> (CaseAlt)+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut17 #-}+happyIn18 :: (Expr) -> (HappyAbsSyn )+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn18 #-}+happyOut18 :: (HappyAbsSyn ) -> (Expr)+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut18 #-}+happyIn19 :: ([Expr]) -> (HappyAbsSyn )+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn19 #-}+happyOut19 :: (HappyAbsSyn ) -> ([Expr])+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut19 #-}+happyIn20 :: ([(Expr,Type)]) -> (HappyAbsSyn )+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn20 #-}+happyOut20 :: (HappyAbsSyn ) -> ([(Expr,Type)])+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut20 #-}+happyIn21 :: (Const) -> (HappyAbsSyn )+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn21 #-}+happyOut21 :: (HappyAbsSyn ) -> (Const)+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut21 #-}+happyIn22 :: (LineNumber) -> (HappyAbsSyn )+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (LineNumber)+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: (String) -> (HappyAbsSyn )+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> (String)+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\x87\x03\x01\x00\xda\x00\xda\x00\x00\x00\xe2\xff\x62\x02\x58\x02\x56\x02\x55\x02\xfa\x01\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x02\x09\x00\x01\x00\x01\x00\x0d\x02\x0c\x02\x00\x00\x0f\x00\x0b\x02\x0a\x02\x36\x00\x31\x02\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x25\x02\xc4\x01\x82\x02\x19\x02\x87\x03\x00\x00\xd0\x01\xd3\xff\xd3\xff\x50\x01\xe6\x01\x27\x02\x00\x00\x12\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x02\xcf\x01\xce\x01\x00\x00\x01\x00\x01\x00\x36\x00\x01\x00\x7a\x00\x01\x00\x4c\x00\x21\x00\xb1\x01\xf9\x01\xb0\x01\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\xe5\x01\x01\x00\x00\x00\x00\x00\xaf\x01\x00\x00\xdb\x01\xe2\xff\x00\x00\x00\x00\x00\x00\x9e\x01\xc1\x01\x7b\x02\x00\x00\x97\x02\x97\x02\x97\x02\x97\x02\xaf\x02\xaf\x02\x97\x02\x97\x02\x5f\x02\x97\x02\x97\x02\x5f\x02\xd3\xff\xd3\xff\xc0\x02\xc0\x02\xd3\xff\xd3\xff\xd3\xff\xc0\x02\xc0\x02\x92\x01\x01\x00\x82\x01\x36\x00\x90\x01\x01\x00\x34\x01\x6d\x01\x00\x00\x00\x00\x08\x02\xa1\x01\xe9\x01\xca\x01\x36\x00\x36\x00\x00\x00\x74\x01\x00\x00\x00\x00\x01\x00\x36\x00\x00\x00\x00\x00\x5e\x01\x00\x00\x01\x00\x72\x01\x71\x01\x00\x00\x00\x00\x5f\x01\x00\x00\x01\x00\x01\x00\x76\x00\x0b\x00\x5d\x01\x01\x00\x54\x01\x00\x00\x53\x01\x27\x01\x66\x01\x37\x01\x36\x00\x04\x01\x00\x00\xdd\x00\x01\x00\x19\x01\xfd\x00\xe8\x00\x24\x01\xc9\x00\x01\x00\xfc\x00\x18\x01\x01\x00\x00\x00\x00\x00\xab\x01\xdf\x00\x01\x00\x43\x02\x00\x00\x36\x00\xd7\x00\x01\x00\x00\x00\x01\x00\x43\x02\x01\x00\xc8\x00\x01\x00\x0b\x00\x00\x00\xb9\x00\x01\x00\x36\x00\x9c\x00\x90\x00\x36\x00\xdb\x00\x00\x00\x43\x02\x01\x00\x00\x00\x43\x02\xdb\x00\x43\x02\x8f\x01\x70\x01\x00\x00\x82\x00\x01\x00\x00\x00\x00\x00\x94\x00\x43\x02\x00\x00\x5e\x00\x01\x00\xc6\xff\x00\x00\x01\x00\x43\x02\x43\x02\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\x6f\x00\xc9\x03\x25\x00\x16\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x03\xbf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x00\x00\x00\x00\xbe\x03\xd9\x00\xb5\x03\xb4\x03\x00\x00\x00\x00\x4e\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\xaa\x03\xa7\x00\xa1\x03\x9d\x00\xa0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x97\x03\x96\x03\x8d\x03\x8c\x03\x83\x03\x82\x03\x79\x03\x78\x03\x6f\x03\x6e\x03\x65\x03\x64\x03\x5b\x03\x5a\x03\x51\x03\x50\x03\x47\x03\x46\x03\x3d\x03\x3c\x03\x33\x03\x00\x00\x32\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x98\x00\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x77\x00\xfb\xff\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x1f\x03\x00\x00\xe1\x00\x00\x00\x1e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x15\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x03\x00\x00\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x03\x00\x00\x00\x00\x51\x00\x00\x00\x0a\x03\x00\x00\x01\x03\x00\x00\x00\x03\x00\x00\xf7\x02\xba\x00\x00\x00\x00\x00\xf6\x02\x3b\x00\x00\x00\x00\x00\x33\x00\x2b\x00\x00\x00\x00\x00\xe6\x02\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"#++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\xe2\xff\x00\x00\xe2\xff\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xca\xff\xd5\xff\xdd\xff\x99\xff\x9f\xff\x9e\xff\x9c\xff\x9b\xff\x9a\xff\x9d\xff\x98\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x00\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x00\x00\xe2\xff\xfb\xff\x00\x00\xb4\xff\xba\xff\xa4\xff\x00\x00\x00\x00\xc9\xff\x00\x00\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf2\xff\xf1\xff\xeb\xff\xef\xff\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xe1\xff\x00\x00\xe8\xff\x00\x00\xe6\xff\xe3\xff\xe4\xff\xe5\xff\x00\x00\xe0\xff\xd0\xff\xd4\xff\xa9\xff\xaa\xff\xae\xff\xaf\xff\xb0\xff\xb1\xff\xa7\xff\xa8\xff\xa6\xff\xac\xff\xad\xff\xab\xff\xb2\xff\xb3\xff\xb5\xff\xb6\xff\xb7\xff\xb8\xff\xb9\xff\xbb\xff\xbc\xff\x00\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\xff\xc4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xff\x00\x00\xdc\xff\xda\xff\xa5\xff\x00\x00\x95\xff\xfa\xff\x00\x00\xa3\xff\xa2\xff\x00\x00\x00\x00\xd7\xff\xd8\xff\x00\x00\xd9\xff\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\xe0\xff\x00\x00\x00\x00\x00\x00\xd6\xff\x00\x00\x00\x00\x00\x00\xc1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xff\xec\xff\xed\xff\x00\x00\x00\x00\x00\x00\xd1\xff\xc7\xff\x00\x00\x00\x00\x00\x00\xce\xff\x00\x00\xcf\xff\x00\x00\x00\x00\x00\x00\xc2\xff\xc3\xff\x00\x00\x00\x00\x00\x00\xdf\xff\x00\x00\x00\x00\xe0\xff\xe9\xff\xd2\xff\x00\x00\xc0\xff\xbe\xff\xe0\xff\xbd\xff\x00\x00\x00\x00\xc6\xff\xa1\xff\xa2\xff\xcc\xff\xcd\xff\x00\x00\xd3\xff\xde\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x00\x00\xea\xff\xbf\xff"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x01\x00\x29\x00\x11\x00\x07\x00\x03\x00\x09\x00\x06\x00\x00\x00\x0c\x00\x02\x00\x0e\x00\x0f\x00\x05\x00\x51\x00\x02\x00\x18\x00\x19\x00\x05\x00\x1b\x00\x1c\x00\x4b\x00\x1e\x00\x03\x00\x04\x00\x21\x00\x22\x00\x19\x00\x1a\x00\x25\x00\x02\x00\x27\x00\x28\x00\x05\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x07\x00\x06\x00\x09\x00\x32\x00\x01\x00\x0c\x00\x35\x00\x0e\x00\x0f\x00\x57\x00\x2b\x00\x3a\x00\x01\x00\x2e\x00\x1d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x2e\x00\x02\x00\x50\x00\x01\x00\x05\x00\x4b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x1f\x00\x4b\x00\x4c\x00\x07\x00\x00\x00\x09\x00\x02\x00\x06\x00\x0c\x00\x05\x00\x0e\x00\x0f\x00\x07\x00\x01\x00\x09\x00\x2e\x00\x06\x00\x0c\x00\x0d\x00\x01\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x20\x00\x4b\x00\x4c\x00\x01\x00\x07\x00\x3d\x00\x09\x00\x23\x00\x24\x00\x0c\x00\x0d\x00\x07\x00\x0f\x00\x09\x00\x2e\x00\x08\x00\x0c\x00\x0d\x00\x01\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x2f\x00\x0a\x00\x0b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x4d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x01\x00\x4b\x00\x4c\x00\x26\x00\x07\x00\x51\x00\x09\x00\x03\x00\x04\x00\x0c\x00\x0d\x00\x2e\x00\x0f\x00\x4d\x00\x58\x00\x0a\x00\x0b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x2e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x26\x00\x4b\x00\x4c\x00\x2f\x00\x07\x00\x07\x00\x09\x00\x09\x00\x2e\x00\x0c\x00\x0c\x00\x2f\x00\x0f\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x51\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x03\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x51\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x4d\x00\x31\x00\x4e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x51\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x4d\x00\x2f\x00\x01\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x4a\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x4d\x00\x2f\x00\x2f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x2e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x3d\x00\x4b\x00\x4c\x00\x4d\x00\x2e\x00\x2f\x00\x2f\x00\x2f\x00\x2e\x00\x02\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x4f\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4d\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x3d\x00\x30\x00\x2f\x00\x01\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x2e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\x01\x00\x2e\x00\x2e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x03\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x01\x00\x4a\x00\x2e\x00\x2e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x02\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x02\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x33\x00\x4a\x00\x02\x00\x58\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x02\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x2e\x00\x2e\x00\x2e\x00\x2e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x03\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x58\x00\x4b\x00\x4c\x00\x2e\x00\x2f\x00\x02\x00\x02\x00\x01\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x02\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x2e\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\x58\x00\x44\x00\x45\x00\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4b\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x07\x00\x2e\x00\x09\x00\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x36\x00\x37\x00\x38\x00\xff\xff\x4b\x00\x3b\x00\x3c\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\x4b\x00\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x07\x00\x07\x00\x09\x00\x09\x00\xff\xff\x0c\x00\x0c\x00\xff\xff\x0f\x00\x0f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\x52\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4f\x00\x70\x00\xa2\x00\xc8\x00\xc0\x00\x0c\x00\xed\x00\xa1\x00\x0d\x00\x2b\x00\xf3\x00\x0e\x00\x05\x00\xf5\x00\x04\x00\x18\x00\x19\x00\x05\x00\x1a\x00\x1b\x00\x68\x00\x1c\x00\x71\x00\x6e\x00\x1d\x00\x1e\x00\xc1\x00\xc2\x00\x1f\x00\x0a\x00\x20\x00\x21\x00\x05\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xc8\x00\xef\x00\x0c\x00\x27\x00\xf0\x00\x0d\x00\x28\x00\xce\x00\x0e\x00\x71\x00\x49\x00\x29\x00\xdf\x00\x4a\x00\x90\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x2e\x00\x52\x00\x2b\x00\x2a\x00\xe9\x00\x05\x00\x50\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xdb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x91\x00\x68\x00\x69\x00\xc8\x00\x2a\x00\x0c\x00\x2b\x00\xb7\x00\x0d\x00\x05\x00\xc9\x00\x0e\x00\x32\x00\xa3\x00\x0c\x00\x52\x00\xb4\x00\x0d\x00\xa4\x00\xa6\x00\x0e\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xa7\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xc3\x00\x68\x00\x69\x00\xb0\x00\x32\x00\xf2\x00\x0c\x00\x94\x00\x95\x00\x0d\x00\xb2\x00\x32\x00\x0e\x00\x0c\x00\x52\x00\x92\x00\x0d\x00\x8b\x00\x96\x00\x0e\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x36\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xf3\x00\xe2\x00\xbe\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xeb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xb6\x00\x68\x00\x69\x00\xe2\x00\x32\x00\xde\x00\x0c\x00\x6d\x00\x6e\x00\x0d\x00\x33\x00\x52\x00\x0e\x00\xdf\x00\xff\xff\xbd\x00\xbe\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xe5\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xda\x00\x68\x00\x69\x00\xe9\x00\xf6\x00\xf5\x00\x0c\x00\x0c\x00\x52\x00\x0d\x00\x0d\x00\xcd\x00\x0e\x00\x0e\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xd4\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xd5\x00\x68\x00\x69\x00\x52\x00\xd1\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xd6\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xd2\x00\xd8\x00\xd7\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xdb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xd0\x00\xdd\x00\xb6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xb9\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\xae\x00\xba\x00\xbb\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xc6\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xbd\x00\x68\x00\x69\x00\xa0\x00\x52\x00\xec\x00\xc7\x00\xc8\x00\xa6\x00\xab\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xcb\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xad\x00\x68\x00\x69\x00\x52\x00\xed\x00\xb2\x00\xb0\x00\xb4\x00\xb6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xb7\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x73\x00\x74\x00\x8d\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x76\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xce\x00\x68\x00\x69\x00\x52\x00\xa9\x00\x8e\x00\x8f\x00\x9a\x00\x9b\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x9c\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9d\x00\x68\x00\x69\x00\x52\x00\xaa\x00\x9f\x00\xa1\x00\x2e\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x30\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x36\x00\x68\x00\x69\x00\x52\x00\xac\x00\x47\x00\x48\x00\x4b\x00\x4c\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x51\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\x68\x00\x69\x00\x52\x00\x9e\x00\x6a\x00\x6b\x00\x6c\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x6d\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x69\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x52\x00\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x2d\x00\x00\x00\xfc\xff\x62\x00\x63\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\xee\x00\x52\x00\x0c\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x0e\x00\x55\x00\x56\x00\x57\x00\x00\x00\x68\x00\x5a\x00\x5b\x00\xe0\x00\xe3\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xe5\x00\xe6\x00\x0c\x00\x0c\x00\x68\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xe7\x00\xcb\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xd2\x00\xd8\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xbb\x00\xc3\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\xc4\x00\xae\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x74\x00\x76\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x77\x00\x78\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x79\x00\x7a\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x7b\x00\x7c\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x7d\x00\x7e\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x7f\x00\x80\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x81\x00\x82\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x83\x00\x84\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x85\x00\x86\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x87\x00\x88\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x89\x00\x8a\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x91\x00\x95\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x97\x00\x98\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x30\x00\x31\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x34\x00\x4c\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x4d\x00\x0b\x00\x0c\x00\x0c\x00\x00\x00\x0d\x00\x0d\x00\x00\x00\x0e\x00\x0e\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyReduceArr = Happy_Data_Array.array (3, 106) [+	(3 , happyReduce_3),+	(4 , happyReduce_4),+	(5 , happyReduce_5),+	(6 , happyReduce_6),+	(7 , happyReduce_7),+	(8 , happyReduce_8),+	(9 , happyReduce_9),+	(10 , happyReduce_10),+	(11 , happyReduce_11),+	(12 , happyReduce_12),+	(13 , happyReduce_13),+	(14 , happyReduce_14),+	(15 , happyReduce_15),+	(16 , happyReduce_16),+	(17 , happyReduce_17),+	(18 , happyReduce_18),+	(19 , happyReduce_19),+	(20 , happyReduce_20),+	(21 , happyReduce_21),+	(22 , happyReduce_22),+	(23 , happyReduce_23),+	(24 , happyReduce_24),+	(25 , happyReduce_25),+	(26 , happyReduce_26),+	(27 , happyReduce_27),+	(28 , happyReduce_28),+	(29 , happyReduce_29),+	(30 , happyReduce_30),+	(31 , happyReduce_31),+	(32 , happyReduce_32),+	(33 , happyReduce_33),+	(34 , happyReduce_34),+	(35 , happyReduce_35),+	(36 , happyReduce_36),+	(37 , happyReduce_37),+	(38 , happyReduce_38),+	(39 , happyReduce_39),+	(40 , happyReduce_40),+	(41 , happyReduce_41),+	(42 , happyReduce_42),+	(43 , happyReduce_43),+	(44 , happyReduce_44),+	(45 , happyReduce_45),+	(46 , happyReduce_46),+	(47 , happyReduce_47),+	(48 , happyReduce_48),+	(49 , happyReduce_49),+	(50 , happyReduce_50),+	(51 , happyReduce_51),+	(52 , happyReduce_52),+	(53 , happyReduce_53),+	(54 , happyReduce_54),+	(55 , happyReduce_55),+	(56 , happyReduce_56),+	(57 , happyReduce_57),+	(58 , happyReduce_58),+	(59 , happyReduce_59),+	(60 , happyReduce_60),+	(61 , happyReduce_61),+	(62 , happyReduce_62),+	(63 , happyReduce_63),+	(64 , happyReduce_64),+	(65 , happyReduce_65),+	(66 , happyReduce_66),+	(67 , happyReduce_67),+	(68 , happyReduce_68),+	(69 , happyReduce_69),+	(70 , happyReduce_70),+	(71 , happyReduce_71),+	(72 , happyReduce_72),+	(73 , happyReduce_73),+	(74 , happyReduce_74),+	(75 , happyReduce_75),+	(76 , happyReduce_76),+	(77 , happyReduce_77),+	(78 , happyReduce_78),+	(79 , happyReduce_79),+	(80 , happyReduce_80),+	(81 , happyReduce_81),+	(82 , happyReduce_82),+	(83 , happyReduce_83),+	(84 , happyReduce_84),+	(85 , happyReduce_85),+	(86 , happyReduce_86),+	(87 , happyReduce_87),+	(88 , happyReduce_88),+	(89 , happyReduce_89),+	(90 , happyReduce_90),+	(91 , happyReduce_91),+	(92 , happyReduce_92),+	(93 , happyReduce_93),+	(94 , happyReduce_94),+	(95 , happyReduce_95),+	(96 , happyReduce_96),+	(97 , happyReduce_97),+	(98 , happyReduce_98),+	(99 , happyReduce_99),+	(100 , happyReduce_100),+	(101 , happyReduce_101),+	(102 , happyReduce_102),+	(103 , happyReduce_103),+	(104 , happyReduce_104),+	(105 , happyReduce_105),+	(106 , happyReduce_106)+	]++happy_n_terms = 89 :: Int+happy_n_nonterms = 18 :: Int++happyReduce_3 = happySpecReduce_1  0# happyReduction_3+happyReduction_3 happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	happyIn6+		 ([happy_var_1]+	)}++happyReduce_4 = happySpecReduce_2  0# happyReduction_4+happyReduction_4 happy_x_2+	happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	case happyOut6 happy_x_2 of { happy_var_2 -> +	happyIn6+		 (happy_var_1:happy_var_2+	)}}++happyReduce_5 = happyMonadReduce 4# 0# happyReduction_5+happyReduction_5 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> +	case happyOut6 happy_x_3 of { happy_var_3 -> +	case happyOut23 happy_x_4 of { happy_var_4 -> +	(+ 	   let rest = happy_var_3 in+	   let pt = unsafePerformIO (readFile happy_var_2) in+		case (parse pt happy_var_4) of+		   Success x -> returnP (x ++ rest)+		   Failure err file ln -> failP err)}}}+	) (\r -> happyReturn (happyIn6 r))++happyReduce_6 = happySpecReduce_1  1# happyReduction_6+happyReduction_6 happy_x_1+	 =  happyIn7+		 (TyInt+	)++happyReduce_7 = happySpecReduce_1  1# happyReduction_7+happyReduction_7 happy_x_1+	 =  happyIn7+		 (TyBigInt+	)++happyReduce_8 = happySpecReduce_1  1# happyReduction_8+happyReduction_8 happy_x_1+	 =  happyIn7+		 (TyChar+	)++happyReduce_9 = happySpecReduce_1  1# happyReduction_9+happyReduction_9 happy_x_1+	 =  happyIn7+		 (TyBool+	)++happyReduce_10 = happySpecReduce_1  1# happyReduction_10+happyReduction_10 happy_x_1+	 =  happyIn7+		 (TyFloat+	)++happyReduce_11 = happySpecReduce_1  1# happyReduction_11+happyReduction_11 happy_x_1+	 =  happyIn7+		 (TyBigFloat+	)++happyReduce_12 = happySpecReduce_1  1# happyReduction_12+happyReduction_12 happy_x_1+	 =  happyIn7+		 (TyString+	)++happyReduce_13 = happySpecReduce_1  1# happyReduction_13+happyReduction_13 happy_x_1+	 =  happyIn7+		 (TyPtr+	)++happyReduce_14 = happySpecReduce_1  1# happyReduction_14+happyReduction_14 happy_x_1+	 =  happyIn7+		 (TyUnit+	)++happyReduce_15 = happySpecReduce_1  1# happyReduction_15+happyReduction_15 happy_x_1+	 =  happyIn7+		 (TyAny+	)++happyReduce_16 = happySpecReduce_1  1# happyReduction_16+happyReduction_16 happy_x_1+	 =  happyIn7+		 (TyData+	)++happyReduce_17 = happySpecReduce_2  1# happyReduction_17+happyReduction_17 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> +	happyIn7+		 (TyCType happy_var_2+	)}++happyReduce_18 = happyReduce 4# 1# happyReduction_18+happyReduction_18 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn7+		 (TyLin happy_var_3+	) `HappyStk` happyRest}++happyReduce_19 = happyReduce 4# 1# happyReduction_19+happyReduction_19 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn7+		 (TyEval happy_var_3+	) `HappyStk` happyRest}++happyReduce_20 = happySpecReduce_1  1# happyReduction_20+happyReduction_20 happy_x_1+	 =  happyIn7+		 (TyFun+	)++happyReduce_21 = happyReduce 10# 2# happyReduction_21+happyReduction_21 (happy_x_10 `HappyStk`+	happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut11 happy_x_1 of { happy_var_1 -> +	case happyOut9 happy_x_2 of { happy_var_2 -> +	case happyOutTok happy_x_3 of { (TokenName happy_var_3) -> +	case happyOut12 happy_x_5 of { happy_var_5 -> +	case happyOut7 happy_x_8 of { happy_var_8 -> +	case happyOut13 happy_x_10 of { happy_var_10 -> +	happyIn8+		 (mkBind happy_var_3 (map snd happy_var_5) happy_var_8 (map fst happy_var_5) happy_var_10 happy_var_1 happy_var_2+	) `HappyStk` happyRest}}}}}}++happyReduce_22 = happyReduce 7# 2# happyReduction_22+happyReduction_22 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> +	case happyOut12 happy_x_4 of { happy_var_4 -> +	case happyOut7 happy_x_7 of { happy_var_7 -> +	happyIn8+		 (mkExtern happy_var_2 (map snd happy_var_4) happy_var_7 (map fst happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_23 = happySpecReduce_2  2# happyReduction_23+happyReduction_23 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> +	happyIn8+		 (Include happy_var_2+	)}++happyReduce_24 = happySpecReduce_2  2# happyReduction_24+happyReduction_24 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> +	happyIn8+		 (CType happy_var_2+	)}++happyReduce_25 = happySpecReduce_0  3# happyReduction_25+happyReduction_25  =  happyIn9+		 ([]+	)++happyReduce_26 = happySpecReduce_2  3# happyReduction_26+happyReduction_26 happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut9 happy_x_2 of { happy_var_2 -> +	happyIn9+		 (happy_var_1:happy_var_2+	)}}++happyReduce_27 = happySpecReduce_1  4# happyReduction_27+happyReduction_27 happy_x_1+	 =  happyIn10+		 (Inline+	)++happyReduce_28 = happySpecReduce_1  4# happyReduction_28+happyReduction_28 happy_x_1+	 =  happyIn10+		 (Strict+	)++happyReduce_29 = happySpecReduce_0  5# happyReduction_29+happyReduction_29  =  happyIn11+		 (Nothing+	)++happyReduce_30 = happySpecReduce_2  5# happyReduction_30+happyReduction_30 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> +	happyIn11+		 (Just happy_var_2+	)}++happyReduce_31 = happySpecReduce_0  6# happyReduction_31+happyReduction_31  =  happyIn12+		 ([]+	)++happyReduce_32 = happySpecReduce_3  6# happyReduction_32+happyReduction_32 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn12+		 ([(happy_var_1,happy_var_3)]+	)}}++happyReduce_33 = happyReduce 5# 6# happyReduction_33+happyReduction_33 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	case happyOut12 happy_x_5 of { happy_var_5 -> +	happyIn12+		 ((happy_var_1,happy_var_3):happy_var_5+	) `HappyStk` happyRest}}}++happyReduce_34 = happySpecReduce_1  7# happyReduction_34+happyReduction_34 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> +	happyIn13+		 (R happy_var_1+	)}++happyReduce_35 = happySpecReduce_3  7# happyReduction_35+happyReduction_35 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> +	happyIn13+		 (happy_var_2+	)}++happyReduce_36 = happyReduce 4# 7# happyReduction_36+happyReduction_36 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_3 of { happy_var_3 -> +	happyIn13+		 (App happy_var_1 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_37 = happySpecReduce_3  7# happyReduction_37+happyReduction_37 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_2 of { happy_var_2 -> +	happyIn13+		 (Con 0 happy_var_2+	)}++happyReduce_38 = happyReduce 4# 7# happyReduction_38+happyReduction_38 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn13+		 (Lazy happy_var_3+	) `HappyStk` happyRest}++happyReduce_39 = happyReduce 4# 7# happyReduction_39+happyReduction_39 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn13+		 (Par happy_var_3+	) `HappyStk` happyRest}++happyReduce_40 = happyReduce 4# 7# happyReduction_40+happyReduction_40 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn13+		 (Effect happy_var_3+	) `HappyStk` happyRest}++happyReduce_41 = happyReduce 5# 7# happyReduction_41+happyReduction_41 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> +	case happyOut19 happy_x_4 of { happy_var_4 -> +	happyIn13+		 (Con happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_42 = happySpecReduce_1  7# happyReduction_42+happyReduction_42 happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	happyIn13+		 (Const happy_var_1+	)}++happyReduce_43 = happySpecReduce_3  7# happyReduction_43+happyReduction_43 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_3 of { (TokenInt happy_var_3) -> +	happyIn13+		 (Proj happy_var_1 happy_var_3+	)}}++happyReduce_44 = happyReduce 8# 7# happyReduction_44+happyReduction_44 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> +	case happyOut7 happy_x_4 of { happy_var_4 -> +	case happyOut13 happy_x_6 of { happy_var_6 -> +	case happyOut13 happy_x_8 of { happy_var_8 -> +	happyIn13+		 (Let happy_var_2 happy_var_4 happy_var_6 happy_var_8+	) `HappyStk` happyRest}}}}++happyReduce_45 = happyReduce 7# 7# happyReduction_45+happyReduction_45 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TokenName happy_var_3) -> +	case happyOut13 happy_x_5 of { happy_var_5 -> +	case happyOut13 happy_x_7 of { happy_var_7 -> +	happyIn13+		 (LetM happy_var_3 happy_var_5 happy_var_7+	) `HappyStk` happyRest}}}++happyReduce_46 = happyReduce 6# 7# happyReduction_46+happyReduction_46 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> +	case happyOut7 happy_x_4 of { happy_var_4 -> +	case happyOut13 happy_x_6 of { happy_var_6 -> +	happyIn13+		 (Lam happy_var_2 happy_var_4 happy_var_6+	) `HappyStk` happyRest}}}++happyReduce_47 = happySpecReduce_3  7# happyReduction_47+happyReduction_47 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn13+		 (Let (MN "unused" 0) TyUnit happy_var_1 happy_var_3+	)}}++happyReduce_48 = happyReduce 6# 7# happyReduction_48+happyReduction_48 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_2 of { happy_var_2 -> +	case happyOut13 happy_x_4 of { happy_var_4 -> +	case happyOut13 happy_x_6 of { happy_var_6 -> +	happyIn13+		 (If happy_var_2 happy_var_4 happy_var_6+	) `HappyStk` happyRest}}}++happyReduce_49 = happyReduce 6# 7# happyReduction_49+happyReduction_49 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_5 of { happy_var_5 -> +	happyIn13+		 (While happy_var_3 happy_var_5+	) `HappyStk` happyRest}}++happyReduce_50 = happyReduce 8# 7# happyReduction_50+happyReduction_50 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_5 of { happy_var_5 -> +	case happyOut13 happy_x_7 of { happy_var_7 -> +	happyIn13+		 (WhileAcc happy_var_3 happy_var_5 happy_var_7+	) `HappyStk` happyRest}}}++happyReduce_51 = happyReduce 8# 7# happyReduction_51+happyReduction_51 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut14 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_5 of { happy_var_5 -> +	case happyOut13 happy_x_7 of { happy_var_7 -> +	happyIn13+		 (WithMem happy_var_3 happy_var_5 happy_var_7+	) `HappyStk` happyRest}}}++happyReduce_52 = happySpecReduce_1  7# happyReduction_52+happyReduction_52 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn13+		 (happy_var_1+	)}++happyReduce_53 = happySpecReduce_1  7# happyReduction_53+happyReduction_53 happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	happyIn13+		 (happy_var_1+	)}++happyReduce_54 = happySpecReduce_2  7# happyReduction_54+happyReduction_54 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> +	happyIn13+		 (Error happy_var_2+	)}++happyReduce_55 = happySpecReduce_1  7# happyReduction_55+happyReduction_55 happy_x_1+	 =  happyIn13+		 (Impossible+	)++happyReduce_56 = happyReduce 6# 7# happyReduction_56+happyReduction_56 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut7 happy_x_2 of { happy_var_2 -> +	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> +	case happyOut20 happy_x_5 of { happy_var_5 -> +	happyIn13+		 (ForeignCall happy_var_2 happy_var_3 happy_var_5+	) `HappyStk` happyRest}}}++happyReduce_57 = happyReduce 7# 7# happyReduction_57+happyReduction_57 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut7 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokenString happy_var_4) -> +	case happyOut20 happy_x_6 of { happy_var_6 -> +	happyIn13+		 (LazyForeignCall happy_var_3 happy_var_4 happy_var_6+	) `HappyStk` happyRest}}}++happyReduce_58 = happySpecReduce_1  8# happyReduction_58+happyReduction_58 happy_x_1+	 =  happyIn14+		 (FixedPool+	)++happyReduce_59 = happySpecReduce_1  8# happyReduction_59+happyReduction_59 happy_x_1+	 =  happyIn14+		 (GrowablePool+	)++happyReduce_60 = happyReduce 6# 9# happyReduction_60+happyReduction_60 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_2 of { happy_var_2 -> +	case happyOut16 happy_x_5 of { happy_var_5 -> +	happyIn15+		 (Case happy_var_2 happy_var_5+	) `HappyStk` happyRest}}++happyReduce_61 = happySpecReduce_0  10# happyReduction_61+happyReduction_61  =  happyIn16+		 ([]+	)++happyReduce_62 = happySpecReduce_1  10# happyReduction_62+happyReduction_62 happy_x_1+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> +	happyIn16+		 ([happy_var_1]+	)}++happyReduce_63 = happySpecReduce_3  10# happyReduction_63+happyReduction_63 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> +	case happyOut16 happy_x_3 of { happy_var_3 -> +	happyIn16+		 (happy_var_1:happy_var_3+	)}}++happyReduce_64 = happyReduce 7# 11# happyReduction_64+happyReduction_64 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> +	case happyOut12 happy_x_4 of { happy_var_4 -> +	case happyOut13 happy_x_7 of { happy_var_7 -> +	happyIn17+		 (Alt happy_var_2 happy_var_4 happy_var_7+	) `HappyStk` happyRest}}}++happyReduce_65 = happySpecReduce_3  11# happyReduction_65+happyReduction_65 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn17+		 (ConstAlt happy_var_1 happy_var_3+	)}}++happyReduce_66 = happySpecReduce_3  11# happyReduction_66+happyReduction_66 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn17+		 (DefaultCase happy_var_3+	)}++happyReduce_67 = happySpecReduce_3  12# happyReduction_67+happyReduction_67 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op Plus happy_var_1 happy_var_3+	)}}++happyReduce_68 = happySpecReduce_3  12# happyReduction_68+happyReduction_68 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op Minus happy_var_1 happy_var_3+	)}}++happyReduce_69 = happySpecReduce_2  12# happyReduction_69+happyReduction_69 happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> +	happyIn18+		 (Op Minus (Const (MkInt 0)) happy_var_2+	)}++happyReduce_70 = happySpecReduce_3  12# happyReduction_70+happyReduction_70 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op Times happy_var_1 happy_var_3+	)}}++happyReduce_71 = happySpecReduce_3  12# happyReduction_71+happyReduction_71 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op Divide happy_var_1 happy_var_3+	)}}++happyReduce_72 = happySpecReduce_3  12# happyReduction_72+happyReduction_72 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op Modulo happy_var_1 happy_var_3+	)}}++happyReduce_73 = happySpecReduce_3  12# happyReduction_73+happyReduction_73 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op FPlus happy_var_1 happy_var_3+	)}}++happyReduce_74 = happySpecReduce_3  12# happyReduction_74+happyReduction_74 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op FMinus happy_var_1 happy_var_3+	)}}++happyReduce_75 = happySpecReduce_2  12# happyReduction_75+happyReduction_75 happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> +	happyIn18+		 (Op FMinus (Const (MkInt 0)) happy_var_2+	)}++happyReduce_76 = happySpecReduce_3  12# happyReduction_76+happyReduction_76 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op FTimes happy_var_1 happy_var_3+	)}}++happyReduce_77 = happySpecReduce_3  12# happyReduction_77+happyReduction_77 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op FDivide happy_var_1 happy_var_3+	)}}++happyReduce_78 = happySpecReduce_3  12# happyReduction_78+happyReduction_78 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op ShL happy_var_1 happy_var_3+	)}}++happyReduce_79 = happySpecReduce_3  12# happyReduction_79+happyReduction_79 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op ShR happy_var_1 happy_var_3+	)}}++happyReduce_80 = happySpecReduce_3  12# happyReduction_80+happyReduction_80 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpLT happy_var_1 happy_var_3+	)}}++happyReduce_81 = happySpecReduce_3  12# happyReduction_81+happyReduction_81 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpGT happy_var_1 happy_var_3+	)}}++happyReduce_82 = happySpecReduce_3  12# happyReduction_82+happyReduction_82 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpLE happy_var_1 happy_var_3+	)}}++happyReduce_83 = happySpecReduce_3  12# happyReduction_83+happyReduction_83 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpGE happy_var_1 happy_var_3+	)}}++happyReduce_84 = happySpecReduce_3  12# happyReduction_84+happyReduction_84 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpEQ happy_var_1 happy_var_3+	)}}++happyReduce_85 = happySpecReduce_3  12# happyReduction_85+happyReduction_85 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpFLT happy_var_1 happy_var_3+	)}}++happyReduce_86 = happySpecReduce_3  12# happyReduction_86+happyReduction_86 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpFGT happy_var_1 happy_var_3+	)}}++happyReduce_87 = happySpecReduce_3  12# happyReduction_87+happyReduction_87 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpFLE happy_var_1 happy_var_3+	)}}++happyReduce_88 = happySpecReduce_3  12# happyReduction_88+happyReduction_88 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpFGE happy_var_1 happy_var_3+	)}}++happyReduce_89 = happySpecReduce_3  12# happyReduction_89+happyReduction_89 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn18+		 (Op OpFEQ happy_var_1 happy_var_3+	)}}++happyReduce_90 = happySpecReduce_0  13# happyReduction_90+happyReduction_90  =  happyIn19+		 ([]+	)++happyReduce_91 = happySpecReduce_1  13# happyReduction_91+happyReduction_91 happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	happyIn19+		 ([happy_var_1]+	)}++happyReduce_92 = happySpecReduce_3  13# happyReduction_92+happyReduction_92 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_3 of { happy_var_3 -> +	happyIn19+		 (happy_var_1:happy_var_3+	)}}++happyReduce_93 = happySpecReduce_0  14# happyReduction_93+happyReduction_93  =  happyIn20+		 ([]+	)++happyReduce_94 = happySpecReduce_3  14# happyReduction_94+happyReduction_94 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn20+		 ([(happy_var_1,happy_var_3)]+	)}}++happyReduce_95 = happyReduce 5# 14# happyReduction_95+happyReduction_95 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	case happyOut20 happy_x_5 of { happy_var_5 -> +	happyIn20+		 ((happy_var_1,happy_var_3):happy_var_5+	) `HappyStk` happyRest}}}++happyReduce_96 = happySpecReduce_1  15# happyReduction_96+happyReduction_96 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> +	happyIn21+		 (MkInt happy_var_1+	)}++happyReduce_97 = happySpecReduce_1  15# happyReduction_97+happyReduction_97 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenBigInt happy_var_1) -> +	happyIn21+		 (MkBigInt happy_var_1+	)}++happyReduce_98 = happySpecReduce_1  15# happyReduction_98+happyReduction_98 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> +	happyIn21+		 (MkChar happy_var_1+	)}++happyReduce_99 = happySpecReduce_1  15# happyReduction_99+happyReduction_99 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> +	happyIn21+		 (MkBool happy_var_1+	)}++happyReduce_100 = happySpecReduce_1  15# happyReduction_100+happyReduction_100 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> +	happyIn21+		 (MkFloat happy_var_1+	)}++happyReduce_101 = happySpecReduce_1  15# happyReduction_101+happyReduction_101 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenBigFloat happy_var_1) -> +	happyIn21+		 (MkBigFloat happy_var_1+	)}++happyReduce_102 = happySpecReduce_1  15# happyReduction_102+happyReduction_102 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> +	happyIn21+		 (MkString happy_var_1+	)}++happyReduce_103 = happySpecReduce_1  15# happyReduction_103+happyReduction_103 happy_x_1+	 =  happyIn21+		 (MkUnit+	)++happyReduce_104 = happySpecReduce_1  15# happyReduction_104+happyReduction_104 happy_x_1+	 =  happyIn21+		 (MkUnused+	)++happyReduce_105 = happyMonadReduce 0# 16# happyReduction_105+happyReduction_105 (happyRest) tk+	 = happyThen (( getLineNo)+	) (\r -> happyReturn (happyIn22 r))++happyReduce_106 = happyMonadReduce 0# 17# happyReduction_106+happyReduction_106 (happyRest) tk+	 = happyThen (( getFileName)+	) (\r -> happyReturn (happyIn23 r))++happyNewToken action sts stk+	= lexer(\tk -> +	let cont i = happyDoAction i tk action sts stk in+	case tk of {+	TokenEOF -> happyDoAction 88# tk action sts stk;+	TokenName happy_dollar_dollar -> cont 1#;+	TokenString happy_dollar_dollar -> cont 2#;+	TokenInt happy_dollar_dollar -> cont 3#;+	TokenBigInt happy_dollar_dollar -> cont 4#;+	TokenBool happy_dollar_dollar -> cont 5#;+	TokenFloat happy_dollar_dollar -> cont 6#;+	TokenBigFloat happy_dollar_dollar -> cont 7#;+	TokenChar happy_dollar_dollar -> cont 8#;+	TokenIntType -> cont 9#;+	TokenBigIntType -> cont 10#;+	TokenCharType -> cont 11#;+	TokenBoolType -> cont 12#;+	TokenFloatType -> cont 13#;+	TokenBigFloatType -> cont 14#;+	TokenStringType -> cont 15#;+	TokenPtrType -> cont 16#;+	TokenUnitType -> cont 17#;+	TokenFunType -> cont 18#;+	TokenDataType -> cont 19#;+	TokenTyCType -> cont 20#;+	TokenTyLinear -> cont 21#;+	TokenTyEval -> cont 22#;+	TokenAnyType -> cont 23#;+	TokenUnit -> cont 24#;+	TokenCon -> cont 25#;+	TokenDefault -> cont 26#;+	TokenLet -> cont 27#;+	TokenCase -> cont 28#;+	TokenOf -> cont 29#;+	TokenIf -> cont 30#;+	TokenThen -> cont 31#;+	TokenElse -> cont 32#;+	TokenWhile -> cont 33#;+	TokenMemory -> cont 34#;+	TokenFixed -> cont 35#;+	TokenGrowable -> cont 36#;+	TokenUnused -> cont 37#;+	TokenIn -> cont 38#;+	TokenLazy -> cont 39#;+	TokenPar -> cont 40#;+	TokenStrict -> cont 41#;+	TokenEffect -> cont 42#;+	TokenForeign -> cont 43#;+	TokenError -> cont 44#;+	TokenImpossible -> cont 45#;+	TokenOB -> cont 46#;+	TokenCB -> cont 47#;+	TokenOCB -> cont 48#;+	TokenCCB -> cont 49#;+	TokenOSB -> cont 50#;+	TokenCSB -> cont 51#;+	TokenPlus -> cont 52#;+	TokenMinus -> cont 53#;+	TokenTimes -> cont 54#;+	TokenDivide -> cont 55#;+	TokenMod -> cont 56#;+	TokenFPlus -> cont 57#;+	TokenFMinus -> cont 58#;+	TokenFTimes -> cont 59#;+	TokenFDivide -> cont 60#;+	TokenEquals -> cont 61#;+	TokenEQ -> cont 62#;+	TokenLE -> cont 63#;+	TokenGE -> cont 64#;+	TokenFEQ -> cont 65#;+	TokenFLE -> cont 66#;+	TokenFGE -> cont 67#;+	TokenShL -> cont 68#;+	TokenShR -> cont 69#;+	TokenLT -> cont 70#;+	TokenGT -> cont 71#;+	TokenFLT -> cont 72#;+	TokenFGT -> cont 73#;+	TokenColon -> cont 74#;+	TokenProj -> cont 75#;+	TokenSemi -> cont 76#;+	TokenComma -> cont 77#;+	TokenBar -> cont 78#;+	TokenDot -> cont 79#;+	TokenLam -> cont 80#;+	TokenArrow -> cont 81#;+	TokenCInclude -> cont 82#;+	TokenExtern -> cont 83#;+	TokenExport -> cont 84#;+	TokenCType -> cont 85#;+	TokenInclude -> cont 86#;+	TokenInline -> cont 87#;+	_ -> happyError' tk+	})++happyError_ 88# tk = happyError' tk+happyError_ _ tk = happyError' tk++happyThen :: () => P a -> (a -> P b) -> P b+happyThen = (thenP)+happyReturn :: () => a -> P a+happyReturn = (returnP)+happyThen1 = happyThen+happyReturn1 :: () => a -> P a+happyReturn1 = happyReturn+happyError' :: () => (Token) -> P a+happyError' tk = (\token -> happyError) tk++mkparse = happySomeParser where+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))++mkexpr = happySomeParser where+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut13 x))++mkdecl = happySomeParser where+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut8 x))++happySeq = happyDontSeq+++mkBind :: Name -> [Type] -> Type -> [Name] -> Expr -> Maybe String -> [CGFlag] -> Decl+mkBind n tys ret ns expr export fl = Decl n ret (Bind (zip ns tys) 0 expr fl) export fl++mkExtern :: Name -> [Type] -> Type -> [Name] -> Decl+mkExtern n tys ret ns = Extern n ret tys++parse :: String -> FilePath -> Result [Decl]+parse s fn = mkparse s fn 1++parseExpr :: String -> Result Expr+parseExpr s = mkexpr s "[expr]" 1++parseDecl :: String -> Result Decl+parseDecl s = mkdecl s "[decl]" 1++parseFile :: FilePath -> IO (Result [Decl])+parseFile fn = do s <- readFile fn+                  let x = parse s fn+                  return x+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command-line>" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp ++{-# LINE 13 "templates/GenericTemplate.hs" #-}++++++-- 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)) :: Bool)+#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool)+#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: 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+{-# LINE 46 "templates/GenericTemplate.hs" #-}+++data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList++++++{-# LINE 67 "templates/GenericTemplate.hs" #-}++{-# LINE 77 "templates/GenericTemplate.hs" #-}++{-# LINE 86 "templates/GenericTemplate.hs" #-}++infixr 9 `HappyStk`+data HappyStk a = HappyStk a (HappyStk a)++-----------------------------------------------------------------------------+-- starting the parse++happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll++-----------------------------------------------------------------------------+-- Accepting the parse++-- If the current token is 0#, 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 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    = 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 False+         action+          | check     = indexShortOffAddr happyTable off_i+          | 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#++++++data HappyAddr = HappyA# Happy_GHC_Exts.Addr#+++++-----------------------------------------------------------------------------+-- HappyState data type (not arrays)++{-# LINE 170 "templates/GenericTemplate.hs" #-}++-----------------------------------------------------------------------------+-- 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 = 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 = indexShortOffAddr happyGotoOffsets st+         off_i = (off Happy_GHC_Exts.+# nt)+         new_state = indexShortOffAddr happyTable off_i+++++-----------------------------------------------------------------------------+-- Error recovery (0# is the error token)++-- parse error if we are in recovery and we fail again+happyFail 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_ 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  0# tk old_st (HappyCons ((action)) (sts)) +                                                (saved_tok `HappyStk` _ `HappyStk` stk) =+--      trace ("discarding state, depth " ++ show (length stk))  $+        happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))+-}++-- Enter error recovery: generate an error token,+--                       save the old token and carry on.+happyFail  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 = 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 `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.
epic.cabal view
@@ -1,20 +1,22 @@-Name:		epic-Version:	0.9.3-Author:		Edwin Brady-License:	BSD3-License-file:	LICENSE-Maintainer:	eb@dcs.st-and.ac.uk-Homepage:	http://www.dcs.st-and.ac.uk/~eb/epic.php-Stability:	experimental+Name:           epic+Version:        0.9.3.2+Author:         Edwin Brady+License:        BSD3+License-file:   LICENSE+Maintainer:     eb@dcs.st-and.ac.uk+Homepage:       http://www.dcs.st-and.ac.uk/~eb/epic.php+bug-reports:    https://github.com/edwinb/EpiVM/issues+Stability:      experimental Category:       Compilers/Interpreters-Synopsis:	Compiler for a simple functional language+Synopsis:       Compiler for a simple functional language Description:    Epic is a simple functional language which compiles to-                reasonably efficient C code, using the Boehm-Demers-Weiser -	        garbage collector (<http://www.hpl.hp.com/personal/Hans_Boehm/gc/>). -                It is intended as a compiler back end, and is currently used -                as a back end for Epigram (<http://www.e-pig.org>) and Idris +                reasonably efficient C code, using the Boehm-Demers-Weiser+                garbage collector (<http://www.hpl.hp.com/personal/Hans_Boehm/gc/>).+                It is intended as a compiler back end, and is currently used+                as a back end for Epigram (<http://www.e-pig.org>) and Idris                 (<http://idris-lang.org/>).-	        It can be invoked either as a library or an application.+                It can be invoked either as a library or an application.+tested-with:    GHC == 7.8.3  Data-files:    evm/libevm.a evm/closure.h evm/stdfuns.h evm/stdfuns.c evm/mainprog.c evm/emalloc.h evm/gc_header.h Extra-source-files: evm/closure.c evm/closure.h evm/stdfuns.h evm/mainprog.c evm/stdfuns.c evm/Makefile evm/emalloc.c evm/emalloc.h evm/gc_header.h evm/sparks.c evm/sparks.h@@ -22,20 +24,24 @@ Cabal-Version:  >= 1.8.0.4 Build-type:     Custom +source-repository head+  type:     git+  location: https://github.com/edwinb/EpiVM.git+ Library         Exposed-modules: Epic.Compiler Epic.Epic         Other-modules: Epic.Bytecode Epic.Parser Epic.Scopecheck                        Epic.Language Epic.Lexer Epic.CodegenC Epic.CodegenStack-                       Epic.OTTLang Epic.Simplify Epic.Stackcode +                       Epic.OTTLang Epic.Simplify Epic.Stackcode                        Epic.Evaluator Paths_epic-        Build-depends:	base >=4 && <5 , mtl, Cabal, array, directory, process+        Build-depends: base >=4 && <5, mtl, Cabal, array, directory, process         Extensions:    BangPatterns  Executable     epic                Main-is: Main.lhs                Other-modules: Epic.Bytecode Epic.Parser Epic.Scopecheck                        Epic.Language Epic.Lexer Epic.CodegenC Epic.CodegenStack-                       Epic.OTTLang Epic.Simplify Epic.Stackcode +                       Epic.OTTLang Epic.Simplify Epic.Stackcode                        Epic.Evaluator Paths_epic                Build-depends: base >=4 && <5, mtl, array, Cabal, directory, process                Extensions: BangPatterns
evm/libevm.a view

binary file changed (59240 → 65826 bytes)

evm/stdfuns.c view
@@ -41,6 +41,18 @@     return atoi(readStr()); } +FILE* get_stdin() {+    return stdin; +}++FILE* get_stdout() {+    return stdout; +}++FILE* get_stderr() {+    return stderr; +}+ // FIXME: Do this properly! char* readStr() {     char *buf = NULL;@@ -102,7 +114,7 @@     if (str == NULL) return 0;     int v = strtol(str,&end,10); -    if (*end != '\0') return 0; else return v;+    if (*end != '\0' && *end != '\n' && *end != '\r') return 0; else return v; }  char* intToStr(int x)
evm/stdfuns.h view
@@ -25,6 +25,10 @@ // Force garbage collection void epicGC(); +FILE* get_stdin();+FILE* get_stdout();+FILE* get_stderr();+ int readInt(); char* readStr(); int streq(char* x, char* y);