diff --git a/Epic/Bytecode.lhs b/Epic/Bytecode.lhs
--- a/Epic/Bytecode.lhs
+++ b/Epic/Bytecode.lhs
@@ -88,7 +88,7 @@
 >        return $ (LOCALS (num_locals cs)):
 >                 (TRACE (show fname) [0..(length args)-1]):
 >                 (TMPS (max_tmp cs)):(CONSTS (string_pool cs)):code ++
->                   [EVAL 0 True, RETURN 0]
+>                   [RETURN 0]
 
 >   where
 
diff --git a/Epic/CodegenC.lhs b/Epic/CodegenC.lhs
--- a/Epic/CodegenC.lhs
+++ b/Epic/CodegenC.lhs
@@ -56,7 +56,7 @@
 >     "void* " ++ quickcall fname ++ "(" ++ showargs (zip (names 0) tys) 0 ++ ");\n" ++
 >     headers xs
 >   where names i = (MN "arg" i):(names (i+1))
-> headers ((Include h):xs) = "#include <"++h++">\n" ++ headers xs
+> headers ((Include h):xs) = "#include \""++h++"\"\n" ++ headers xs
 > headers (_:xs) = headers xs
 
 > wrappers [] = ""
@@ -255,7 +255,7 @@
 > foreignArgs (x:xs) = foreignArg x ++ ", " ++ foreignArgs xs
 
 > cToEpic var TyString = "MKSTR((char*)(" ++ var ++ "))"
-> cToEpic var TyInt = "MKINT((int)(" ++ var ++ "))"
+> cToEpic var TyInt = "MKINT(INTTOEINT(" ++ var ++ "))"
 > cToEpic var TyPtr = "MKPTR(" ++ var ++ ")"
 > cToEpic var TyBigInt = "MKBIGINT((mpz_t*)(" ++ var ++ "))"
 > cToEpic var TyUnit = "NULL"
@@ -272,7 +272,7 @@
  castFrom t TyBigInt rest = tmp t ++ " = MKBIGINT((mpz_t*)(" ++ rest ++ "))"
  castFrom t _ rest = tmp t ++ " = (void*)(" ++ rest ++ ")"
 
-> epicToC t TyInt = "GETINT("++ t ++")"
+> epicToC t TyInt = "EINTTOINT(GETINT("++ t ++"))"
 > epicToC t TyBigInt = "*(GETBIGINT("++ t ++"))"
 > epicToC t TyString = "GETSTR("++ t ++")"
 > epicToC t TyPtr = "GETPTR("++ t ++")"
@@ -290,6 +290,8 @@
 > doOp t Minus l r = tmp t ++ " = INTOP(-,"++tmp l ++ ", "++tmp r++");"
 > doOp t Times l r = tmp t ++ " = MULT("++tmp l ++ ", "++tmp r++");"
 > doOp t Divide l r = tmp t ++ " = INTOP(/,"++tmp l ++ ", "++tmp r++");"
+> doOp t ShL l r = tmp t ++ " = INTOP(<<,"++tmp l ++ ", "++tmp r++");"
+> doOp t ShR l r = tmp t ++ " = INTOP(>>,"++tmp l ++ ", "++tmp r++");"
 > doOp t OpEQ l r = tmp t ++ " = INTOP(==,"++tmp l ++ ", "++tmp r++");"
 > doOp t OpGT l r = tmp t ++ " = INTOP(>,"++tmp l ++ ", "++tmp r++");"
 > doOp t OpLT l r = tmp t ++ " = INTOP(<,"++tmp l ++ ", "++tmp r++");"
diff --git a/Epic/Compiler.lhs b/Epic/Compiler.lhs
--- a/Epic/Compiler.lhs
+++ b/Epic/Compiler.lhs
@@ -37,6 +37,7 @@
 >                     | ShowParseTree -- ^ Show parse tree
 >                     | MakeHeader FilePath -- ^ Output a .h file too
 >                     | GCCOpt String -- ^ Extra GCC option
+>                     | Debug -- ^ Generate debug info
 >   deriving Eq
 
 > addGCC :: [CompileOptions] -> String
@@ -84,7 +85,8 @@
 >                 checked <- compileDecls simplified tmph hdr
 >                 fp <- getDataFileName "evm/closure.h"
 >                 let libdir = trimLast fp
->                 let cmd = "gcc -c -O3 -foptimize-sibling-calls -x c " ++ tmpn ++ " -I" ++ libdir ++ " -o " ++ outf ++ " " ++ addGCC opts ++ doTrace opts
+>                 let dbg = if (elem Debug opts) then "-g" else "-O3"
+>                 let cmd = "gcc -c " ++ dbg ++ " -foptimize-sibling-calls -x c " ++ tmpn ++ " -I" ++ libdir ++ " -o " ++ outf ++ " " ++ addGCC opts ++ doTrace opts
 >                 -- putStrLn $ cmd
 >                 -- putStrLn $ fp
 >                 exit <- system cmd
@@ -121,12 +123,14 @@
 >         -> [FilePath] -- ^ Extra include files for main program
 >         -> FilePath -- ^ Executable filename
 >         -> Bool -- ^ Generate a 'main' (False if externally defined)
+>         -> [CompileOptions] -- Keep the C file
 >         -> IO ()
-> link infs extraIncs outf genmain = do
+> link infs extraIncs outf genmain opts = do
 >     mainprog <- if genmain then mkMain extraIncs else return ""
 >     fp <- getDataFileName "evm/closure.h"
 >     let libdir = trimLast fp
->     let cmd = "gcc -x c -O3 -foptimize-sibling-calls " ++ mainprog ++ " -x none -L" ++
+>     let dbg = if (elem Debug opts) then "-g" else "-O3"
+>     let cmd = "gcc -x c " ++ dbg ++ " -foptimize-sibling-calls " ++ mainprog ++ " -x none -L" ++
 >               libdir++" -I"++libdir ++ " " ++
 >               (concat (map (++" ") infs)) ++ 
 >               " -levm -lgc -lpthread -lgmp -o "++outf
diff --git a/Epic/Language.lhs b/Epic/Language.lhs
--- a/Epic/Language.lhs
+++ b/Epic/Language.lhs
@@ -111,6 +111,7 @@
 >    compare _ _ = EQ
 
 > data Op = Plus | Minus | Times | Divide | OpEQ | OpLT | OpLE | OpGT | OpGE
+>         | ShL  | ShR
 >   deriving (Show, Eq)
 
 > instance Show CaseAlt where
diff --git a/Epic/Lexer.lhs b/Epic/Lexer.lhs
--- a/Epic/Lexer.lhs
+++ b/Epic/Lexer.lhs
@@ -84,6 +84,8 @@
 >       | TokenLE
 >       | TokenGT
 >       | TokenLT
+>       | TokenShL
+>       | TokenShR
 >       | TokenArrow
 >       | TokenColon
 >       | TokenUnit
@@ -141,6 +143,8 @@
 > lexer cont ('=':'=':cs) = cont TokenEQ cs
 > lexer cont ('>':'=':cs) = cont TokenGE cs
 > lexer cont ('<':'=':cs) = cont TokenLE cs
+> lexer cont ('<':'<':cs) = cont TokenShL cs
+> lexer cont ('>':'>':cs) = cont TokenShR cs
 > lexer cont ('>':cs) = cont TokenGT cs
 > lexer cont ('<':cs) = cont TokenLT cs
 > lexer cont ('=':cs) = cont TokenEquals cs
diff --git a/Epic/Parser.y b/Epic/Parser.y
--- a/Epic/Parser.y
+++ b/Epic/Parser.y
@@ -71,6 +71,8 @@
       eq              { TokenEQ }
       le              { TokenLE }
       ge              { TokenGE }
+      shl             { TokenShL }
+      shr             { TokenShR }
       '<'             { TokenLT }
       '>'             { TokenGT }
       ':'             { TokenColon }
@@ -93,6 +95,7 @@
 %left eq
 %left ';'
 %left '<' '>' le ge
+%left shl shr
 %left '+' '-'
 %left '*' '/'
 %left NEG
@@ -196,6 +199,8 @@
          | '-' Expr %prec NEG { Op Minus (Const (MkInt 0)) $2 }
          | Expr '*' Expr { Op Times $1 $3 }
          | Expr '/' Expr { Op Divide $1 $3 }
+         | Expr shl Expr { Op ShL $1 $3 }
+         | Expr shr Expr { Op ShR $1 $3 }
          | Expr '<' Expr { Op OpLT $1 $3 }
          | Expr '>' Expr { Op OpGT $1 $3 }
          | Expr le Expr { Op OpLE $1 $3 }
diff --git a/Main.lhs b/Main.lhs
--- a/Main.lhs
+++ b/Main.lhs
@@ -4,10 +4,18 @@
 > import System.Directory
 > import System.Environment
 > import System.IO
+> import Distribution.Version
 > import Monad
 
 > import Epic.Compiler
+> import Paths_epic
 
+> versionString = showV (versionBranch version)
+>   where
+>     showV [] = ""
+>     showV [a] = show a
+>     showV (x:xs) = show x ++ "." ++ showV xs
+
 > main = do args <- getArgs
 >           (fns, opts) <- getInput args
 >           outfile <- getOutput opts
@@ -15,7 +23,7 @@
 >           copts <- getCOpts opts
 >           extras <- getExtra opts
 >           if ((length ofiles) > 0 && (not (elem Obj opts)))
->              then link (ofiles ++ copts) extras outfile (not (elem ExtMain opts))
+>              then link (ofiles ++ copts) extras outfile (not (elem ExtMain opts)) (mkOpts opts)
 >              else return ()
 >   where mkOpts (KeepInt:xs) = KeepC:(mkOpts xs)
 >         mkOpts (TraceOn:xs) = Trace:(mkOpts xs)
@@ -60,13 +68,14 @@
 
 > getInput :: [String] -> IO ([FilePath],[Option])
 > getInput args = do let opts = parseArgs args
+>                    processFlags opts False
 >                    fns <- getFile opts
 >                    if (length fns == 0) 
 >                       then do showUsage
 >                               return (fns,opts)
 >                       else return (fns,opts)
 
-> showUsage = do putStrLn "Epigram Supercombinator Compiler version 0.1"
+> showUsage = do putStrLn $ "Epigram Supercombinator Compiler version " ++ versionString
 >                putStrLn "Usage:\n\tepic <input file> [options]"
 >                exitWith (ExitFailure 1)
 
@@ -79,6 +88,9 @@
 >             | ExtraInc String -- extra files to inlude
 >             | COpt String -- option to send straight to gcc
 >             | ExtMain -- external main (i.e. in a .o)
+>             | CFlags -- output include flags
+>             | LibFlags -- output linker flags
+>             | DbgInfo -- generate debug info
 >   deriving Eq
 
 > parseArgs :: [String] -> [Option]
@@ -90,6 +102,9 @@
 > parseArgs ("-o":name:args) = (Output name):(parseArgs args)
 > parseArgs ("-h":name:args) = (Header name):(parseArgs args)
 > parseArgs ("-i":inc:args) = (ExtraInc inc):(parseArgs args)
+> parseArgs ("-includedirs":args) = CFlags:(parseArgs args)
+> parseArgs ("-libdirs":args) = LibFlags:(parseArgs args)
+> parseArgs ("-g":args) = DbgInfo:(parseArgs args)
 > parseArgs (('$':x):args) = (COpt (x ++ concat (map (" "++) args))):[]
 > parseArgs (('-':x):args) = (COpt x):(parseArgs args)
 > parseArgs (x:args) = (File x):(parseArgs args)
@@ -116,3 +131,14 @@
 >                                 return (x:fns)
 > getExtra (_:xs) = getExtra xs
 > getExtra [] = return []
+
+> processFlags :: [Option] -> Bool -> IO ()
+> processFlags [] True = do putStrLn ""; exitWith ExitSuccess
+> processFlags [] False = return ()
+> processFlags (LibFlags:xs) _ = do datadir <- getDataDir
+>                                   putStr $ "-L"++datadir++"/evm "
+>                                   processFlags xs True
+> processFlags (CFlags:xs) _ = do datadir <- getDataDir
+>                                 putStr $ "-I"++datadir++"/evm "
+>                                 processFlags xs True
+> processFlags (_:xs) quit = processFlags xs quit
diff --git a/dist/build/Epic/Parser.hs b/dist/build/Epic/Parser.hs
--- a/dist/build/Epic/Parser.hs
+++ b/dist/build/Epic/Parser.hs
@@ -140,21 +140,21 @@
 
 
 happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\xce\x01\x05\x00\x00\x00\xdf\xff\x2d\x01\x2c\x01\x23\x01\xe1\x00\x01\x01\x1d\x01\xce\x01\x00\x00\x00\x00\xf7\x00\x00\x00\x1c\x01\xdf\xff\x00\x00\x00\x00\x00\x00\xe7\x00\x13\x01\x00\x00\x00\x00\xe5\x00\xd8\x00\xfb\x00\xd6\x00\x3d\x01\xc8\x00\x3d\x01\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x3d\x01\xf6\x00\x00\x00\x00\x00\xbb\x00\x01\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\xe9\x00\x01\x00\x01\x00\xc4\x00\x00\x00\xe8\xff\xc2\x00\x3d\x01\xe2\x00\x00\x00\x01\x00\x01\x00\x01\x00\xe6\xff\x76\x00\xb2\x00\xd3\x00\x00\x00\xd7\x00\x01\x00\x3d\x01\x01\x00\x01\x00\x18\x00\x03\x00\xa1\x00\xaf\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\xd4\x00\x01\x00\x03\x01\x00\x00\xe3\xff\xe3\xff\xe3\xff\xe3\xff\xf3\x00\xe6\xff\xe6\xff\x0d\x01\x0d\x01\x9e\x00\x01\x00\x3d\x01\xa2\x00\x01\x00\x66\x00\xc0\x00\xc3\x00\xad\x00\x9d\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x94\x00\x00\x00\x01\x00\x2c\x00\x2a\x00\x85\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x8b\x00\x6c\x00\x77\x00\x9f\x00\x71\x00\x01\x00\x56\x00\x01\x00\x9a\x00\x79\x00\x00\x00\x3d\x01\x6f\x00\x00\x00\x01\x00\xe3\x00\x01\x00\x6b\x00\x01\x00\x2a\x00\x00\x00\x43\x00\x01\x00\x00\x00\xe3\x00\x86\x00\xe3\x00\x8a\x00\x00\x00\x40\x00\x01\x00\x00\x00\x69\x00\xe3\x00\x30\x00\x00\x00\x01\x00\xe3\x00\x00\x00"#
+happyActOffsets = HappyA# "\x2d\x01\x1f\x00\x00\x00\xdf\xff\x52\x01\x4d\x01\x4b\x01\xfe\x00\xf5\x01\x40\x01\x2d\x01\x00\x00\x00\x00\x16\x01\x00\x00\x3b\x01\xdf\xff\x00\x00\x00\x00\x00\x00\x14\x01\x2a\x01\x00\x00\x00\x00\x08\x01\xf1\x00\x28\x01\xf0\x00\x69\x01\xdb\x00\x69\x01\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x69\x01\x15\x01\x00\x00\x00\x00\xe0\x00\x01\x00\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\x06\x01\x03\x01\x01\x00\x01\x00\xdc\x00\x00\x00\xf1\xff\xda\x00\x69\x01\x00\x01\x00\x00\x01\x00\x01\x00\x01\x00\xe7\xff\x86\x00\xd0\x00\xed\x00\x00\x00\xf2\x00\x01\x00\x69\x01\x01\x00\x01\x00\x18\x00\x03\x00\xb6\x00\xc5\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\xd7\x00\x01\x00\x23\x01\x00\x00\x35\x01\x35\x01\xe4\xff\xe4\xff\x35\x01\x35\x01\x11\x01\xe7\xff\xe7\xff\x37\x01\x37\x01\xc6\x00\x01\x00\x69\x01\xc4\x00\x01\x00\x74\x00\xd8\x00\xdd\x00\xc3\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xb1\x00\x00\x00\x01\x00\x34\x00\x2a\x00\x96\x00\x9e\x00\x00\x00\x00\x00\x01\x00\x9b\x00\x8b\x00\x8f\x00\xbc\x00\x79\x00\x01\x00\x62\x00\x01\x00\xae\x00\x8a\x00\x00\x00\x69\x01\x89\x00\x00\x00\x01\x00\xff\x00\x01\x00\x7e\x00\x01\x00\x2a\x00\x00\x00\x4d\x00\x01\x00\x00\x00\xff\x00\x9f\x00\xff\x00\x9c\x00\x00\x00\x63\x00\x01\x00\x00\x00\x6b\x00\xff\x00\x50\x00\x00\x00\x01\x00\xff\x00\x00\x00"#
 
 happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x04\x02\x09\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x65\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x00\x50\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x01\xed\x01\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\xeb\x01\x73\x01\xe3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x01\x4e\x00\xd9\x01\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x01\xcf\x01\xcd\x01\xc5\x01\xc3\x01\xbb\x01\xb9\x01\xb1\x01\xaf\x01\xa7\x01\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x01\x39\x00\x00\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x01\x00\x00\x53\x01\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\x4b\x01\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x89\x01\x00\x00\x87\x01\x00\x00\x7f\x01\x0b\x00\x00\x00\x00\x00\x7d\x01\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x01\x00\x00\x00\x00"#
+happyGotoOffsets = HappyA# "\x37\x02\x0b\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x78\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\x6f\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x25\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x02\x1b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x00\x00\x19\x02\x97\x01\x11\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x02\x48\x00\x07\x02\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x01\xfd\x01\xfb\x01\xf3\x01\xf1\x01\xe9\x01\xe7\x01\xdf\x01\xdd\x01\xd5\x01\xd3\x01\xcb\x01\x00\x00\xc9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x43\x00\x00\x00\xc1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\x00\x00\x77\x01\x00\x00\x00\x00\x00\x00\xbf\x01\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x01\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\xad\x01\x00\x00\xab\x01\x00\x00\xa3\x01\x39\x00\x00\x00\x00\x00\xa1\x01\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x01\x00\x00\x00\x00"#
 
 happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\xe8\xff\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xe8\xff\xfd\xff\xe7\xff\x00\x00\xed\xff\x00\x00\xec\xff\xe9\xff\xea\xff\xeb\xff\x00\x00\xe6\xff\xae\xff\xfc\xff\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xfb\xff\xfa\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf0\xff\xf1\xff\xf2\xff\x00\x00\x00\x00\xe6\xff\xee\xff\xe4\xff\x00\x00\x00\x00\xef\xff\xd5\xff\xd4\xff\xdc\xff\xe3\xff\xb2\xff\xb8\xff\xb7\xff\xb5\xff\xb4\xff\xb3\xff\xb6\xff\xb1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd2\xff\x00\x00\xbe\xff\x00\x00\xc6\xff\xbd\xff\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\xdb\xff\xc2\xff\xc3\xff\xc0\xff\xc1\xff\xbf\xff\xc4\xff\xc5\xff\xc7\xff\xc8\xff\x00\x00\xbe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xe0\xff\xbe\xff\xbc\xff\xbb\xff\xde\xff\x00\x00\xdf\xff\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\xe1\xff\xdd\xff\x00\x00\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xff\x00\x00\x00\x00\xd1\xff\x00\x00\x00\x00\xd7\xff\x00\x00\xd8\xff\x00\x00\x00\x00\x00\x00\xce\xff\xcf\xff\x00\x00\x00\x00\xcc\xff\xca\xff\xe6\xff\xc9\xff\x00\x00\xd0\xff\xba\xff\xbb\xff\xd6\xff\x00\x00\xda\xff\x00\x00\xb9\xff\x00\x00\xcb\xff"#
+happyDefActions = HappyA# "\xe8\xff\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xe8\xff\xfd\xff\xe7\xff\x00\x00\xed\xff\x00\x00\xec\xff\xe9\xff\xea\xff\xeb\xff\x00\x00\xe6\xff\xac\xff\xfc\xff\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xfb\xff\xfa\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf0\xff\xf1\xff\xf2\xff\x00\x00\x00\x00\xe6\xff\xee\xff\xe4\xff\x00\x00\x00\x00\xef\xff\xd5\xff\xd4\xff\xdc\xff\xe3\xff\xb0\xff\xb6\xff\xb5\xff\xb3\xff\xb2\xff\xb1\xff\xb4\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd2\xff\x00\x00\xbc\xff\x00\x00\xc6\xff\xbb\xff\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\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\xd9\xff\xdb\xff\xc0\xff\xc1\xff\xc2\xff\xc3\xff\xbe\xff\xbf\xff\xbd\xff\xc4\xff\xc5\xff\xc7\xff\xc8\xff\x00\x00\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xe0\xff\xbc\xff\xba\xff\xb9\xff\xde\xff\x00\x00\xdf\xff\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\xe1\xff\xdd\xff\x00\x00\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\x00\x00\x00\x00\xd1\xff\x00\x00\x00\x00\xd7\xff\x00\x00\xd8\xff\x00\x00\x00\x00\x00\x00\xce\xff\xcf\xff\x00\x00\x00\x00\xcc\xff\xca\xff\xe6\xff\xc9\xff\x00\x00\xd0\xff\xb8\xff\xb9\xff\xd6\xff\x00\x00\xda\xff\x00\x00\xb7\xff\x00\x00\xcb\xff"#
 
 happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x22\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x27\x00\x02\x00\x24\x00\x27\x00\x05\x00\x27\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x09\x00\x0a\x00\x15\x00\x16\x00\x06\x00\x18\x00\x19\x00\x38\x00\x1b\x00\x1a\x00\x38\x00\x1e\x00\x1f\x00\x42\x00\x21\x00\x01\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x27\x00\x02\x00\x2b\x00\x03\x00\x05\x00\x2e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x38\x00\x39\x00\x09\x00\x0a\x00\x27\x00\x16\x00\x17\x00\x3d\x00\x3e\x00\x3f\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x38\x00\x39\x00\x00\x00\x27\x00\x02\x00\x01\x00\x06\x00\x05\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x20\x00\x38\x00\x39\x00\x01\x00\x07\x00\x08\x00\x06\x00\x27\x00\x0b\x00\x3c\x00\x0d\x00\x0e\x00\x10\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x06\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x3a\x00\x38\x00\x39\x00\x27\x00\x28\x00\x03\x00\x04\x00\x03\x00\x04\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x3a\x00\x28\x00\x27\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x3a\x00\x28\x00\x03\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x3c\x00\x38\x00\x39\x00\x3a\x00\x27\x00\x28\x00\x3c\x00\x28\x00\x2a\x00\x31\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x27\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x27\x00\x02\x00\x28\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x29\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x27\x00\x28\x00\x27\x00\x03\x00\x37\x00\x02\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x2c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x02\x00\x38\x00\x39\x00\x27\x00\x28\x00\x27\x00\x01\x00\x27\x00\x31\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x38\x00\x39\x00\x27\x00\x28\x00\x01\x00\x3c\x00\x28\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x28\x00\x27\x00\x37\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x01\x00\x27\x00\x02\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x02\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x01\x00\xff\xff\x02\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x27\x00\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x2f\x00\x30\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\x38\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\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\x00\x00\x0e\x00\x02\x00\xff\xff\xff\xff\x05\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\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"#
+happyCheck = HappyA# "\xff\xff\x22\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x00\x00\x27\x00\x02\x00\x02\x00\x27\x00\x05\x00\x05\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x24\x00\x15\x00\x16\x00\x27\x00\x18\x00\x19\x00\x06\x00\x1b\x00\x1a\x00\x3a\x00\x1e\x00\x1f\x00\x3a\x00\x21\x00\x44\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x27\x00\x02\x00\x2b\x00\x03\x00\x05\x00\x2e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x01\x00\x3a\x00\x3b\x00\x27\x00\x16\x00\x17\x00\x09\x00\x0a\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x1d\x00\x3a\x00\x3b\x00\x09\x00\x0a\x00\x07\x00\x08\x00\x03\x00\x04\x00\x0b\x00\x27\x00\x0d\x00\x0e\x00\x3f\x00\x40\x00\x41\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x20\x00\x3a\x00\x3b\x00\x01\x00\x07\x00\x08\x00\x06\x00\x27\x00\x0b\x00\x01\x00\x0d\x00\x0e\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x06\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x03\x00\x04\x00\x06\x00\x3e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x3c\x00\x3c\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x27\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x3c\x00\x28\x00\x28\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x03\x00\x3a\x00\x3b\x00\x3c\x00\x27\x00\x28\x00\x2a\x00\x28\x00\x31\x00\x3d\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x27\x00\x27\x00\x03\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x27\x00\x29\x00\x28\x00\x39\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x2c\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x27\x00\x02\x00\x27\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x31\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x01\x00\x3e\x00\x28\x00\x3e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x01\x00\x39\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x27\x00\x01\x00\x27\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\x45\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x02\x00\x01\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x27\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x2f\x00\x30\x00\xff\xff\xff\xff\x35\x00\x36\x00\x3f\x00\x40\x00\x41\x00\x3a\x00\x43\x00\x3a\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\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x43\x00\x02\x00\x45\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
 
 happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x12\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x5d\x00\x02\x00\x56\x00\x5d\x00\x03\x00\x57\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa4\x00\x8e\x00\x40\x00\x41\x00\xad\x00\x42\x00\x43\x00\x67\x00\x44\x00\x77\x00\x67\x00\x45\x00\x46\x00\x13\x00\x47\x00\xaa\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x5d\x00\x08\x00\x4d\x00\x90\x00\x03\x00\x4e\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x78\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x88\x00\x67\x00\x68\x00\x8d\x00\x8e\x00\x5d\x00\x91\x00\x92\x00\x05\x00\x06\x00\x07\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x93\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x7a\x00\x67\x00\x68\x00\x0b\x00\x5d\x00\x08\x00\x53\x00\x30\x00\x03\x00\x31\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x2f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xa4\x00\x67\x00\x68\x00\x1f\x00\x95\x00\x34\x00\x1b\x00\x5d\x00\x35\x00\xb2\x00\xb0\x00\x36\x00\x17\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x18\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xac\x00\x67\x00\x68\x00\x5d\x00\x9b\x00\x13\x00\x10\x00\x0f\x00\x10\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x9c\x00\xb0\x00\xa7\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xaa\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x86\x00\x98\x00\x9f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa1\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x9e\x00\x67\x00\x68\x00\x80\x00\x5d\x00\xad\x00\xa0\x00\x8c\x00\xa2\x00\x8d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x95\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x82\x00\x84\x00\x8b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x88\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x99\x00\x67\x00\x68\x00\x5d\x00\x83\x00\x75\x00\x6a\x00\x76\x00\x7d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x7f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x53\x00\x67\x00\x68\x00\x5d\x00\x85\x00\x55\x00\x5b\x00\x58\x00\x33\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x5c\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x1a\x00\x67\x00\x68\x00\x5d\x00\x7e\x00\x1a\x00\x2e\x00\x2d\x00\x2f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x1e\x00\x1b\x00\x1d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x15\x00\x16\x00\x0b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xff\xff\x0d\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x0e\x00\x00\x00\x0f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x5d\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x00\x00\x67\x00\x60\x00\x61\x00\x05\x00\x06\x00\x07\x00\x00\x00\x0a\x00\x00\x00\xfe\xff\x67\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x95\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x99\x00\x36\x00\x95\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x96\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x80\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x89\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x73\x00\x00\x00\x36\x00\x4f\x00\x34\x00\xb2\x00\x34\x00\x35\x00\x50\x00\x35\x00\x36\x00\x00\x00\x36\x00\xae\x00\x34\x00\xa5\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\xa7\x00\x34\x00\xa8\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x9c\x00\x34\x00\xa2\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x93\x00\x34\x00\x86\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x68\x00\x34\x00\x6a\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6b\x00\x34\x00\x6c\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6d\x00\x34\x00\x6e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6f\x00\x34\x00\x70\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x71\x00\x34\x00\x72\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x78\x00\x34\x00\x79\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x7b\x00\x34\x00\x4e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x51\x00\x34\x00\x58\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x59\x00\x34\x00\x33\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x07\x00\x36\x00\x08\x00\x00\x00\x00\x00\x03\x00\x00\x00\x05\x00\x06\x00\x07\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+happyTable = HappyA# "\x00\x00\x12\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x16\x00\x5d\x00\x08\x00\x02\x00\x5d\x00\x03\x00\x03\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x56\x00\x40\x00\x41\x00\x57\x00\x42\x00\x43\x00\xb1\x00\x44\x00\x7b\x00\x69\x00\x45\x00\x46\x00\x69\x00\x47\x00\x13\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x0b\x00\x5d\x00\x08\x00\x4d\x00\x94\x00\x03\x00\x4e\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x7c\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xae\x00\x69\x00\x6a\x00\x5d\x00\x95\x00\x96\x00\xa8\x00\x92\x00\x8c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x7e\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x97\x00\x69\x00\x6a\x00\x91\x00\x92\x00\x99\x00\x34\x00\x13\x00\x10\x00\x35\x00\x5d\x00\xb4\x00\x36\x00\x05\x00\x06\x00\x07\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x53\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xa8\x00\x69\x00\x6a\x00\x31\x00\x99\x00\x34\x00\x30\x00\x5d\x00\x35\x00\x2f\x00\x9d\x00\x36\x00\x1f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x17\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x1b\x00\x69\x00\x6a\x00\x5d\x00\x9f\x00\x0f\x00\x10\x00\x18\x00\xb6\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xb4\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\xa0\x00\xb0\x00\x1a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xab\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x8a\x00\xae\x00\x9c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa2\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xa3\x00\x69\x00\x6a\x00\x84\x00\x5d\x00\xb1\x00\xa6\x00\x90\x00\x91\x00\xa5\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa4\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x99\x00\x86\x00\x6c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x88\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x9d\x00\x69\x00\x6a\x00\x5d\x00\x87\x00\x79\x00\x8c\x00\x8f\x00\x7a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x81\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x83\x00\x69\x00\x6a\x00\x5d\x00\x89\x00\x55\x00\x53\x00\x58\x00\x5b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x5c\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x33\x00\x69\x00\x6a\x00\x5d\x00\x82\x00\x1a\x00\x2e\x00\x2d\x00\x1f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x2f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x1a\x00\x1d\x00\x1a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1e\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x1b\x00\x15\x00\x16\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0b\x00\xff\xff\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x0d\x00\x0e\x00\x00\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0f\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x60\x00\x61\x00\x00\x00\x00\x00\x65\x00\x66\x00\x05\x00\x06\x00\x07\x00\x69\x00\x0a\x00\x69\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x99\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x9a\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x84\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x8d\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x77\x00\x00\x00\x36\x00\x4f\x00\x34\x00\xb6\x00\x34\x00\x35\x00\x50\x00\x35\x00\x36\x00\x00\x00\x36\x00\xb2\x00\x34\x00\xa9\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\xab\x00\x34\x00\xac\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\xa0\x00\x34\x00\xa6\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x97\x00\x34\x00\x8a\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6a\x00\x34\x00\x6c\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6d\x00\x34\x00\x6e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6f\x00\x34\x00\x70\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x71\x00\x34\x00\x72\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x73\x00\x34\x00\x74\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x75\x00\x34\x00\x76\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x7c\x00\x34\x00\x7d\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x7f\x00\x34\x00\x4e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x51\x00\x34\x00\x58\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x59\x00\x34\x00\x33\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x05\x00\x06\x00\x07\x00\x07\x00\x0a\x00\x08\x00\xfe\xff\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
-happyReduceArr = Happy_Data_Array.array (1, 81) [
+happyReduceArr = Happy_Data_Array.array (1, 83) [
 	(1 , happyReduce_1),
 	(2 , happyReduce_2),
 	(3 , happyReduce_3),
@@ -235,10 +235,12 @@
 	(78 , happyReduce_78),
 	(79 , happyReduce_79),
 	(80 , happyReduce_80),
-	(81 , happyReduce_81)
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83)
 	]
 
-happy_n_terms = 68 :: Int
+happy_n_terms = 70 :: Int
 happy_n_nonterms = 17 :: Int
 
 happyReduce_1 = happySpecReduce_1  0# happyReduction_1
@@ -808,7 +810,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpLT happy_var_1 happy_var_3
+		 (Op ShL happy_var_1 happy_var_3
 	)}}
 
 happyReduce_61 = happySpecReduce_3  11# happyReduction_61
@@ -818,7 +820,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpGT happy_var_1 happy_var_3
+		 (Op ShR happy_var_1 happy_var_3
 	)}}
 
 happyReduce_62 = happySpecReduce_3  11# happyReduction_62
@@ -828,7 +830,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpLE happy_var_1 happy_var_3
+		 (Op OpLT happy_var_1 happy_var_3
 	)}}
 
 happyReduce_63 = happySpecReduce_3  11# happyReduction_63
@@ -838,7 +840,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpGE happy_var_1 happy_var_3
+		 (Op OpGT happy_var_1 happy_var_3
 	)}}
 
 happyReduce_64 = happySpecReduce_3  11# happyReduction_64
@@ -848,23 +850,43 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
+		 (Op OpLE happy_var_1 happy_var_3
+	)}}
+
+happyReduce_65 = happySpecReduce_3  11# happyReduction_65
+happyReduction_65 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	happyIn15
+		 (Op OpGE 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 happyOut11 happy_x_1 of { happy_var_1 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	happyIn15
 		 (Op OpEQ happy_var_1 happy_var_3
 	)}}
 
-happyReduce_65 = happySpecReduce_0  12# happyReduction_65
-happyReduction_65  =  happyIn16
+happyReduce_67 = happySpecReduce_0  12# happyReduction_67
+happyReduction_67  =  happyIn16
 		 ([]
 	)
 
-happyReduce_66 = happySpecReduce_1  12# happyReduction_66
-happyReduction_66 happy_x_1
+happyReduce_68 = happySpecReduce_1  12# happyReduction_68
+happyReduction_68 happy_x_1
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	happyIn16
 		 ([happy_var_1]
 	)}
 
-happyReduce_67 = happySpecReduce_3  12# happyReduction_67
-happyReduction_67 happy_x_3
+happyReduce_69 = happySpecReduce_3  12# happyReduction_69
+happyReduction_69 happy_x_3
 	happy_x_2
 	happy_x_1
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
@@ -873,13 +895,13 @@
 		 (happy_var_1:happy_var_3
 	)}}
 
-happyReduce_68 = happySpecReduce_0  13# happyReduction_68
-happyReduction_68  =  happyIn17
+happyReduce_70 = happySpecReduce_0  13# happyReduction_70
+happyReduction_70  =  happyIn17
 		 ([]
 	)
 
-happyReduce_69 = happySpecReduce_3  13# happyReduction_69
-happyReduction_69 happy_x_3
+happyReduce_71 = happySpecReduce_3  13# happyReduction_71
+happyReduction_71 happy_x_3
 	happy_x_2
 	happy_x_1
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
@@ -888,8 +910,8 @@
 		 ([(happy_var_1,happy_var_3)]
 	)}}
 
-happyReduce_70 = happyReduce 5# 13# happyReduction_70
-happyReduction_70 (happy_x_5 `HappyStk`
+happyReduce_72 = happyReduce 5# 13# happyReduction_72
+happyReduction_72 (happy_x_5 `HappyStk`
 	happy_x_4 `HappyStk`
 	happy_x_3 `HappyStk`
 	happy_x_2 `HappyStk`
@@ -902,74 +924,74 @@
 		 ((happy_var_1,happy_var_3):happy_var_5
 	) `HappyStk` happyRest}}}
 
-happyReduce_71 = happySpecReduce_1  14# happyReduction_71
-happyReduction_71 happy_x_1
+happyReduce_73 = happySpecReduce_1  14# happyReduction_73
+happyReduction_73 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
 	happyIn18
 		 (MkInt happy_var_1
 	)}
 
-happyReduce_72 = happySpecReduce_1  14# happyReduction_72
-happyReduction_72 happy_x_1
+happyReduce_74 = happySpecReduce_1  14# happyReduction_74
+happyReduction_74 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenBigInt happy_var_1) -> 
 	happyIn18
 		 (MkBigInt happy_var_1
 	)}
 
-happyReduce_73 = happySpecReduce_1  14# happyReduction_73
-happyReduction_73 happy_x_1
+happyReduce_75 = happySpecReduce_1  14# happyReduction_75
+happyReduction_75 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
 	happyIn18
 		 (MkChar happy_var_1
 	)}
 
-happyReduce_74 = happySpecReduce_1  14# happyReduction_74
-happyReduction_74 happy_x_1
+happyReduce_76 = happySpecReduce_1  14# happyReduction_76
+happyReduction_76 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
 	happyIn18
 		 (MkBool happy_var_1
 	)}
 
-happyReduce_75 = happySpecReduce_1  14# happyReduction_75
-happyReduction_75 happy_x_1
+happyReduce_77 = happySpecReduce_1  14# happyReduction_77
+happyReduction_77 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
 	happyIn18
 		 (MkFloat happy_var_1
 	)}
 
-happyReduce_76 = happySpecReduce_1  14# happyReduction_76
-happyReduction_76 happy_x_1
+happyReduce_78 = happySpecReduce_1  14# happyReduction_78
+happyReduction_78 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenBigFloat happy_var_1) -> 
 	happyIn18
 		 (MkBigFloat happy_var_1
 	)}
 
-happyReduce_77 = happySpecReduce_1  14# happyReduction_77
-happyReduction_77 happy_x_1
+happyReduce_79 = happySpecReduce_1  14# happyReduction_79
+happyReduction_79 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
 	happyIn18
 		 (MkString happy_var_1
 	)}
 
-happyReduce_78 = happySpecReduce_1  14# happyReduction_78
-happyReduction_78 happy_x_1
+happyReduce_80 = happySpecReduce_1  14# happyReduction_80
+happyReduction_80 happy_x_1
 	 =  happyIn18
 		 (MkUnit
 	)
 
-happyReduce_79 = happySpecReduce_1  14# happyReduction_79
-happyReduction_79 happy_x_1
+happyReduce_81 = happySpecReduce_1  14# happyReduction_81
+happyReduction_81 happy_x_1
 	 =  happyIn18
 		 (MkUnused
 	)
 
-happyReduce_80 = happyMonadReduce 0# 15# happyReduction_80
-happyReduction_80 (happyRest) tk
+happyReduce_82 = happyMonadReduce 0# 15# happyReduction_82
+happyReduction_82 (happyRest) tk
 	 = happyThen (( getLineNo)
 	) (\r -> happyReturn (happyIn19 r))
 
-happyReduce_81 = happyMonadReduce 0# 16# happyReduction_81
-happyReduction_81 (happyRest) tk
+happyReduce_83 = happyMonadReduce 0# 16# happyReduction_83
+happyReduction_83 (happyRest) tk
 	 = happyThen (( getFileName)
 	) (\r -> happyReturn (happyIn20 r))
 
@@ -977,7 +999,7 @@
 	= lexer(\tk -> 
 	let cont i = happyDoAction i tk action sts stk in
 	case tk of {
-	TokenEOF -> happyDoAction 67# tk action sts stk;
+	TokenEOF -> happyDoAction 69# tk action sts stk;
 	TokenName happy_dollar_dollar -> cont 1#;
 	TokenString happy_dollar_dollar -> cont 2#;
 	TokenInt happy_dollar_dollar -> cont 3#;
@@ -1030,20 +1052,22 @@
 	TokenEQ -> cont 50#;
 	TokenLE -> cont 51#;
 	TokenGE -> cont 52#;
-	TokenLT -> cont 53#;
-	TokenGT -> cont 54#;
-	TokenColon -> cont 55#;
-	TokenProj -> cont 56#;
-	TokenSemi -> cont 57#;
-	TokenComma -> cont 58#;
-	TokenBar -> cont 59#;
-	TokenArrow -> cont 60#;
-	TokenCInclude -> cont 61#;
-	TokenExtern -> cont 62#;
-	TokenExport -> cont 63#;
-	TokenCType -> cont 64#;
-	TokenInclude -> cont 65#;
-	TokenInline -> cont 66#;
+	TokenShL -> cont 53#;
+	TokenShR -> cont 54#;
+	TokenLT -> cont 55#;
+	TokenGT -> cont 56#;
+	TokenColon -> cont 57#;
+	TokenProj -> cont 58#;
+	TokenSemi -> cont 59#;
+	TokenComma -> cont 60#;
+	TokenBar -> cont 61#;
+	TokenArrow -> cont 62#;
+	TokenCInclude -> cont 63#;
+	TokenExtern -> cont 64#;
+	TokenExport -> cont 65#;
+	TokenCType -> cont 66#;
+	TokenInclude -> cont 67#;
+	TokenInline -> cont 68#;
 	_ -> happyError' tk
 	})
 
diff --git a/dist/build/Epic/epic-tmp/Epic/Parser.hs b/dist/build/Epic/epic-tmp/Epic/Parser.hs
--- a/dist/build/Epic/epic-tmp/Epic/Parser.hs
+++ b/dist/build/Epic/epic-tmp/Epic/Parser.hs
@@ -140,21 +140,21 @@
 
 
 happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\xce\x01\x05\x00\x00\x00\xdf\xff\x2d\x01\x2c\x01\x23\x01\xe1\x00\x01\x01\x1d\x01\xce\x01\x00\x00\x00\x00\xf7\x00\x00\x00\x1c\x01\xdf\xff\x00\x00\x00\x00\x00\x00\xe7\x00\x13\x01\x00\x00\x00\x00\xe5\x00\xd8\x00\xfb\x00\xd6\x00\x3d\x01\xc8\x00\x3d\x01\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x3d\x01\xf6\x00\x00\x00\x00\x00\xbb\x00\x01\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\xe9\x00\x01\x00\x01\x00\xc4\x00\x00\x00\xe8\xff\xc2\x00\x3d\x01\xe2\x00\x00\x00\x01\x00\x01\x00\x01\x00\xe6\xff\x76\x00\xb2\x00\xd3\x00\x00\x00\xd7\x00\x01\x00\x3d\x01\x01\x00\x01\x00\x18\x00\x03\x00\xa1\x00\xaf\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\xd4\x00\x01\x00\x03\x01\x00\x00\xe3\xff\xe3\xff\xe3\xff\xe3\xff\xf3\x00\xe6\xff\xe6\xff\x0d\x01\x0d\x01\x9e\x00\x01\x00\x3d\x01\xa2\x00\x01\x00\x66\x00\xc0\x00\xc3\x00\xad\x00\x9d\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x94\x00\x00\x00\x01\x00\x2c\x00\x2a\x00\x85\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x8b\x00\x6c\x00\x77\x00\x9f\x00\x71\x00\x01\x00\x56\x00\x01\x00\x9a\x00\x79\x00\x00\x00\x3d\x01\x6f\x00\x00\x00\x01\x00\xe3\x00\x01\x00\x6b\x00\x01\x00\x2a\x00\x00\x00\x43\x00\x01\x00\x00\x00\xe3\x00\x86\x00\xe3\x00\x8a\x00\x00\x00\x40\x00\x01\x00\x00\x00\x69\x00\xe3\x00\x30\x00\x00\x00\x01\x00\xe3\x00\x00\x00"#
+happyActOffsets = HappyA# "\x2d\x01\x1f\x00\x00\x00\xdf\xff\x52\x01\x4d\x01\x4b\x01\xfe\x00\xf5\x01\x40\x01\x2d\x01\x00\x00\x00\x00\x16\x01\x00\x00\x3b\x01\xdf\xff\x00\x00\x00\x00\x00\x00\x14\x01\x2a\x01\x00\x00\x00\x00\x08\x01\xf1\x00\x28\x01\xf0\x00\x69\x01\xdb\x00\x69\x01\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x69\x01\x15\x01\x00\x00\x00\x00\xe0\x00\x01\x00\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\x06\x01\x03\x01\x01\x00\x01\x00\xdc\x00\x00\x00\xf1\xff\xda\x00\x69\x01\x00\x01\x00\x00\x01\x00\x01\x00\x01\x00\xe7\xff\x86\x00\xd0\x00\xed\x00\x00\x00\xf2\x00\x01\x00\x69\x01\x01\x00\x01\x00\x18\x00\x03\x00\xb6\x00\xc5\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\xd7\x00\x01\x00\x23\x01\x00\x00\x35\x01\x35\x01\xe4\xff\xe4\xff\x35\x01\x35\x01\x11\x01\xe7\xff\xe7\xff\x37\x01\x37\x01\xc6\x00\x01\x00\x69\x01\xc4\x00\x01\x00\x74\x00\xd8\x00\xdd\x00\xc3\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xb1\x00\x00\x00\x01\x00\x34\x00\x2a\x00\x96\x00\x9e\x00\x00\x00\x00\x00\x01\x00\x9b\x00\x8b\x00\x8f\x00\xbc\x00\x79\x00\x01\x00\x62\x00\x01\x00\xae\x00\x8a\x00\x00\x00\x69\x01\x89\x00\x00\x00\x01\x00\xff\x00\x01\x00\x7e\x00\x01\x00\x2a\x00\x00\x00\x4d\x00\x01\x00\x00\x00\xff\x00\x9f\x00\xff\x00\x9c\x00\x00\x00\x63\x00\x01\x00\x00\x00\x6b\x00\xff\x00\x50\x00\x00\x00\x01\x00\xff\x00\x00\x00"#
 
 happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x04\x02\x09\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x65\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x00\x50\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x01\xed\x01\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\xeb\x01\x73\x01\xe3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x01\x4e\x00\xd9\x01\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x01\xcf\x01\xcd\x01\xc5\x01\xc3\x01\xbb\x01\xb9\x01\xb1\x01\xaf\x01\xa7\x01\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x01\x39\x00\x00\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x01\x00\x00\x53\x01\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\x4b\x01\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x89\x01\x00\x00\x87\x01\x00\x00\x7f\x01\x0b\x00\x00\x00\x00\x00\x7d\x01\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x01\x00\x00\x00\x00"#
+happyGotoOffsets = HappyA# "\x37\x02\x0b\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x78\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\x6f\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x25\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x02\x1b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x00\x00\x19\x02\x97\x01\x11\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x02\x48\x00\x07\x02\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x01\xfd\x01\xfb\x01\xf3\x01\xf1\x01\xe9\x01\xe7\x01\xdf\x01\xdd\x01\xd5\x01\xd3\x01\xcb\x01\x00\x00\xc9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x43\x00\x00\x00\xc1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\x00\x00\x77\x01\x00\x00\x00\x00\x00\x00\xbf\x01\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x01\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\xad\x01\x00\x00\xab\x01\x00\x00\xa3\x01\x39\x00\x00\x00\x00\x00\xa1\x01\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x01\x00\x00\x00\x00"#
 
 happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\xe8\xff\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xe8\xff\xfd\xff\xe7\xff\x00\x00\xed\xff\x00\x00\xec\xff\xe9\xff\xea\xff\xeb\xff\x00\x00\xe6\xff\xae\xff\xfc\xff\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xfb\xff\xfa\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf0\xff\xf1\xff\xf2\xff\x00\x00\x00\x00\xe6\xff\xee\xff\xe4\xff\x00\x00\x00\x00\xef\xff\xd5\xff\xd4\xff\xdc\xff\xe3\xff\xb2\xff\xb8\xff\xb7\xff\xb5\xff\xb4\xff\xb3\xff\xb6\xff\xb1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd2\xff\x00\x00\xbe\xff\x00\x00\xc6\xff\xbd\xff\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\xdb\xff\xc2\xff\xc3\xff\xc0\xff\xc1\xff\xbf\xff\xc4\xff\xc5\xff\xc7\xff\xc8\xff\x00\x00\xbe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xe0\xff\xbe\xff\xbc\xff\xbb\xff\xde\xff\x00\x00\xdf\xff\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\xe1\xff\xdd\xff\x00\x00\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xff\x00\x00\x00\x00\xd1\xff\x00\x00\x00\x00\xd7\xff\x00\x00\xd8\xff\x00\x00\x00\x00\x00\x00\xce\xff\xcf\xff\x00\x00\x00\x00\xcc\xff\xca\xff\xe6\xff\xc9\xff\x00\x00\xd0\xff\xba\xff\xbb\xff\xd6\xff\x00\x00\xda\xff\x00\x00\xb9\xff\x00\x00\xcb\xff"#
+happyDefActions = HappyA# "\xe8\xff\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xe8\xff\xfd\xff\xe7\xff\x00\x00\xed\xff\x00\x00\xec\xff\xe9\xff\xea\xff\xeb\xff\x00\x00\xe6\xff\xac\xff\xfc\xff\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xfb\xff\xfa\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf0\xff\xf1\xff\xf2\xff\x00\x00\x00\x00\xe6\xff\xee\xff\xe4\xff\x00\x00\x00\x00\xef\xff\xd5\xff\xd4\xff\xdc\xff\xe3\xff\xb0\xff\xb6\xff\xb5\xff\xb3\xff\xb2\xff\xb1\xff\xb4\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd2\xff\x00\x00\xbc\xff\x00\x00\xc6\xff\xbb\xff\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\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\xd9\xff\xdb\xff\xc0\xff\xc1\xff\xc2\xff\xc3\xff\xbe\xff\xbf\xff\xbd\xff\xc4\xff\xc5\xff\xc7\xff\xc8\xff\x00\x00\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xe0\xff\xbc\xff\xba\xff\xb9\xff\xde\xff\x00\x00\xdf\xff\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\xe1\xff\xdd\xff\x00\x00\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\x00\x00\x00\x00\xd1\xff\x00\x00\x00\x00\xd7\xff\x00\x00\xd8\xff\x00\x00\x00\x00\x00\x00\xce\xff\xcf\xff\x00\x00\x00\x00\xcc\xff\xca\xff\xe6\xff\xc9\xff\x00\x00\xd0\xff\xb8\xff\xb9\xff\xd6\xff\x00\x00\xda\xff\x00\x00\xb7\xff\x00\x00\xcb\xff"#
 
 happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x22\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x27\x00\x02\x00\x24\x00\x27\x00\x05\x00\x27\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x09\x00\x0a\x00\x15\x00\x16\x00\x06\x00\x18\x00\x19\x00\x38\x00\x1b\x00\x1a\x00\x38\x00\x1e\x00\x1f\x00\x42\x00\x21\x00\x01\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x27\x00\x02\x00\x2b\x00\x03\x00\x05\x00\x2e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x38\x00\x39\x00\x09\x00\x0a\x00\x27\x00\x16\x00\x17\x00\x3d\x00\x3e\x00\x3f\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x38\x00\x39\x00\x00\x00\x27\x00\x02\x00\x01\x00\x06\x00\x05\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x20\x00\x38\x00\x39\x00\x01\x00\x07\x00\x08\x00\x06\x00\x27\x00\x0b\x00\x3c\x00\x0d\x00\x0e\x00\x10\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x06\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x3a\x00\x38\x00\x39\x00\x27\x00\x28\x00\x03\x00\x04\x00\x03\x00\x04\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x3a\x00\x28\x00\x27\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x3a\x00\x28\x00\x03\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x3c\x00\x38\x00\x39\x00\x3a\x00\x27\x00\x28\x00\x3c\x00\x28\x00\x2a\x00\x31\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x27\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x27\x00\x02\x00\x28\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x29\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x27\x00\x28\x00\x27\x00\x03\x00\x37\x00\x02\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x2c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x02\x00\x38\x00\x39\x00\x27\x00\x28\x00\x27\x00\x01\x00\x27\x00\x31\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x38\x00\x39\x00\x27\x00\x28\x00\x01\x00\x3c\x00\x28\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x28\x00\x27\x00\x37\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x01\x00\x27\x00\x02\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x02\x00\x33\x00\x34\x00\x35\x00\x36\x00\x27\x00\x38\x00\x39\x00\x01\x00\xff\xff\x02\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x27\x00\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x2f\x00\x30\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\x38\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\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\x00\x00\x0e\x00\x02\x00\xff\xff\xff\xff\x05\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\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"#
+happyCheck = HappyA# "\xff\xff\x22\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x00\x00\x27\x00\x02\x00\x02\x00\x27\x00\x05\x00\x05\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x24\x00\x15\x00\x16\x00\x27\x00\x18\x00\x19\x00\x06\x00\x1b\x00\x1a\x00\x3a\x00\x1e\x00\x1f\x00\x3a\x00\x21\x00\x44\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x27\x00\x02\x00\x2b\x00\x03\x00\x05\x00\x2e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x01\x00\x3a\x00\x3b\x00\x27\x00\x16\x00\x17\x00\x09\x00\x0a\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x1d\x00\x3a\x00\x3b\x00\x09\x00\x0a\x00\x07\x00\x08\x00\x03\x00\x04\x00\x0b\x00\x27\x00\x0d\x00\x0e\x00\x3f\x00\x40\x00\x41\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x20\x00\x3a\x00\x3b\x00\x01\x00\x07\x00\x08\x00\x06\x00\x27\x00\x0b\x00\x01\x00\x0d\x00\x0e\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x06\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x03\x00\x04\x00\x06\x00\x3e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x3c\x00\x3c\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x27\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x3c\x00\x28\x00\x28\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x03\x00\x3a\x00\x3b\x00\x3c\x00\x27\x00\x28\x00\x2a\x00\x28\x00\x31\x00\x3d\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x27\x00\x27\x00\x03\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x27\x00\x29\x00\x28\x00\x39\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x2c\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x27\x00\x02\x00\x27\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x31\x00\x3a\x00\x3b\x00\x27\x00\x28\x00\x01\x00\x3e\x00\x28\x00\x3e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x3c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x01\x00\x39\x00\x01\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x27\x00\x01\x00\x27\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\x45\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x3b\x00\x02\x00\x01\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x02\x00\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x27\x00\x3a\x00\x27\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x2f\x00\x30\x00\xff\xff\xff\xff\x35\x00\x36\x00\x3f\x00\x40\x00\x41\x00\x3a\x00\x43\x00\x3a\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\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x07\x00\x08\x00\x07\x00\x08\x00\x0b\x00\xff\xff\x0b\x00\x0e\x00\xff\xff\x0e\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x43\x00\x02\x00\x45\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
 
 happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x12\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x5d\x00\x02\x00\x56\x00\x5d\x00\x03\x00\x57\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa4\x00\x8e\x00\x40\x00\x41\x00\xad\x00\x42\x00\x43\x00\x67\x00\x44\x00\x77\x00\x67\x00\x45\x00\x46\x00\x13\x00\x47\x00\xaa\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x5d\x00\x08\x00\x4d\x00\x90\x00\x03\x00\x4e\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x78\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x88\x00\x67\x00\x68\x00\x8d\x00\x8e\x00\x5d\x00\x91\x00\x92\x00\x05\x00\x06\x00\x07\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x93\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x7a\x00\x67\x00\x68\x00\x0b\x00\x5d\x00\x08\x00\x53\x00\x30\x00\x03\x00\x31\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x2f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xa4\x00\x67\x00\x68\x00\x1f\x00\x95\x00\x34\x00\x1b\x00\x5d\x00\x35\x00\xb2\x00\xb0\x00\x36\x00\x17\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x18\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xac\x00\x67\x00\x68\x00\x5d\x00\x9b\x00\x13\x00\x10\x00\x0f\x00\x10\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x9c\x00\xb0\x00\xa7\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xaa\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x86\x00\x98\x00\x9f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa1\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x9e\x00\x67\x00\x68\x00\x80\x00\x5d\x00\xad\x00\xa0\x00\x8c\x00\xa2\x00\x8d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x95\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x82\x00\x84\x00\x8b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x88\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x99\x00\x67\x00\x68\x00\x5d\x00\x83\x00\x75\x00\x6a\x00\x76\x00\x7d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x7f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x53\x00\x67\x00\x68\x00\x5d\x00\x85\x00\x55\x00\x5b\x00\x58\x00\x33\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x5c\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x1a\x00\x67\x00\x68\x00\x5d\x00\x7e\x00\x1a\x00\x2e\x00\x2d\x00\x2f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x1e\x00\x1b\x00\x1d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x15\x00\x16\x00\x0b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xff\xff\x0d\x00\x63\x00\x64\x00\x65\x00\x66\x00\x5d\x00\x67\x00\x68\x00\x0e\x00\x00\x00\x0f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x5d\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x00\x00\x67\x00\x60\x00\x61\x00\x05\x00\x06\x00\x07\x00\x00\x00\x0a\x00\x00\x00\xfe\xff\x67\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x95\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x99\x00\x36\x00\x95\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x96\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x80\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x89\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x73\x00\x00\x00\x36\x00\x4f\x00\x34\x00\xb2\x00\x34\x00\x35\x00\x50\x00\x35\x00\x36\x00\x00\x00\x36\x00\xae\x00\x34\x00\xa5\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\xa7\x00\x34\x00\xa8\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x9c\x00\x34\x00\xa2\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x93\x00\x34\x00\x86\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x68\x00\x34\x00\x6a\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6b\x00\x34\x00\x6c\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6d\x00\x34\x00\x6e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6f\x00\x34\x00\x70\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x71\x00\x34\x00\x72\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x78\x00\x34\x00\x79\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x7b\x00\x34\x00\x4e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x51\x00\x34\x00\x58\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x59\x00\x34\x00\x33\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x07\x00\x36\x00\x08\x00\x00\x00\x00\x00\x03\x00\x00\x00\x05\x00\x06\x00\x07\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+happyTable = HappyA# "\x00\x00\x12\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x16\x00\x5d\x00\x08\x00\x02\x00\x5d\x00\x03\x00\x03\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x56\x00\x40\x00\x41\x00\x57\x00\x42\x00\x43\x00\xb1\x00\x44\x00\x7b\x00\x69\x00\x45\x00\x46\x00\x69\x00\x47\x00\x13\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x0b\x00\x5d\x00\x08\x00\x4d\x00\x94\x00\x03\x00\x4e\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x7c\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xae\x00\x69\x00\x6a\x00\x5d\x00\x95\x00\x96\x00\xa8\x00\x92\x00\x8c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x7e\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x97\x00\x69\x00\x6a\x00\x91\x00\x92\x00\x99\x00\x34\x00\x13\x00\x10\x00\x35\x00\x5d\x00\xb4\x00\x36\x00\x05\x00\x06\x00\x07\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x53\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xa8\x00\x69\x00\x6a\x00\x31\x00\x99\x00\x34\x00\x30\x00\x5d\x00\x35\x00\x2f\x00\x9d\x00\x36\x00\x1f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x17\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x1b\x00\x69\x00\x6a\x00\x5d\x00\x9f\x00\x0f\x00\x10\x00\x18\x00\xb6\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xb4\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\xa0\x00\xb0\x00\x1a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xab\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x8a\x00\xae\x00\x9c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa2\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xa3\x00\x69\x00\x6a\x00\x84\x00\x5d\x00\xb1\x00\xa6\x00\x90\x00\x91\x00\xa5\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa4\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x99\x00\x86\x00\x6c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x88\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x9d\x00\x69\x00\x6a\x00\x5d\x00\x87\x00\x79\x00\x8c\x00\x8f\x00\x7a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x81\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x83\x00\x69\x00\x6a\x00\x5d\x00\x89\x00\x55\x00\x53\x00\x58\x00\x5b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x5c\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x33\x00\x69\x00\x6a\x00\x5d\x00\x82\x00\x1a\x00\x2e\x00\x2d\x00\x1f\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x2f\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x1a\x00\x1d\x00\x1a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1e\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x1b\x00\x15\x00\x16\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0b\x00\xff\xff\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x6a\x00\x0d\x00\x0e\x00\x00\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0f\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x5d\x00\x69\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x60\x00\x61\x00\x00\x00\x00\x00\x65\x00\x66\x00\x05\x00\x06\x00\x07\x00\x69\x00\x0a\x00\x69\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x99\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x9a\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x84\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x8d\x00\x00\x00\x36\x00\x4f\x00\x34\x00\x00\x00\x00\x00\x35\x00\x77\x00\x00\x00\x36\x00\x4f\x00\x34\x00\xb6\x00\x34\x00\x35\x00\x50\x00\x35\x00\x36\x00\x00\x00\x36\x00\xb2\x00\x34\x00\xa9\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\xab\x00\x34\x00\xac\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\xa0\x00\x34\x00\xa6\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x97\x00\x34\x00\x8a\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6a\x00\x34\x00\x6c\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6d\x00\x34\x00\x6e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x6f\x00\x34\x00\x70\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x71\x00\x34\x00\x72\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x73\x00\x34\x00\x74\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x75\x00\x34\x00\x76\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x7c\x00\x34\x00\x7d\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x7f\x00\x34\x00\x4e\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x51\x00\x34\x00\x58\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x59\x00\x34\x00\x33\x00\x34\x00\x35\x00\x00\x00\x35\x00\x36\x00\x00\x00\x36\x00\x05\x00\x06\x00\x07\x00\x07\x00\x0a\x00\x08\x00\xfe\xff\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
-happyReduceArr = Happy_Data_Array.array (1, 81) [
+happyReduceArr = Happy_Data_Array.array (1, 83) [
 	(1 , happyReduce_1),
 	(2 , happyReduce_2),
 	(3 , happyReduce_3),
@@ -235,10 +235,12 @@
 	(78 , happyReduce_78),
 	(79 , happyReduce_79),
 	(80 , happyReduce_80),
-	(81 , happyReduce_81)
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83)
 	]
 
-happy_n_terms = 68 :: Int
+happy_n_terms = 70 :: Int
 happy_n_nonterms = 17 :: Int
 
 happyReduce_1 = happySpecReduce_1  0# happyReduction_1
@@ -808,7 +810,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpLT happy_var_1 happy_var_3
+		 (Op ShL happy_var_1 happy_var_3
 	)}}
 
 happyReduce_61 = happySpecReduce_3  11# happyReduction_61
@@ -818,7 +820,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpGT happy_var_1 happy_var_3
+		 (Op ShR happy_var_1 happy_var_3
 	)}}
 
 happyReduce_62 = happySpecReduce_3  11# happyReduction_62
@@ -828,7 +830,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpLE happy_var_1 happy_var_3
+		 (Op OpLT happy_var_1 happy_var_3
 	)}}
 
 happyReduce_63 = happySpecReduce_3  11# happyReduction_63
@@ -838,7 +840,7 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
-		 (Op OpGE happy_var_1 happy_var_3
+		 (Op OpGT happy_var_1 happy_var_3
 	)}}
 
 happyReduce_64 = happySpecReduce_3  11# happyReduction_64
@@ -848,23 +850,43 @@
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn15
+		 (Op OpLE happy_var_1 happy_var_3
+	)}}
+
+happyReduce_65 = happySpecReduce_3  11# happyReduction_65
+happyReduction_65 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	happyIn15
+		 (Op OpGE 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 happyOut11 happy_x_1 of { happy_var_1 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	happyIn15
 		 (Op OpEQ happy_var_1 happy_var_3
 	)}}
 
-happyReduce_65 = happySpecReduce_0  12# happyReduction_65
-happyReduction_65  =  happyIn16
+happyReduce_67 = happySpecReduce_0  12# happyReduction_67
+happyReduction_67  =  happyIn16
 		 ([]
 	)
 
-happyReduce_66 = happySpecReduce_1  12# happyReduction_66
-happyReduction_66 happy_x_1
+happyReduce_68 = happySpecReduce_1  12# happyReduction_68
+happyReduction_68 happy_x_1
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
 	happyIn16
 		 ([happy_var_1]
 	)}
 
-happyReduce_67 = happySpecReduce_3  12# happyReduction_67
-happyReduction_67 happy_x_3
+happyReduce_69 = happySpecReduce_3  12# happyReduction_69
+happyReduction_69 happy_x_3
 	happy_x_2
 	happy_x_1
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
@@ -873,13 +895,13 @@
 		 (happy_var_1:happy_var_3
 	)}}
 
-happyReduce_68 = happySpecReduce_0  13# happyReduction_68
-happyReduction_68  =  happyIn17
+happyReduce_70 = happySpecReduce_0  13# happyReduction_70
+happyReduction_70  =  happyIn17
 		 ([]
 	)
 
-happyReduce_69 = happySpecReduce_3  13# happyReduction_69
-happyReduction_69 happy_x_3
+happyReduce_71 = happySpecReduce_3  13# happyReduction_71
+happyReduction_71 happy_x_3
 	happy_x_2
 	happy_x_1
 	 =  case happyOut11 happy_x_1 of { happy_var_1 -> 
@@ -888,8 +910,8 @@
 		 ([(happy_var_1,happy_var_3)]
 	)}}
 
-happyReduce_70 = happyReduce 5# 13# happyReduction_70
-happyReduction_70 (happy_x_5 `HappyStk`
+happyReduce_72 = happyReduce 5# 13# happyReduction_72
+happyReduction_72 (happy_x_5 `HappyStk`
 	happy_x_4 `HappyStk`
 	happy_x_3 `HappyStk`
 	happy_x_2 `HappyStk`
@@ -902,74 +924,74 @@
 		 ((happy_var_1,happy_var_3):happy_var_5
 	) `HappyStk` happyRest}}}
 
-happyReduce_71 = happySpecReduce_1  14# happyReduction_71
-happyReduction_71 happy_x_1
+happyReduce_73 = happySpecReduce_1  14# happyReduction_73
+happyReduction_73 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
 	happyIn18
 		 (MkInt happy_var_1
 	)}
 
-happyReduce_72 = happySpecReduce_1  14# happyReduction_72
-happyReduction_72 happy_x_1
+happyReduce_74 = happySpecReduce_1  14# happyReduction_74
+happyReduction_74 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenBigInt happy_var_1) -> 
 	happyIn18
 		 (MkBigInt happy_var_1
 	)}
 
-happyReduce_73 = happySpecReduce_1  14# happyReduction_73
-happyReduction_73 happy_x_1
+happyReduce_75 = happySpecReduce_1  14# happyReduction_75
+happyReduction_75 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
 	happyIn18
 		 (MkChar happy_var_1
 	)}
 
-happyReduce_74 = happySpecReduce_1  14# happyReduction_74
-happyReduction_74 happy_x_1
+happyReduce_76 = happySpecReduce_1  14# happyReduction_76
+happyReduction_76 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
 	happyIn18
 		 (MkBool happy_var_1
 	)}
 
-happyReduce_75 = happySpecReduce_1  14# happyReduction_75
-happyReduction_75 happy_x_1
+happyReduce_77 = happySpecReduce_1  14# happyReduction_77
+happyReduction_77 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
 	happyIn18
 		 (MkFloat happy_var_1
 	)}
 
-happyReduce_76 = happySpecReduce_1  14# happyReduction_76
-happyReduction_76 happy_x_1
+happyReduce_78 = happySpecReduce_1  14# happyReduction_78
+happyReduction_78 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenBigFloat happy_var_1) -> 
 	happyIn18
 		 (MkBigFloat happy_var_1
 	)}
 
-happyReduce_77 = happySpecReduce_1  14# happyReduction_77
-happyReduction_77 happy_x_1
+happyReduce_79 = happySpecReduce_1  14# happyReduction_79
+happyReduction_79 happy_x_1
 	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
 	happyIn18
 		 (MkString happy_var_1
 	)}
 
-happyReduce_78 = happySpecReduce_1  14# happyReduction_78
-happyReduction_78 happy_x_1
+happyReduce_80 = happySpecReduce_1  14# happyReduction_80
+happyReduction_80 happy_x_1
 	 =  happyIn18
 		 (MkUnit
 	)
 
-happyReduce_79 = happySpecReduce_1  14# happyReduction_79
-happyReduction_79 happy_x_1
+happyReduce_81 = happySpecReduce_1  14# happyReduction_81
+happyReduction_81 happy_x_1
 	 =  happyIn18
 		 (MkUnused
 	)
 
-happyReduce_80 = happyMonadReduce 0# 15# happyReduction_80
-happyReduction_80 (happyRest) tk
+happyReduce_82 = happyMonadReduce 0# 15# happyReduction_82
+happyReduction_82 (happyRest) tk
 	 = happyThen (( getLineNo)
 	) (\r -> happyReturn (happyIn19 r))
 
-happyReduce_81 = happyMonadReduce 0# 16# happyReduction_81
-happyReduction_81 (happyRest) tk
+happyReduce_83 = happyMonadReduce 0# 16# happyReduction_83
+happyReduction_83 (happyRest) tk
 	 = happyThen (( getFileName)
 	) (\r -> happyReturn (happyIn20 r))
 
@@ -977,7 +999,7 @@
 	= lexer(\tk -> 
 	let cont i = happyDoAction i tk action sts stk in
 	case tk of {
-	TokenEOF -> happyDoAction 67# tk action sts stk;
+	TokenEOF -> happyDoAction 69# tk action sts stk;
 	TokenName happy_dollar_dollar -> cont 1#;
 	TokenString happy_dollar_dollar -> cont 2#;
 	TokenInt happy_dollar_dollar -> cont 3#;
@@ -1030,20 +1052,22 @@
 	TokenEQ -> cont 50#;
 	TokenLE -> cont 51#;
 	TokenGE -> cont 52#;
-	TokenLT -> cont 53#;
-	TokenGT -> cont 54#;
-	TokenColon -> cont 55#;
-	TokenProj -> cont 56#;
-	TokenSemi -> cont 57#;
-	TokenComma -> cont 58#;
-	TokenBar -> cont 59#;
-	TokenArrow -> cont 60#;
-	TokenCInclude -> cont 61#;
-	TokenExtern -> cont 62#;
-	TokenExport -> cont 63#;
-	TokenCType -> cont 64#;
-	TokenInclude -> cont 65#;
-	TokenInline -> cont 66#;
+	TokenShL -> cont 53#;
+	TokenShR -> cont 54#;
+	TokenLT -> cont 55#;
+	TokenGT -> cont 56#;
+	TokenColon -> cont 57#;
+	TokenProj -> cont 58#;
+	TokenSemi -> cont 59#;
+	TokenComma -> cont 60#;
+	TokenBar -> cont 61#;
+	TokenArrow -> cont 62#;
+	TokenCInclude -> cont 63#;
+	TokenExtern -> cont 64#;
+	TokenExport -> cont 65#;
+	TokenCType -> cont 66#;
+	TokenInclude -> cont 67#;
+	TokenInline -> cont 68#;
 	_ -> happyError' tk
 	})
 
diff --git a/epic.cabal b/epic.cabal
--- a/epic.cabal
+++ b/epic.cabal
@@ -1,5 +1,5 @@
 Name:		epic
-Version:	0.1.4
+Version:	0.1.5
 Author:		Edwin Brady
 License:	BSD3
 License-file:	LICENSE
diff --git a/evm/closure.c b/evm/closure.c
--- a/evm/closure.c
+++ b/evm/closure.c
@@ -7,16 +7,16 @@
 
 VAL one;
 VAL* zcon;
-void* blob = NULL;
-int blobnext = 0;
+//void* blob = NULL;
+//int blobnext = 0;
 
-void* FASTMALLOC(int size) {
+/*void* FASTMALLOC(int size) {
     if (blob == NULL) { blob = malloc(10001000); }
     void* newblock = blob+blobnext;
     blobnext+=((size+4) & 0xfffffffc);
     if (blobnext>10000000) blobnext=0;
     return newblock;
-}
+    }*/
 
 void dumpClosureA(Closure* c, int rec);
 
@@ -38,6 +38,7 @@
 }
 
 void dumpClosureA(Closure* c, int rec) {
+    c = DO_EVAL(c,0);
     switch(GETTY(c)) {
     case FUN:
 	printf("FUN[");
@@ -50,7 +51,7 @@
 	dumpCon((con*)c->info, rec);
 	break;
     case INT:
-	if (!rec) { printf("INT[%d", ((int)c)>>1); } else { printf("[%d", ((int)c)>>1); }
+	if (!rec) { printf("INT[%ld", ((eint)c)>>1); } else { printf("[%ld", ((eint)c)>>1); }
 	break;
     case BIGINT:
 	printf("BIGINT[");
@@ -74,7 +75,7 @@
 	printf("FREEVAR[");
 	break;
     default:
-	printf("[%d,%d", GETTY(c), (int)c->info);
+	printf("[%d,%ld", GETTY(c), (eint)c->info);
     }
     printf("]");
 }
@@ -112,6 +113,7 @@
 
     SETTY(c, FUN);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -128,6 +130,7 @@
     }
     SETTY(c, CON);
     c->info = (void*)cn;
+    EREADY(c);
     return c;
 }
 
@@ -140,6 +143,7 @@
     cn->args[0] = a1;
     SETTY(c,CON);
     c->info = (void*)cn;
+    EREADY(c);
     return c;
 }
 
@@ -153,6 +157,7 @@
     cn->args[1] = a2;
     SETTY(c,CON);
     c->info = (void*)cn;
+    EREADY(c);
     return c;
 }
 
@@ -167,6 +172,7 @@
     cn->args[2] = a3;
     SETTY(c,CON);
     c->info = (void*)cn;
+    EREADY(c);
     return c;
 }
 
@@ -182,6 +188,7 @@
     cn->args[3] = a4;
     SETTY(c,CON);
     c->info = (void*)cn;
+    EREADY(c);
     return c;
 }
 
@@ -198,6 +205,7 @@
     cn->args[4] = a5;
     SETTY(c,CON);
     c->info = (void*)cn;
+    EREADY(c);
     return c;
 }
 
@@ -366,6 +374,7 @@
 
     SETTY(c,THUNK);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -385,6 +394,7 @@
 
     SETTY(c,THUNK);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -405,6 +415,7 @@
 
     SETTY(c,THUNK);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -426,6 +437,7 @@
 
     SETTY(c,THUNK);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -448,6 +460,7 @@
 
     SETTY(c,THUNK);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -471,6 +484,7 @@
 
     SETTY(c,THUNK);
     c->info = (void*)fn;
+    EREADY(c);
     return c;
 }
 
@@ -638,6 +652,7 @@
     default:
 	assert(0); // Can't happen
     }
+    EREADY(x);
     return x;
 }
 
@@ -669,6 +684,7 @@
 
     SETTY(c, BIGINT);
     c->info = (void*)bigint;
+    EREADY(c);
     return c;
 }
 
@@ -682,13 +698,14 @@
 
     SETTY(c, BIGINT);
     c->info = (void*)bigint;
+    EREADY(c);
     return c;
 }
 
 /*
 int GETINT(void* x)
 {
-    return ((int)x)>>1;
+    return ((eint)x)>>1;
 }
 */
 
@@ -709,6 +726,7 @@
 // Since MKSTR is used to build strings from foreign calls, the string
 // itself will already have been allocated so we just want the closure.
     c->info=x;
+    EREADY(c);
     return c;
 }
 
@@ -717,6 +735,7 @@
     VAL c = MKCLOSURE;
     SETTY(c, PTR);
     c->info = x;
+    EREADY(c);
     return c;
 }
 
@@ -737,6 +756,7 @@
     VAL c = MKCLOSURE;
     SETTY(c, FREEVAR);
     c->info = (void*)x;
+    EREADY(c);
     return c;
 }
 
@@ -748,4 +768,5 @@
     for(i=0;i<255;++i) {
 	zcon[i] = CONSTRUCTORn(i,0,0);
     }
+    EREADY(zcon);
 }
diff --git a/evm/closure.h b/evm/closure.h
--- a/evm/closure.h
+++ b/evm/closure.h
@@ -9,14 +9,20 @@
 # endif
 
 #include <gc/gc.h>
+
+//#include <emalloc.h>
 #include <gmp.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdint.h>
 
-#define EMALLOC GC_MALLOC
-#define EREALLOC GC_REALLOC
-#define EFREE GC_FREE
+#define EMALLOC GC_malloc
+#define EREADY(x) 
+#define EREALLOC GC_realloc
+#define EFREE GC_free
 
+typedef intptr_t eint;
+
 //#define EMALLOC malloc
 //#define EREALLOC realloc
 //#define EFREE free
@@ -27,9 +33,9 @@
 #define MKCLOSURE (Closure*)EMALLOC(sizeof(Closure))
 #define MKUNIT (void*)0
 
-#define INTOP(op,x,y) MKINT((((int)x)>>1) op (((int)y)>>1))
-#define ADD(x,y) (void*)(((int)x)+(((int)y)-1))
-#define MULT(x,y) (MKINT((((int)x)>>1) * (((int)y)>>1)))
+#define INTOP(op,x,y) MKINT((((eint)x)>>1) op (((eint)y)>>1))
+#define ADD(x,y) (void*)(((eint)x)+(((eint)y)-1))
+#define MULT(x,y) (MKINT((((eint)x)>>1) * (((eint)y)>>1)))
 #define CHECKEVALUATED(x) if(ISFUN(x) || ISTHUNK(x) \
     || ISFV(x)) return 0;
 
@@ -47,7 +53,8 @@
     STRING, 
     UNIT, 
     PTR,
-    FREEVAR 
+    FREEVAR,
+    IND
 } ClosureType;
 
 typedef struct {
@@ -68,7 +75,7 @@
 
 #define GETTY(x) (ISINT(x) ? INT : ((ClosureType)(((x)->ty) >> 24)))
 #define QGETTY(x) ((ClosureType)(((x)->ty) >> 24))
-#define SETTY(x,t) (x)->ty = (((int)t) << 24)
+#define SETTY(x,t) (x)->ty = (((eint)t) << 24)
 
 #define REF(x) x
 #define DEREF(x) 
@@ -99,7 +106,7 @@
 #define ARITY(x) (((con*)((Closure*)x)->info)->tag >> 16)
 
 #define ISCON(x) (GETTY(((Closure*)(x)))==CON)
-#define ISINT(x) ((((int)x)&1) == 1)
+#define ISINT(x) ((((eint)x)&1) == 1)
 #define ISTHUNK(x) (GETTY(((Closure*)(x)))==THUNK)
 #define ISFUN(x) (GETTY(((Closure*)(x)))==FUN)
 #define ISFV(x) (GETTY(((Closure*)(x)))==FREEVAR)
@@ -167,10 +174,13 @@
 extern VAL* zcon;
 
 #define MKINT(x) ((void*)((x)<<1)+1)
-#define GETINT(x) ((int)(x)>>1)
+#define GETINT(x) ((eint)(x)>>1)
 #define GETPTR(x) ((void*)(((VAL)(x))->info))
 #define GETSTR(x) ((char*)(((VAL)(x))->info))
 
+#define INTTOEINT(x) ((eint)(x))
+#define EINTTOINT(x) ((int)(x))
+
 //void* MKINT(int x);
 void* NEWBIGINT(char* bigint);
 void* MKBIGINT(mpz_t* bigint);
@@ -200,7 +210,8 @@
     ((con*)((VAL)c+1))->args = (void*)c+sizeof(Closure)+sizeof(con); \
     ((con*)((VAL)c+1))->args[0] = x; \
     SETTY(((VAL)c),CON);	 \
-    ((VAL)c)->info = (void*)((con*)((VAL)c+1));
+    ((VAL)c)->info = (void*)((con*)((VAL)c+1)); \
+    EREADY(c);
 
 #define CONSTRUCTOR2m(c,t,x,y)		\
     c=EMALLOC(sizeof(Closure)+sizeof(con)+2*sizeof(VAL)); \
@@ -209,7 +220,8 @@
     ((con*)((VAL)c+1))->args[0] = x; \
     ((con*)((VAL)c+1))->args[1] = y; \
     SETTY(((VAL)c),CON);	 \
-    ((VAL)c)->info = (void*)((con*)((VAL)c+1));
+    ((VAL)c)->info = (void*)((con*)((VAL)c+1)); \
+    EREADY(c);
 
 #define CONSTRUCTOR3m(c,t,x,y,z)		\
     c=EMALLOC(sizeof(Closure)+sizeof(con)+3*sizeof(VAL)); \
@@ -219,7 +231,8 @@
     ((con*)((VAL)c+1))->args[1] = y; \
     ((con*)((VAL)c+1))->args[2] = z; \
     SETTY(((VAL)c),CON);	 \
-    ((VAL)c)->info = (void*)((con*)((VAL)c+1));
+    ((VAL)c)->info = (void*)((con*)((VAL)c+1)); \
+    EREADY(c);
 
 #define CONSTRUCTOR4m(c,t,x,y,z,w)			  \
     c=EMALLOC(sizeof(Closure)+sizeof(con)+4*sizeof(VAL)); \
@@ -230,7 +243,8 @@
     ((con*)((VAL)c+1))->args[2] = z; \
     ((con*)((VAL)c+1))->args[3] = w; \
     SETTY(((VAL)c),CON);	 \
-    ((VAL)c)->info = (void*)((con*)((VAL)c+1));
+    ((VAL)c)->info = (void*)((con*)((VAL)c+1)); \
+    EREADY(c);
 
 #define CONSTRUCTOR5m(c,t,x,y,z,w,v)			  \
     c=EMALLOC(sizeof(Closure)+sizeof(con)+5*sizeof(VAL)); \
@@ -242,7 +256,8 @@
     ((con*)((VAL)c+1))->args[3] = w; \
     ((con*)((VAL)c+1))->args[4] = v; \
     SETTY(((VAL)c),CON);	 \
-    ((VAL)c)->info = (void*)((con*)((VAL)c+1));
+    ((VAL)c)->info = (void*)((con*)((VAL)c+1)); \
+    EREADY(c);
 
 //    s = EMALLOC(sizeof(Closure)+strlen(x)+sizeof(char)+1);	
 
diff --git a/evm/libevm.a b/evm/libevm.a
Binary files a/evm/libevm.a and b/evm/libevm.a differ
diff --git a/evm/mainprog.c b/evm/mainprog.c
--- a/evm/mainprog.c
+++ b/evm/mainprog.c
@@ -9,11 +9,20 @@
 
 void* _do__U_main();
 
+void** _epic_top_of_stack;
+
 int main(int argc, char* argv[]) {
+    void* stacktop = NULL;
+    _epic_top_of_stack = (void**)&stacktop;
+
     GC_init();
     init_evm();
 //    GC_use_entire_heap = 1;
-//    GC_free_space_divisor = 1;
+//    GC_free_space_divisor = 2;
+//    GC_enable_incremental();
+//    GC_time_limit = GC_TIME_UNLIMITED;
+
+//    GC_full_freq=15;
 //    fprintf(stderr, "Heap: %d\n", GC_get_heap_size());
     GC_expand_hp(1000000);
 //    fprintf(stderr, "Heap: %d\n", GC_get_heap_size());
diff --git a/evm/stdfuns.c b/evm/stdfuns.c
--- a/evm/stdfuns.c
+++ b/evm/stdfuns.c
@@ -1,6 +1,7 @@
 #include "stdfuns.h"
 #include "closure.h"
 #include <stdlib.h>
+#include <unistd.h>
 #include <gmp.h>
 #include <string.h>
 #include <sys/time.h>
