diff --git a/Codec/TPTP/Base.hs b/Codec/TPTP/Base.hs
--- a/Codec/TPTP/Base.hs
+++ b/Codec/TPTP/Base.hs
@@ -5,6 +5,8 @@
   , OverlappingInstances
   #-}
 
+#include "../../MACROS.h"
+
 module Codec.TPTP.Base where
     
 import Data.Generics
@@ -78,115 +80,79 @@
 -- Don't let the type context of these wrapper function confuse you :) -- the important special case is just:
 --
 -- @\(\.\<\=\>\.\) :: 'Formula' -> 'Formula' -> 'Formula'@
-(.<=>.) :: 
-           (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-           (F c) -> (F c) -> F c
+(.<=>.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .<=>. y = (F . point) $ BinOp  x (:<=>:) y  
   
             
 -- | Implication
-(.=>.) :: 
-          (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-          (F c) -> (F c) -> F c
+(.=>.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .=>.  y = (F . point) $ BinOp  x (:=>:)  y  
             
 -- | Reverse implication
-(.<=.) :: 
-          (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-          (F c) -> (F c) -> F c
+(.<=.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .<=.  y = (F . point) $ BinOp  x (:<=:)  y  
             
 -- | Disjunction/OR
-(.|.) :: 
-         (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-         (F c) -> (F c) -> F c
+(.|.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .|.   y = (F . point) $ BinOp  x (:|:)   y  
             
 -- | Conjunction/AND
-(.&.) :: 
-         (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-         (F c) -> (F c) -> F c
+(.&.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .&.   y = (F . point) $ BinOp  x (:&:)   y  
             
 -- | XOR
-(.<~>.) :: 
-           (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-           (F c) -> (F c) -> F c
+(.<~>.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .<~>. y = (F . point) $ BinOp  x (:<~>:) y  
             
 -- | NOR
-(.~|.) :: 
-          (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-          (F c) -> (F c) -> F c
+(.~|.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .~|.  y = (F . point) $ BinOp  x (:~|:)  y  
             
             
             
 -- | NAND
-(.~&.) :: 
-          (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-          (F c) -> (F c) -> F c
+(.~&.) :: POINTED_FORMULA(c) => (F c) -> (F c) -> F c
 x .~&.  y = (F . point) $ BinOp  x (:~&:)  y  
             
             
 -- | Negation
-(.~.) :: 
-         (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-         (F c) -> F c
+(.~.) :: POINTED_FORMULA(c) => (F c) -> F c
 (.~.) x = (F . point) $ (:~:) x
           
 -- | Equality
-(.=.) :: 
-         (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-         (T c) -> (T c) -> F c
+(.=.) :: POINTED_FORMULA(c) => (T c) -> (T c) -> F c
 x .=. y   = (F . point) $ InfixPred x (:=:)   y 
             
 -- | Inequality
-(.!=.) :: 
-          (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-          (T c) -> (T c) -> F c
+(.!=.) :: POINTED_FORMULA(c) => (T c) -> (T c) -> F c
 x .!=. y  = (F . point) $ InfixPred x (:!=:) y 
             
 -- | Universal quantification
-for_all :: 
-           (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-           [V] -> (F c) -> F c
+for_all :: POINTED_FORMULA(c) => [V] -> (F c) -> F c
 for_all vars x = (F . point) $ Quant All vars x
                  
 -- | Existential quantification
-exists :: 
-          (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-          [V] -> (F c) -> F c
+exists :: POINTED_FORMULA(c) => [V] -> (F c) -> F c
 exists vars x = (F . point) $ Quant Exists vars x
                 
 -- | Predicate symbol application
-pApp :: 
-        (Pointed (Formula0 (T c) (F c)) (c (Formula0 (T c) (F c)))) =>
-        AtomicWord -> [T c] -> F c
+pApp :: POINTED_FORMULA(c) => AtomicWord -> [T c] -> F c
 pApp x args = (F . point) $ PredApp x args
               
 -- | Variable
-var :: 
-       (Pointed (Term0 (T c)) (c (Term0 (T c)))) =>
-       V -> T c
+var :: POINTED_TERM(c) => V -> T c
 var = (T . point) . Var
       
 -- | Function symbol application (constants are encoded as nullary functions)
-fApp :: 
-        (Pointed (Term0 (T c)) (c (Term0 (T c)))) =>
-        AtomicWord -> [T c] -> T c
+fApp :: POINTED_TERM(c) => AtomicWord -> [T c] -> T c
 fApp x args = (T . point) $ FunApp x args
               
 -- | Number literal
-numberLitTerm :: 
-                 (Pointed (Term0 (T c)) (c (Term0 (T c)))) =>
-                 Double -> T c
+numberLitTerm :: POINTED_TERM(c) => Double -> T c
 numberLitTerm = (T . point) . NumberLitTerm
                 
 -- | Double-quoted string literal, called /Distinct Object/ in TPTP's grammar 
-distinctObjectTerm :: 
-                      (Pointed (Term0 (T c)) (c (Term0 (T c)))) =>
-                      String -> T c
+distinctObjectTerm :: POINTED_TERM(c) => String -> T c
 distinctObjectTerm = (T . point) . DistinctObjectTerm
                      
 infixl 2  .<=>. ,  .=>. ,  .<=. ,  .<~>.
@@ -276,13 +242,8 @@
 -- | A line of a TPTP file: Annotated formula (with the comment string embbeded in the State monad ), comment or include statement
 type TPTP_Input_C = TPTP_Input_ (State [String])
 
--- | Forget comments in a line of a TPTP file decoreated with comments
-forgetTIC :: TPTP_Input_C -> TPTP_Input
-forgetTIC tic@(AFormula {}) = tic { formula = forgetFC (formula tic) }
-forgetTIC (Comment s) = Comment s
-forgetTIC (Include p aws) = Include p aws
-
--- | generalized TPTP_Input
+-- | generalized TPTP_Input -- problem deriving Data and Typable instance TODO
+-- other than that backward compatible
 data TPTP_Input_ c = 
    -- | Annotated formulae
    AFormula {
@@ -299,11 +260,11 @@
 deriving instance Ord (c (Formula0 (T c) (F c))) => Ord (TPTP_Input_ c)
 deriving instance Show (c (Formula0 (T c) (F c))) => Show (TPTP_Input_ c)
 deriving instance Read (c (Formula0 (T c) (F c))) => Read (TPTP_Input_ c)
-deriving instance (Typeable1 c, Data (c (Formula0 (T c) (F c)))) => Data (TPTP_Input_ c)
-instance Typeable1 c => Typeable (TPTP_Input_ c) where
-  typeOf ti = mkTyCon "TPTP_Input_" `mkTyConApp` [typeOf1 (runF $ formula ti)]
-              -- hopefully (runF $ formula ti) never gets evaluated
+-- ??? deriving instance (Typeable1 c, Data (c (Formula0 (T c) (F c)))) => Data (TPTP_Input_ c)
+-- ??? deriving instance (Typeable1 c, Typeable (c (Formula0 (T c) (F c)))) => Typeable (TPTP_Input_ c)
+-- TODO how do I derive Data and Typeable ??????
 
+
 -- | Annotations about the formulas origin                   
 data Annotations = NoAnnotations | Annotations GTerm UsefulInfo
                   deriving (Eq,Ord,Show,Read,Data,Typeable)
@@ -619,8 +580,8 @@
 instance (Monad m) => Pointed a (m a) where
     point = return
             
-instance Ord a => Pointed a (Set a) where
-    point = S.singleton
+-- instance Ord a => Pointed a (Set a) where
+--     point = S.singleton
             
 -- | This class is used in several utility functions involving 'F' and 'T'.
 --
diff --git a/Codec/TPTP/Import.hs b/Codec/TPTP/Import.hs
--- a/Codec/TPTP/Import.hs
+++ b/Codec/TPTP/Import.hs
@@ -1,14 +1,14 @@
 module Codec.TPTP.Import(parse,parseFile
-                        ,parseWithComment,parseWithCommentFile
                         ,Token(..)) where
-
+    
 
 import Lexer
 import Parser
-import ParserC
+import Parser2
 import Codec.TPTP.Base
-
+   
 
+    
 parse :: String -> [TPTP_Input]
 parse = parseTPTP . map snd . alexScanTokens
 
@@ -16,9 +16,9 @@
 parseFile x = parse `fmap` readFile x
 
 
-parseWithComment :: String -> [TPTP_Input_C]
-parseWithComment = parseTPTPwithComment . map snd . alexScanTokens
+parse2 :: String -> [TPTP_Input_C]
+parse2 = parseTPTPwithComment . map snd . alexScanTokens
 
-parseWithCommentFile :: FilePath -> IO [TPTP_Input_C]
-parseWithCommentFile x = parseWithComment `fmap` readFile x
+parse2File :: FilePath -> IO [TPTP_Input_C]
+parse2File x = parse2 `fmap` readFile x
 
diff --git a/Codec/TPTP/Pretty.hs b/Codec/TPTP/Pretty.hs
--- a/Codec/TPTP/Pretty.hs
+++ b/Codec/TPTP/Pretty.hs
@@ -24,26 +24,26 @@
 fsym = yellow . pretty
 
 --wtext :: String -> Doc
---wtext = white . text
-
+--wtext = white.text
+       
 prettyargs :: forall a. (Pretty a) => [a] -> Doc
 --prettyargs = encloseSep (wtext "(") (wtext ")") (wtext ",") . fmap pretty
 prettyargs = tupled . fmap pretty
 -- prettyargs [] = white $ text "()"
 -- prettyargs (x:xs) =
---     let pxs = fmap ((white (text ",") <+>) . pretty) xs in
-
---     align (fillSep $ [    white (text "(") <+> pretty x ]
---                     ++ pxs
---                     ++ [ white (text ")") ] )
-
+--     let pxs = fmap ((white (text ",") <+>) . pretty) xs in 
 
+--     align (fillSep $ [    white (text "(") <+> pretty x ] 
+--                     ++ pxs 
+--                     ++ [ white (text ")") ] ) 
+                        
+            
 -- | Carries information about the enclosing operation (for the purpose of printing stuff without parentheses if possible).
 data WithEnclosing a = WithEnclosing Enclosing a
-
+                     
 data Enclosing = EnclBinOp BinOp | EnclQuant | EnclNeg | EnclInfixPred InfixPred | EnclNothing
                deriving (Eq,Ord,Show,Data,Typeable,Read)
-
+                        
 unaryEncl :: Enclosing -> Bool
 unaryEncl EnclNeg = True
 unaryEncl EnclQuant = True
@@ -56,16 +56,16 @@
       ((EnclBinOp (:&:)),(EnclBinOp (:&:))) -> False
       ((EnclBinOp (:|:)),(EnclBinOp (:|:))) -> False
       ((EnclBinOp (:<~>:)),(EnclBinOp (:<~>:))) -> False
-
+      
       -- chains of quantifiers/negation don't need parentheses
-      _
-          | unaryEncl inner, unaryEncl outer
+      _ 
+          | unaryEncl inner, unaryEncl outer 
                 -> False
-
+                  
       _ -> prec inner <= prec outer
   where
     prec :: Enclosing -> Int
-    prec x = case x of
+    prec x = case x of 
                (EnclInfixPred _) -> 60
                (EnclNeg) -> 50
                (EnclQuant) -> 50
@@ -82,10 +82,10 @@
 
 maybeParens :: Enclosing -> Enclosing -> Doc -> Doc
 maybeParens inner outer | needsParens inner outer = parens
-maybeParens _ _ = id
-
+maybeParens _ _ = id 
+                   
 instance Pretty TPTP_Input where
-    pretty AFormula{..}
+    pretty AFormula{..} 
         = (text) "Formula " <+> (dullwhite.text) "name:"
           </>
           vsep
@@ -95,55 +95,55 @@
           , pretty annotations
           ,empty
           ]
-
+                           
     pretty (Comment str)
         = magenta . string $ str
-
-    pretty (Include f sel) = text "include" <> parens (squotes (text f) <> (case sel of { [] -> empty; _ -> comma <+> sep (punctuate comma (fmap pretty sel)) } ))
-
-
-    prettyList = foldr (\x xs -> pretty x <$> xs) empty
-
+          
+    pretty (Include f sel) = text "include" <> parens (squotes (text f) <> (case sel of { [] -> empty; _ -> comma <+> sep (punctuate comma (fmap pretty sel)) } )) 
+                                                       
+                           
+    prettyList = foldr (\x xs -> pretty x <$> xs) empty 
+               
 instance Pretty Quant where
     pretty All = oper "∀"
     pretty Exists = oper "∃"
-
+                       
 instance (Pretty (WithEnclosing t), Pretty (WithEnclosing f)) => Pretty ((WithEnclosing (Formula0 t f))) where
-    pretty (WithEnclosing enclosing formu) =
-        let
+    pretty (WithEnclosing enclosing formu) = 
+        let 
             newEnclosing =
              case formu of
-               Quant _ _ _ -> EnclQuant
+               Quant _ _ _ -> EnclQuant 
                PredApp _ _ -> EnclNothing -- arguments are comma-seperated, so they don't need any parens
                (:~:) _ -> EnclNeg
                BinOp _ op _ -> EnclBinOp op
                InfixPred _ op _ -> EnclInfixPred op
-
+                                  
             wne = WithEnclosing newEnclosing
-
+                                    
         in
           maybeParens newEnclosing enclosing $
-
+          
           case formu of
 
             Quant q vars f ->
-               pretty q
-               <+> brackets (hsep (punctuate comma (fmap pretty vars)))
-               <> dot
+               pretty q 
+               <+> brackets (hsep (punctuate comma (fmap pretty vars))) 
+               <> dot 
                </> pretty (wne f)
 
             (:~:) f -> oper "¬" <+> pretty (wne f)
-
+                      
             PredApp p [] -> psym p
             PredApp p args -> psym p <> prettyargs (fmap wne args)
 
-
+            
             BinOp f1 op f2 ->
                 align $ sep [indent 0 $ pretty (wne f1), pretty op, indent 0 $ pretty (wne f2)]
-
+             
             InfixPred f1 op f2 ->
                 align $ sep [indent 0 $ pretty (wne f1), pretty op, indent 0 $ pretty (wne f2)]
-
+                        
 instance Pretty BinOp where
     pretty x = case x of
         (:<=>:) -> oper "⇔"
@@ -154,45 +154,45 @@
         (:~&:)  -> oper "NAND"
         (:~|:)  -> oper "NOR"
         (:<~>:) -> oper "XOR"
-
+                             
 instance Pretty InfixPred where
     pretty x = case x of
         (:=:)   -> oper "="
         (:!=:)  -> oper "≠"
-
+                                
 instance (Pretty (WithEnclosing t)) => Pretty (WithEnclosing (Term0 t)) where
-    pretty (WithEnclosing _ x) =
-        case x of
+    pretty (WithEnclosing _ x) = 
+        case x of 
           Var s -> pretty s
           NumberLitTerm d -> text (show d)
           DistinctObjectTerm s -> cyan (dquotes (text s))
           FunApp f [] -> fsym f
           FunApp f args -> fsym f <> prettyargs (fmap (WithEnclosing EnclNothing) args)
-
-
+                        
+                        
 
 instance Pretty (Formula0 Term Formula) where
     pretty = pretty . WithEnclosing EnclNothing . F . Identity
-
+                   
 instance Pretty (Term0 Term) where
     pretty = pretty . WithEnclosing EnclNothing . T . Identity
-
+             
 instance Pretty (WithEnclosing Formula) where
-    pretty (WithEnclosing x (F (Identity y))) = pretty (WithEnclosing x y)
-
+    pretty (WithEnclosing x (F (Identity y))) = pretty (WithEnclosing x y) 
+                             
 instance Pretty (WithEnclosing Term) where
-    pretty (WithEnclosing x (T (Identity y))) = pretty (WithEnclosing x y)
-
+    pretty (WithEnclosing x (T (Identity y))) = pretty (WithEnclosing x y) 
+                             
 deriving instance Pretty Formula
 deriving instance Pretty Term
 deriving instance Pretty a => Pretty (Identity a)
-
+                     
 -- instance (Pretty f, Pretty t) => Pretty (Formula0 t f) where
 --     pretty = pretty . WithEnclosing ""
-
+                   
 -- instance (Pretty t) => Pretty (Term0 t) where
 --     pretty = pretty . WithEnclosing ""
-
+                       
 prettySimple :: Pretty a => a -> String
 prettySimple x = displayS (renderPretty 0.9 80 (pretty x)) ""
 
@@ -216,7 +216,7 @@
     pretty (GVar x) = pretty x
 
 instance Pretty AtomicWord where
-    pretty (AtomicWord x) = (if isLowerWord x then text else squotes.text) x
+    pretty (AtomicWord x) = (if isLowerWord x then text else squotes.text) x 
 
 instance Pretty GTerm where
     pretty (GTerm x) = pretty x
@@ -224,8 +224,8 @@
     pretty (GList xs) = let f = oper
                         in
                           f "[" <+> (fillSep . punctuate comma . fmap pretty) xs <+> f "]"
-
-
+                                 
+                                 
 
-instance Pretty V where
+instance Pretty V where                            
     pretty (V x) = blue . text $ x
diff --git a/Codec/TPTP/QuickCheck.hs b/Codec/TPTP/QuickCheck.hs
--- a/Codec/TPTP/QuickCheck.hs
+++ b/Codec/TPTP/QuickCheck.hs
@@ -13,7 +13,8 @@
 import Data.Char
 import Data.Array.ST
 import Data.Array.IArray
-    
+import Data.Array.Base
+
 argsFreq :: (Int -> Gen a) -> Gen a
 argsFreq f = frequency [ (10,f 0)
                         , (10,f 1)
@@ -35,13 +36,13 @@
 arbPartition 1 n = return [n]
 arbPartition buckets n = do
   choices <- replicateM n (choose (1,buckets))
+  let uarray :: UArray Int Int
+      uarray = runSTUArray $
+        do arrr <- newArray (1,buckets) 0
+           forM_ choices (\bucket -> writeArray arrr bucket . succ =<< readArray arrr bucket)
+           return arrr
+  return $ elems uarray 
 
-  return . Data.Array.IArray.elems . runSTUArray $
-   do
-    arrr <- newArray (1,buckets) 0
-    forM_ choices (\bucket -> writeArray arrr bucket . succ =<< readArray arrr bucket)
-    return arrr
-           
 arbPrintable :: Gen [Char]
 arbPrintable = listOf (arbitrary `suchThat` printable)
                
diff --git a/Parser.y b/Parser.y
--- a/Parser.y
+++ b/Parser.y
@@ -1,4 +1,6 @@
 {
+{-# LANGUAGE CPP #-}
+#include "../../MACROS.h"
 module Parser where
     
 import Data.Char
@@ -68,23 +70,23 @@
      
 %% 
 
-TPTP_file  :: {[TPTP_Input]}
+TPTP_file  :: {[TPTP_Input_ c]}
 TPTP_file  : {[]} | TPTP_input TPTP_file  {$1 : $2}
            
-TPTP_input  :: {TPTP_Input}
+TPTP_input  :: {TPTP_Input_ c}
 TPTP_input  : annotated_formula  {$1} 
              | include  { $1 }
              | comment { Comment $1 }
 
-annotated_formula  :: {TPTP_Input}
+annotated_formula  :: {TPTP_Input_ c}
 annotated_formula  :  fof_annotated  {$1} 
                     | cnf_annotated  {$1}
 
-fof_annotated  :: {TPTP_Input}
+fof_annotated  :: {TPTP_Input_ c}
 fof_annotated  : fof lp name  comma formula_role  comma fof_formula  annotations  rp dot
        { AFormula        $3               $5                $7           $8 }
                 
-cnf_annotated  :: {TPTP_Input}
+cnf_annotated  :: {TPTP_Input_ c}
 cnf_annotated  : cnf lp name  comma formula_role  comma cnf_formula  annotations  rp dot
        { AFormula          $3              $5  (univquant_free_vars $7) $8 }
        
@@ -206,7 +208,7 @@
                  | system_atomic_formula   {$1}
                  
 
-plain_atomic_formula  :: {Formula}
+plain_atomic_formula  :: {F c}
 plain_atomic_formula  : plain_term  { fApp2pApp $1 }
 
 -- plain_atomic_formula  :== proposition  | predicate  lp arguments  rp 
@@ -239,7 +241,7 @@
 infix_inequality  :: { Term -> Term -> Formula }
 infix_inequality  : nequals { (.!=.) }
 
-system_atomic_formula  :: {Formula} 
+system_atomic_formula  :: {F c} 
 system_atomic_formula  : system_term  {fApp2pApp $1}
 
 term  :: {Term}                        
diff --git a/Parser2.y b/Parser2.y
new file mode 100644
--- /dev/null
+++ b/Parser2.y
@@ -0,0 +1,509 @@
+{
+module Parser2 where
+    
+import Data.Char
+import Data.Data
+import Control.Monad
+import Data.List as L
+import Lexer
+import Data.Set as S
+import Codec.TPTP.Base
+import System.IO
+import System.IO.Unsafe
+import Control.Monad.Identity
+import Control.Monad.State
+}
+
+%name parseTPTPwithComment
+%tokentype { Token }
+%error { 
+          
+          ((\xs -> case xs of
+                    xs -> error ("Parse error, pos: "++show (take 25 xs))))
+       }
+
+
+%token
+ tok_lp                 { LP }
+ tok_rp                 { RP }
+ tok_lbra               { Lbrack }
+ tok_rbra               { Rbrack }
+ tok_comma              { Comma }
+ tok_dot                { Dot }
+ tok_star               { Star }
+ tok_plus               { Plus }
+ tok_rangle             { Rangle }
+ tok_colon              { Oper ":" }
+
+ tok_iff                { Oper "<=>"}
+ tok_implies            { Oper "=>"}
+ tok_xor                { Oper "<~>"}
+ tok_nor                { Oper "~|"}
+ tok_nand               { Oper "~&"}
+ tok_impliedby          { Oper "<=" }
+ tok_equals             { Oper "=" }
+ tok_nequals            { Oper "!=" }
+
+ tok_exclam             { Oper "!" }
+ tok_question           { Oper "?" }
+ tok_ampersand          { Oper "&" }
+ tok_vline              { Oper "|" }
+ tok_tilde              { Oper "~" }
+
+ tok_fof                { LowerWord "fof" }
+ tok_cnf                { LowerWord "cnf" }
+ tok_include_           { LowerWord "include" }
+
+ tok_single_quoted      { SingleQuoted $$ }
+ tok_distinct_object    { DoubleQuoted $$ }
+ tok_dollar_word        { DollarWord $$ }
+ tok_dollar_dollar_word { DollarDollarWord $$ }
+ tok_upper_word         { UpperWord $$ }
+ tok_lower_word         { LowerWord $$ }
+ tok_signed_integer     { SignedInt $$ }
+ tok_unsigned_integer   { UnsignedInt $$ }
+ tok_real               { Real $$ }
+
+ comment            { CommentToken $$ }
+
+     
+%% 
+
+TPTP_file  :: {[TPTP_Input_ c]}
+TPTP_file  : {[]} | TPTP_input TPTP_file  {$1 : $2}
+           
+TPTP_input  :: {TPTP_Input_ c}
+TPTP_input  : annotated_formula  {$1} 
+             | include  { $1 }
+             | comment { Comment $1 }
+
+annotated_formula  :: {TPTP_Input_ c}
+annotated_formula  :  fof_annotated  {$1} 
+                    | cnf_annotated  {$1}
+
+fof_annotated  :: {TPTP_Input_ c}
+fof_annotated  : fof lp name  comma formula_role  comma fof_formula  annotations  rp dot
+       { AFormula        $3               $5                $7           $8 }
+                
+cnf_annotated  :: {TPTP_Input}
+cnf_annotated  : cnf lp name  comma formula_role  comma cnf_formula  annotations  rp dot
+       { AFormula          $3              $5  (univquant_free_vars $7) $8 }
+       
+       
+annotations  :: { Annotations }
+annotations  :  comma source optional_info  { Annotations $2 $3 } 
+    | { NoAnnotations }
+
+formula_role  :: {Role}
+formula_role  : lower_word_ { Role $1 }
+
+
+fof_formula  :: {F c}
+fof_formula  : binary_formula  { $1 }
+              | unitary_formula  { $1 }
+      
+binary_formula  :: {F c}
+binary_formula  : nonassoc_binary  {$1}
+                 | assoc_binary  {$1}
+                 
+nonassoc_binary  :: {F c}
+nonassoc_binary  : unitary_formula  binary_connective  unitary_formula 
+                  { $2 $1 $3 }
+
+                  
+assoc_binary  :: {F c}
+assoc_binary  : or_formula  { $1 }
+               | and_formula  { $1 }
+    
+                 
+or_formula  :: {F c}
+or_formula  : unitary_formula   vline  unitary_formula  more_or_formula
+               { foldl (.|.) ($1 .|. $3) $4 }
+             
+more_or_formula  :: {[F c]}
+more_or_formula  : {[]} | vline  unitary_formula more_or_formula 
+                  { $2 : $3 }
+                  
+and_formula  :: {F c}
+and_formula  : unitary_formula  ampersand unitary_formula  more_and_formula
+               { foldl (.&.) ($1 .&. $3) $4 }
+
+
+more_and_formula  :: {[F c]}
+more_and_formula  : {[]} | ampersand unitary_formula more_and_formula 
+                   { $2 : $3 }
+                   
+unitary_formula  :: {FormulaC}
+unitary_formula  :  quantified_formula  {$1}
+                  | unary_formula       {$1}
+                  | atomic_formula      {$1}
+                  | lp fof_formula  rp  {$2}
+                   
+quantified_formula  :: {F c}
+quantified_formula  : quantifier  lbra variable_list  rbra colon unitary_formula
+                     { $1 $3 $6 `withComments` comm $5 }
+
+variable_list  :: {[V]}
+variable_list  : variable  { [$1] }
+                | variable  comma variable_list  { $1 : $3 }
+
+unary_formula  :: {F c}
+unary_formula  : unary_connective  unitary_formula  { $1 $2 }
+                | fol_infix_unary  { $1 }
+   
+
+
+
+-- cnf_formula :: {Formula}
+-- cnf_formula : assoc_binary {$1}
+--             | lp assoc_binary rp {$2}
+
+cnf_formula  :: {F c}
+cnf_formula  :  lp disjunction  rp  { $2 }
+              | disjunction  { $1 }
+
+                
+disjunction  :: {F c}
+disjunction  : literal  more_disjunction 
+              { foldl (.|.) $1 $2 }
+              
+more_disjunction  :: {[F c]}
+more_disjunction  :  {[]} | vline  literal more_disjunction 
+                   { $2 : $3 }
+
+literal  :: {FormulaC}
+literal  : atomic_formula  {$1} 
+          | tilde atomic_formula  { (.~.) $2} 
+          | fol_infix_unary  {$1}
+          
+fol_infix_unary  :: {F c}
+fol_infix_unary  : term  infix_inequality  term  { $2 $1 $3 }
+
+quantifier :: {[V] -> FormulaC -> FormulaC}
+quantifier  : exclam { for_all } | question { exists }
+
+binary_connective  :: {FormulaC -> FormulaC -> FormulaC}
+binary_connective  : iff { (.<=>.) }
+                    | implies { (.=>.) }
+                    | impliedby { (.<=.) }
+                    | xor { (.<~>.) }
+                    | nor  { (.~|.) }
+                    | nand { (.~&.) }
+
+--- assoc_connective  : vline  
+---                    | ampersand
+                   
+unary_connective  :: {FormulaC -> FormulaC}
+unary_connective  : tilde { (.~.) }
+
+-- defined_type  :== atomic_defined_word 
+
+-- defined_type  :== $oType | $o | $iType | $i | $tType | $real | $int
+-- system_type  :== atomic_system_word 
+
+atomic_formula  :: {F c} 
+atomic_formula  :  plain_atomic_formula    {$1}
+                 | defined_atomic_formula  {$1}
+                 | system_atomic_formula   {$1}
+                 
+
+plain_atomic_formula  :: {F c}
+plain_atomic_formula  : plain_term  { fApp2pApp $1 }
+
+-- plain_atomic_formula  :== proposition  | predicate  lp arguments  rp 
+-- proposition  :== predicate 
+-- predicate  :== atomic_word 
+
+defined_atomic_formula  :: {F c}
+defined_atomic_formula  :  defined_plain_formula  {$1} 
+                         | defined_infix_formula  {$1}
+                         
+defined_plain_formula  :: {F c}
+defined_plain_formula  : defined_plain_term  {fApp2pApp $1}
+                        
+--defined_plain_formula  :== defined_prop  | defined_pred  lp arguments  rp 
+--defined_prop  :== atomic_defined_word 
+--defined_prop  :== $true | $false
+--defined_pred  :== atomic_defined_word 
+--defined_pred  :== $equal
+
+
+defined_infix_formula  :: {F c}
+defined_infix_formula  : term  defined_infix_pred  term  { $2 $1 $3 }
+                        
+defined_infix_pred :: { T c -> T c -> F c } 
+defined_infix_pred  : infix_equality  { $1 }
+
+infix_equality  :: { TermC -> TermC -> FormulaC }
+infix_equality  : equals { (.=.) }
+                
+infix_inequality  :: { TermC -> TermC -> FormulaC }
+infix_inequality  : nequals { (.!=.) }
+
+system_atomic_formula  :: {F c} 
+system_atomic_formula  : system_term  {fApp2pApp $1}
+
+term  :: {TermC}                        
+term  :  function_term  {$1}
+       | variable       {var $1}
+       
+function_term  :: {TermC}
+function_term  : plain_term {$1} 
+                | defined_term  {$1}
+                | system_term {$1}
+
+plain_term  :: {TermC}                        
+plain_term  :  constant                  {fApp $1 []}
+             | functor  lp arguments  rp {fApp $1 $3}
+              
+constant  :: {AtomicWord}
+constant  : functor {$1}
+
+functor  :: {AtomicWord}
+functor  : atomic_word {$1}
+
+defined_term  :: {TermC}                        
+defined_term  : defined_atom {$1} 
+               | defined_atomic_term {$1}
+               
+
+defined_atom  :: {TermC}                        
+defined_atom  : number {numberLitTerm $1} 
+               | distinct_object {distinctObjectTerm (stripQuotes '"' $1)}
+                 
+defined_atomic_term :: {T c}                
+defined_atomic_term  : defined_plain_term {$1}
+                      
+defined_plain_term  :: {TermC}                        
+defined_plain_term  : defined_constant {fApp (AtomicWord $1) []} 
+                     | defined_functor  lp arguments  rp {fApp (AtomicWord $1) $3} 
+
+defined_constant  :: {String}
+defined_constant  : defined_functor {$1}
+-- defined_constant  :==
+
+defined_functor  :: {String}
+defined_functor  : atomic_defined_word {$1}
+-- defined_functor  :==
+
+system_term  :: {TermC} 
+system_term  :  system_constant  {fApp (AtomicWord $1) []}
+              | system_functor  lp arguments  rp {fApp (AtomicWord $1) $3} 
+
+system_constant  :: {String}                
+system_constant  : system_functor  {$1}
+
+system_functor  :: {String}                
+system_functor  : atomic_system_word {$1}
+                 
+variable  :: {V}
+variable  : upper_word {V $1}
+
+arguments  :: {[T c]}
+arguments  : term  {[$1]}
+            | term  comma arguments  { $1 : $3 }
+
+source  :: {GTerm} 
+source  : general_term  {$1}
+
+-- source  :== dag_source  | internal_source  | external_source  | unknown
+
+-- dag_source  :== name  | inference_record 
+
+-- inference_record  :== inference lp inference_rule  comma useful_info  comma  [parent_list ] rp 
+-- inference_rule  :== atomic_word 
+-- parent_list  :== parent_info  | parent_info  comma parent_list 
+-- parent_info  :== source parent_details 
+-- parent_details  :== :general_list  | null 
+-- internal_source  :== introduced lp intro_type optional_info  rp 
+-- intro_type  :== definition | axiom_of_choice | tautology | assumption
+-- external_source  :== file_source  | theory  | creator_source 
+-- file_source  :== file lp file_name file_info  rp 
+-- file_info  :==  comma name  | null 
+-- theory  :== theory lp theory_name optional_info  rp 
+-- theory_name  :== equality | ac
+-- creator_source  :== creator lp creator_name optional_info  rp 
+-- creator_name  :== atomic_word 
+
+optional_info  :: {UsefulInfo} 
+optional_info  :  comma useful_info  {$2} |  {NoUsefulInfo}
+    
+useful_info  :: { UsefulInfo }
+useful_info  : general_list  {UsefulInfo $1}
+
+-- useful_info  :== [] | [info_items ]
+-- info_items  :== info_item  | info_item  comma info_items 
+-- info_item  :== formula_item  | inference_item  | general_function 
+-- formula_item  :== description_item  | iquote_item 
+-- description_item  :== description lp atomic_word  rp 
+-- iquote_item  :== iquote lp atomic_word  rp 
+-- inference_item  :== inference_status  | assumptions_record  | refutation 
+-- inference_status  :== status lp status_value  rp  | inference_info 
+-- status_value  :== suc | unp | sap | esa | sat | fsa | thm | eqv | tac | wec | eth | tau | wtc | wth | cax | sca | tca | wca |cup | csp | ecs | csa | cth | ceq | unc | wcc | ect | fun | uns | wuc | wct | scc | uca | noc
+
+-- inference_info  :== inference_rule  lp atomic_word  comma general_list  rp 
+-- assumptions_record  :== assumptions lp [name_list ] rp 
+-- refutation  :== refutation lp file_source  rp 
+
+include :: {TPTP_Input_ c}
+include  : include_ lp file_name formula_selection  rp dot { Include $3 $4 } 
+
+formula_selection  :: {[AtomicWord]}
+formula_selection  :  comma lbra name_list  rbra { $3 } 
+                    |   { [] }
+
+name_list  :: {[AtomicWord]}
+name_list  : name  {[$1]}
+            | name  comma name_list  { $1 : $3 }
+
+              
+general_term  :: {GTerm}
+general_term  :  general_data  {GTerm $1} 
+               | general_data colon general_term  {ColonSep $1 $3} 
+               | general_list {GList $1} 
+
+general_data  :: {GData}
+general_data  :  atomic_word  { GWord $1 } 
+               | atomic_word  lp general_terms  rp { GApp $1 $3 }  
+               | variable  { GVar $1 }
+               | number  { GNumber $1 }
+               | distinct_object { GDistinctObject (stripQuotes '"' $1) }
+               | formula_data  { $1 }
+               
+formula_data :: {GData}
+formula_data  : dollar_word lp fof_formula  rp { GFormulaData $1 $3 }
+              -- too ambiguous | dollar_word lp cnf_formula  rp { GFormulaData $1 $3 }
+                
+general_list  :: {[GTerm]}
+general_list  : lbra rbra {[]}
+               | lbra general_terms  rbra {$2}
+               
+general_terms  :: {[GTerm]}
+general_terms  :  general_term  {[$1]} 
+                | general_term  comma general_terms  {$1 : $3}
+
+name  :: {AtomicWord}
+name  : atomic_word  {$1}
+       | unsigned_integer {AtomicWord(show $1)}
+         
+atomic_word  :: {AtomicWord}       
+atomic_word  : lower_word_ {AtomicWord $1}
+              | single_quoted{AtomicWord (stripQuotes '\'' $1)}
+                
+atomic_defined_word  :: {String}              
+atomic_defined_word  : dollar_word{$1}
+                      
+atomic_system_word  :: {String}              
+atomic_system_word  : dollar_dollar_word{$1}
+
+number  :: {Double} -- maybe keep track of the number type that was actually parsed
+number  : real {$1} | signed_integer {fromIntegral $1} | unsigned_integer {fromIntegral $1}
+    
+file_name  :: {String}              
+file_name  : single_quoted {stripQuotes '\'' $1}
+            
+lower_word_ :: {String}
+lower_word_ : lower_word {$1} | fof {"fof"} | cnf {"cnf"} | include_ {"include"} -- "fof" is a perfectly cromulent lower_word, but it is interpreted as a "fof" token
+
+lp                 :: {Token}
+lp                 : tok_lp                  comment_list { $1 }
+rp                 :: {Token}
+rp                 : tok_rp                  comment_list { $1 }
+lbra               :: {Token}
+lbra               : tok_lbra                comment_list { $1 }
+rbra               :: {Token}
+rbra               : tok_rbra                comment_list { $1 }
+comma              :: {Token}
+comma              : tok_comma               comment_list { $1 }
+dot                :: {Token}
+dot                : tok_dot                 comment_list { $1 }
+star               :: {Token}
+star               : tok_star                comment_list { $1 }
+plus               :: {Token}
+plus               : tok_plus                comment_list { $1 }
+rangle             :: {Token}
+rangle             : tok_rangle              comment_list { $1 }
+colon              :: {AToken}
+colon              : tok_colon               comment_list { AToken $1 $2 }
+
+iff                :: {Token}
+iff                : tok_iff                 comment_list { $1 }
+implies            :: {Token}
+implies            : tok_implies             comment_list { $1 }
+xor                :: {Token}
+xor                : tok_xor                 comment_list { $1 }
+nor                :: {Token}
+nor                : tok_nor                 comment_list { $1 }
+nand               :: {Token}
+nand               : tok_nand                comment_list { $1 }
+impliedby          :: {Token}
+impliedby          : tok_impliedby           comment_list { $1 }
+equals             :: {Token}
+equals             : tok_equals              comment_list { $1 }
+nequals            :: {Token}
+nequals            : tok_nequals             comment_list { $1 }
+
+exclam             :: {Token}
+exclam             : tok_exclam              comment_list { $1 }
+question           :: {Token}
+question           : tok_question            comment_list { $1 }
+ampersand          :: {Token}
+ampersand          : tok_ampersand           comment_list { $1 }
+vline              :: {Token}
+vline              : tok_vline               comment_list { $1 }
+tilde              :: {Token}
+tilde              : tok_tilde               comment_list { $1 }
+
+fof                :: {Token}
+fof                : tok_fof                 comment_list { $1 }
+cnf                :: {Token}
+cnf                : tok_cnf                 comment_list { $1 }
+include_           :: {Token}
+include_           : tok_include_            comment_list { $1 }
+
+single_quoted      :: {String}
+single_quoted      : tok_single_quoted       comment_list { $1 }
+distinct_object    :: {String}
+distinct_object    : tok_distinct_object     comment_list { $1 }
+dollar_word        :: {String}
+dollar_word        : tok_dollar_word         comment_list { $1 }
+dollar_dollar_word :: {String}
+dollar_dollar_word : tok_dollar_dollar_word  comment_list { $1 }
+upper_word         :: {String}
+upper_word         : tok_upper_word          comment_list { $1 }
+lower_word         :: {String}
+lower_word         : tok_lower_word          comment_list { $1 }
+signed_integer     :: {Int}
+signed_integer     : tok_signed_integer      comment_list { $1 }
+unsigned_integer   :: {Int}
+unsigned_integer   : tok_unsigned_integer    comment_list { $1 }
+real               :: {Double}
+real               : tok_real                comment_list { $1 }
+
+comment_list :: {[String]}
+comment_list : {[]} | comment comment_list { $1 : $2 }
+       
+{
+data AToken = AToken { tok :: Token, comm :: [String] }
+
+class Commented c where
+  withComments :: F c -> [String] -> F c
+
+instance Commented Identity where
+  withComments = const
+
+instance Commented (State [String]) where
+  withComments (F mf) s = F $ do { f <- mf; put s; return f }
+
+
+stripQuotes which (x:xs) = go xs
+                      where
+                        go [x] = []
+                        go ('\\':'\\':xs) = '\\':go xs
+                        go ('\\':which:xs) = which:go xs
+                        go (x:xs) = x:go xs
+
+fApp2pApp (T mf) = F $ do FunApp x args <- mf
+                          return $ PredApp x args
+}
+
diff --git a/ParserC.y b/ParserC.y
deleted file mode 100644
--- a/ParserC.y
+++ /dev/null
@@ -1,509 +0,0 @@
-{
-module ParserC where
-    
-import Data.Char
-import Data.Data
-import Control.Monad
-import Data.List as L
-import Lexer
-import Data.Set as S
-import Codec.TPTP.Base
-import System.IO
-import System.IO.Unsafe
-import Control.Monad.Identity
-import Control.Monad.State
-}
-
-%name parseTPTPwithComment
-%tokentype { Token }
-%error { 
-          
-          ((\xs -> case xs of
-                    xs -> error ("Parse error, pos: "++show (take 25 xs))))
-       }
-
-
-%token
- tok_lp                 { LP }
- tok_rp                 { RP }
- tok_lbra               { Lbrack }
- tok_rbra               { Rbrack }
- tok_comma              { Comma }
- tok_dot                { Dot }
- tok_star               { Star }
- tok_plus               { Plus }
- tok_rangle             { Rangle }
- tok_colon              { Oper ":" }
-
- tok_iff                { Oper "<=>"}
- tok_implies            { Oper "=>"}
- tok_xor                { Oper "<~>"}
- tok_nor                { Oper "~|"}
- tok_nand               { Oper "~&"}
- tok_impliedby          { Oper "<=" }
- tok_equals             { Oper "=" }
- tok_nequals            { Oper "!=" }
-
- tok_exclam             { Oper "!" }
- tok_question           { Oper "?" }
- tok_ampersand          { Oper "&" }
- tok_vline              { Oper "|" }
- tok_tilde              { Oper "~" }
-
- tok_fof                { LowerWord "fof" }
- tok_cnf                { LowerWord "cnf" }
- tok_include_           { LowerWord "include" }
-
- tok_single_quoted      { SingleQuoted $$ }
- tok_distinct_object    { DoubleQuoted $$ }
- tok_dollar_word        { DollarWord $$ }
- tok_dollar_dollar_word { DollarDollarWord $$ }
- tok_upper_word         { UpperWord $$ }
- tok_lower_word         { LowerWord $$ }
- tok_signed_integer     { SignedInt $$ }
- tok_unsigned_integer   { UnsignedInt $$ }
- tok_real               { Real $$ }
-
- comment            { CommentToken $$ }
-
-     
-%% 
-
-TPTP_file  :: {[TPTP_Input_ c]}
-TPTP_file  : {[]} | TPTP_input TPTP_file  {$1 : $2}
-           
-TPTP_input  :: {TPTP_Input_ c}
-TPTP_input  : annotated_formula  {$1} 
-             | include  { $1 }
-             | comment { Comment $1 }
-
-annotated_formula  :: {TPTP_Input_ c}
-annotated_formula  :  fof_annotated  {$1} 
-                    | cnf_annotated  {$1}
-
-fof_annotated  :: {TPTP_Input_ c}
-fof_annotated  : fof lp name  comma formula_role  comma fof_formula  annotations  rp dot
-       { AFormula        $3               $5                $7           $8 }
-                
-cnf_annotated  :: {TPTP_Input}
-cnf_annotated  : cnf lp name  comma formula_role  comma cnf_formula  annotations  rp dot
-       { AFormula          $3              $5  (univquant_free_vars $7) $8 }
-       
-       
-annotations  :: { Annotations }
-annotations  :  comma source optional_info  { Annotations $2 $3 } 
-    | { NoAnnotations }
-
-formula_role  :: {Role}
-formula_role  : lower_word_ { Role $1 }
-
-
-fof_formula  :: {F c}
-fof_formula  : binary_formula  { $1 }
-              | unitary_formula  { $1 }
-      
-binary_formula  :: {F c}
-binary_formula  : nonassoc_binary  {$1}
-                 | assoc_binary  {$1}
-                 
-nonassoc_binary  :: {F c}
-nonassoc_binary  : unitary_formula  binary_connective  unitary_formula 
-                  { $2 $1 $3 }
-
-                  
-assoc_binary  :: {F c}
-assoc_binary  : or_formula  { $1 }
-               | and_formula  { $1 }
-    
-                 
-or_formula  :: {F c}
-or_formula  : unitary_formula   vline  unitary_formula  more_or_formula
-               { foldl (.|.) ($1 .|. $3) $4 }
-             
-more_or_formula  :: {[F c]}
-more_or_formula  : {[]} | vline  unitary_formula more_or_formula 
-                  { $2 : $3 }
-                  
-and_formula  :: {F c}
-and_formula  : unitary_formula  ampersand unitary_formula  more_and_formula
-               { foldl (.&.) ($1 .&. $3) $4 }
-
-
-more_and_formula  :: {[F c]}
-more_and_formula  : {[]} | ampersand unitary_formula more_and_formula 
-                   { $2 : $3 }
-                   
-unitary_formula  :: {FormulaC}
-unitary_formula  :  quantified_formula  {$1}
-                  | unary_formula       {$1}
-                  | atomic_formula      {$1}
-                  | lp fof_formula  rp  {$2}
-                   
-quantified_formula  :: {F c}
-quantified_formula  : quantifier  lbra variable_list  rbra colon unitary_formula
-                     { $1 $3 $6 `withComments` comm $5 }
-
-variable_list  :: {[V]}
-variable_list  : variable  { [$1] }
-                | variable  comma variable_list  { $1 : $3 }
-
-unary_formula  :: {F c}
-unary_formula  : unary_connective  unitary_formula  { $1 $2 }
-                | fol_infix_unary  { $1 }
-   
-
-
-
--- cnf_formula :: {Formula}
--- cnf_formula : assoc_binary {$1}
---             | lp assoc_binary rp {$2}
-
-cnf_formula  :: {F c}
-cnf_formula  :  lp disjunction  rp  { $2 }
-              | disjunction  { $1 }
-
-                
-disjunction  :: {F c}
-disjunction  : literal  more_disjunction 
-              { foldl (.|.) $1 $2 }
-              
-more_disjunction  :: {[F c]}
-more_disjunction  :  {[]} | vline  literal more_disjunction 
-                   { $2 : $3 }
-
-literal  :: {FormulaC}
-literal  : atomic_formula  {$1} 
-          | tilde atomic_formula  { (.~.) $2} 
-          | fol_infix_unary  {$1}
-          
-fol_infix_unary  :: {F c}
-fol_infix_unary  : term  infix_inequality  term  { $2 $1 $3 }
-
-quantifier :: {[V] -> FormulaC -> FormulaC}
-quantifier  : exclam { for_all } | question { exists }
-
-binary_connective  :: {FormulaC -> FormulaC -> FormulaC}
-binary_connective  : iff { (.<=>.) }
-                    | implies { (.=>.) }
-                    | impliedby { (.<=.) }
-                    | xor { (.<~>.) }
-                    | nor  { (.~|.) }
-                    | nand { (.~&.) }
-
---- assoc_connective  : vline  
----                    | ampersand
-                   
-unary_connective  :: {FormulaC -> FormulaC}
-unary_connective  : tilde { (.~.) }
-
--- defined_type  :== atomic_defined_word 
-
--- defined_type  :== $oType | $o | $iType | $i | $tType | $real | $int
--- system_type  :== atomic_system_word 
-
-atomic_formula  :: {F c} 
-atomic_formula  :  plain_atomic_formula    {$1}
-                 | defined_atomic_formula  {$1}
-                 | system_atomic_formula   {$1}
-                 
-
-plain_atomic_formula  :: {F c}
-plain_atomic_formula  : plain_term  { fApp2pApp $1 }
-
--- plain_atomic_formula  :== proposition  | predicate  lp arguments  rp 
--- proposition  :== predicate 
--- predicate  :== atomic_word 
-
-defined_atomic_formula  :: {F c}
-defined_atomic_formula  :  defined_plain_formula  {$1} 
-                         | defined_infix_formula  {$1}
-                         
-defined_plain_formula  :: {F c}
-defined_plain_formula  : defined_plain_term  {fApp2pApp $1}
-                        
---defined_plain_formula  :== defined_prop  | defined_pred  lp arguments  rp 
---defined_prop  :== atomic_defined_word 
---defined_prop  :== $true | $false
---defined_pred  :== atomic_defined_word 
---defined_pred  :== $equal
-
-
-defined_infix_formula  :: {F c}
-defined_infix_formula  : term  defined_infix_pred  term  { $2 $1 $3 }
-                        
-defined_infix_pred :: { T c -> T c -> F c } 
-defined_infix_pred  : infix_equality  { $1 }
-
-infix_equality  :: { TermC -> TermC -> FormulaC }
-infix_equality  : equals { (.=.) }
-                
-infix_inequality  :: { TermC -> TermC -> FormulaC }
-infix_inequality  : nequals { (.!=.) }
-
-system_atomic_formula  :: {F c} 
-system_atomic_formula  : system_term  {fApp2pApp $1}
-
-term  :: {TermC}                        
-term  :  function_term  {$1}
-       | variable       {var $1}
-       
-function_term  :: {TermC}
-function_term  : plain_term {$1} 
-                | defined_term  {$1}
-                | system_term {$1}
-
-plain_term  :: {TermC}                        
-plain_term  :  constant                  {fApp $1 []}
-             | functor  lp arguments  rp {fApp $1 $3}
-              
-constant  :: {AtomicWord}
-constant  : functor {$1}
-
-functor  :: {AtomicWord}
-functor  : atomic_word {$1}
-
-defined_term  :: {TermC}                        
-defined_term  : defined_atom {$1} 
-               | defined_atomic_term {$1}
-               
-
-defined_atom  :: {TermC}                        
-defined_atom  : number {numberLitTerm $1} 
-               | distinct_object {distinctObjectTerm (stripQuotes '"' $1)}
-                 
-defined_atomic_term :: {T c}                
-defined_atomic_term  : defined_plain_term {$1}
-                      
-defined_plain_term  :: {TermC}                        
-defined_plain_term  : defined_constant {fApp (AtomicWord $1) []} 
-                     | defined_functor  lp arguments  rp {fApp (AtomicWord $1) $3} 
-
-defined_constant  :: {String}
-defined_constant  : defined_functor {$1}
--- defined_constant  :==
-
-defined_functor  :: {String}
-defined_functor  : atomic_defined_word {$1}
--- defined_functor  :==
-
-system_term  :: {TermC} 
-system_term  :  system_constant  {fApp (AtomicWord $1) []}
-              | system_functor  lp arguments  rp {fApp (AtomicWord $1) $3} 
-
-system_constant  :: {String}                
-system_constant  : system_functor  {$1}
-
-system_functor  :: {String}                
-system_functor  : atomic_system_word {$1}
-                 
-variable  :: {V}
-variable  : upper_word {V $1}
-
-arguments  :: {[T c]}
-arguments  : term  {[$1]}
-            | term  comma arguments  { $1 : $3 }
-
-source  :: {GTerm} 
-source  : general_term  {$1}
-
--- source  :== dag_source  | internal_source  | external_source  | unknown
-
--- dag_source  :== name  | inference_record 
-
--- inference_record  :== inference lp inference_rule  comma useful_info  comma  [parent_list ] rp 
--- inference_rule  :== atomic_word 
--- parent_list  :== parent_info  | parent_info  comma parent_list 
--- parent_info  :== source parent_details 
--- parent_details  :== :general_list  | null 
--- internal_source  :== introduced lp intro_type optional_info  rp 
--- intro_type  :== definition | axiom_of_choice | tautology | assumption
--- external_source  :== file_source  | theory  | creator_source 
--- file_source  :== file lp file_name file_info  rp 
--- file_info  :==  comma name  | null 
--- theory  :== theory lp theory_name optional_info  rp 
--- theory_name  :== equality | ac
--- creator_source  :== creator lp creator_name optional_info  rp 
--- creator_name  :== atomic_word 
-
-optional_info  :: {UsefulInfo} 
-optional_info  :  comma useful_info  {$2} |  {NoUsefulInfo}
-    
-useful_info  :: { UsefulInfo }
-useful_info  : general_list  {UsefulInfo $1}
-
--- useful_info  :== [] | [info_items ]
--- info_items  :== info_item  | info_item  comma info_items 
--- info_item  :== formula_item  | inference_item  | general_function 
--- formula_item  :== description_item  | iquote_item 
--- description_item  :== description lp atomic_word  rp 
--- iquote_item  :== iquote lp atomic_word  rp 
--- inference_item  :== inference_status  | assumptions_record  | refutation 
--- inference_status  :== status lp status_value  rp  | inference_info 
--- status_value  :== suc | unp | sap | esa | sat | fsa | thm | eqv | tac | wec | eth | tau | wtc | wth | cax | sca | tca | wca |cup | csp | ecs | csa | cth | ceq | unc | wcc | ect | fun | uns | wuc | wct | scc | uca | noc
-
--- inference_info  :== inference_rule  lp atomic_word  comma general_list  rp 
--- assumptions_record  :== assumptions lp [name_list ] rp 
--- refutation  :== refutation lp file_source  rp 
-
-include :: {TPTP_Input}
-include  : include_ lp file_name formula_selection  rp dot { Include $3 $4 } 
-
-formula_selection  :: {[AtomicWord]}
-formula_selection  :  comma lbra name_list  rbra { $3 } 
-                    |   { [] }
-
-name_list  :: {[AtomicWord]}
-name_list  : name  {[$1]}
-            | name  comma name_list  { $1 : $3 }
-
-              
-general_term  :: {GTerm}
-general_term  :  general_data  {GTerm $1} 
-               | general_data colon general_term  {ColonSep $1 $3} 
-               | general_list {GList $1} 
-
-general_data  :: {GData}
-general_data  :  atomic_word  { GWord $1 } 
-               | atomic_word  lp general_terms  rp { GApp $1 $3 }  
-               | variable  { GVar $1 }
-               | number  { GNumber $1 }
-               | distinct_object { GDistinctObject (stripQuotes '"' $1) }
-               | formula_data  { $1 }
-               
-formula_data :: {GData}
-formula_data  : dollar_word lp fof_formula  rp { GFormulaData $1 $3 }
-              -- too ambiguous | dollar_word lp cnf_formula  rp { GFormulaData $1 $3 }
-                
-general_list  :: {[GTerm]}
-general_list  : lbra rbra {[]}
-               | lbra general_terms  rbra {$2}
-               
-general_terms  :: {[GTerm]}
-general_terms  :  general_term  {[$1]} 
-                | general_term  comma general_terms  {$1 : $3}
-
-name  :: {AtomicWord}
-name  : atomic_word  {$1}
-       | unsigned_integer {AtomicWord(show $1)}
-         
-atomic_word  :: {AtomicWord}       
-atomic_word  : lower_word_ {AtomicWord $1}
-              | single_quoted{AtomicWord (stripQuotes '\'' $1)}
-                
-atomic_defined_word  :: {String}              
-atomic_defined_word  : dollar_word{$1}
-                      
-atomic_system_word  :: {String}              
-atomic_system_word  : dollar_dollar_word{$1}
-
-number  :: {Double} -- maybe keep track of the number type that was actually parsed
-number  : real {$1} | signed_integer {fromIntegral $1} | unsigned_integer {fromIntegral $1}
-    
-file_name  :: {String}              
-file_name  : single_quoted {stripQuotes '\'' $1}
-            
-lower_word_ :: {String}
-lower_word_ : lower_word {$1} | fof {"fof"} | cnf {"cnf"} | include_ {"include"} -- "fof" is a perfectly cromulent lower_word, but it is interpreted as a "fof" token
-
-lp                 :: {Token}
-lp                 : tok_lp                  comment_list { $1 }
-rp                 :: {Token}
-rp                 : tok_rp                  comment_list { $1 }
-lbra               :: {Token}
-lbra               : tok_lbra                comment_list { $1 }
-rbra               :: {Token}
-rbra               : tok_rbra                comment_list { $1 }
-comma              :: {Token}
-comma              : tok_comma               comment_list { $1 }
-dot                :: {Token}
-dot                : tok_dot                 comment_list { $1 }
-star               :: {Token}
-star               : tok_star                comment_list { $1 }
-plus               :: {Token}
-plus               : tok_plus                comment_list { $1 }
-rangle             :: {Token}
-rangle             : tok_rangle              comment_list { $1 }
-colon              :: {AToken}
-colon              : tok_colon               comment_list { AToken $1 $2 }
-
-iff                :: {Token}
-iff                : tok_iff                 comment_list { $1 }
-implies            :: {Token}
-implies            : tok_implies             comment_list { $1 }
-xor                :: {Token}
-xor                : tok_xor                 comment_list { $1 }
-nor                :: {Token}
-nor                : tok_nor                 comment_list { $1 }
-nand               :: {Token}
-nand               : tok_nand                comment_list { $1 }
-impliedby          :: {Token}
-impliedby          : tok_impliedby           comment_list { $1 }
-equals             :: {Token}
-equals             : tok_equals              comment_list { $1 }
-nequals            :: {Token}
-nequals            : tok_nequals             comment_list { $1 }
-
-exclam             :: {Token}
-exclam             : tok_exclam              comment_list { $1 }
-question           :: {Token}
-question           : tok_question            comment_list { $1 }
-ampersand          :: {Token}
-ampersand          : tok_ampersand           comment_list { $1 }
-vline              :: {Token}
-vline              : tok_vline               comment_list { $1 }
-tilde              :: {Token}
-tilde              : tok_tilde               comment_list { $1 }
-
-fof                :: {Token}
-fof                : tok_fof                 comment_list { $1 }
-cnf                :: {Token}
-cnf                : tok_cnf                 comment_list { $1 }
-include_           :: {Token}
-include_           : tok_include_            comment_list { $1 }
-
-single_quoted      :: {String}
-single_quoted      : tok_single_quoted       comment_list { $1 }
-distinct_object    :: {String}
-distinct_object    : tok_distinct_object     comment_list { $1 }
-dollar_word        :: {String}
-dollar_word        : tok_dollar_word         comment_list { $1 }
-dollar_dollar_word :: {String}
-dollar_dollar_word : tok_dollar_dollar_word  comment_list { $1 }
-upper_word         :: {String}
-upper_word         : tok_upper_word          comment_list { $1 }
-lower_word         :: {String}
-lower_word         : tok_lower_word          comment_list { $1 }
-signed_integer     :: {Int}
-signed_integer     : tok_signed_integer      comment_list { $1 }
-unsigned_integer   :: {Int}
-unsigned_integer   : tok_unsigned_integer    comment_list { $1 }
-real               :: {Double}
-real               : tok_real                comment_list { $1 }
-
-comment_list :: {[String]}
-comment_list : {[]} | comment comment_list { $1 : $2 }
-       
-{
-data AToken = AToken { tok :: Token, comm :: [String] }
-
-class Commented c where
-  withComments :: F c -> [String] -> F c
-
-instance Commented Identity where
-  withComments = const
-
-instance Commented (State [String]) where
-  withComments (F mf) s = F $ do { f <- mf; put s; return f }
-
-
-stripQuotes which (x:xs) = go xs
-                      where
-                        go [x] = []
-                        go ('\\':'\\':xs) = '\\':go xs
-                        go ('\\':which:xs) = which:go xs
-                        go (x:xs) = x:go xs
-
-fApp2pApp (T mf) = F $ do FunApp x args <- mf
-                          return $ PredApp x args
-}
-
diff --git a/dist/build/Parser.hs b/dist/build/Parser.hs
--- a/dist/build/Parser.hs
+++ b/dist/build/Parser.hs
@@ -1,5 +1,7 @@
-{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}
+{-# OPTIONS_GHC -w #-}
 {-# OPTIONS -fglasgow-exts -cpp #-}
+{-# LANGUAGE CPP #-}
+#include "../../MACROS.h"
 module Parser where
     
 import Data.Char
@@ -15,7 +17,7 @@
 import qualified Data.Array as Happy_Data_Array
 import qualified GHC.Exts as Happy_GHC_Exts
 
--- parser produced by Happy Version 1.18.5
+-- parser produced by Happy Version 1.18.6
 
 newtype HappyAbsSyn  = HappyAbsSyn HappyAny
 #if __GLASGOW_HASKELL__ >= 607
@@ -23,34 +25,34 @@
 #else
 type HappyAny = forall a . a
 #endif
-happyIn4 :: ([TPTP_Input]) -> (HappyAbsSyn )
+happyIn4 :: ([TPTP_Input_ c]) -> (HappyAbsSyn )
 happyIn4 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn4 #-}
-happyOut4 :: (HappyAbsSyn ) -> ([TPTP_Input])
+happyOut4 :: (HappyAbsSyn ) -> ([TPTP_Input_ c])
 happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut4 #-}
-happyIn5 :: (TPTP_Input) -> (HappyAbsSyn )
+happyIn5 :: (TPTP_Input_ c) -> (HappyAbsSyn )
 happyIn5 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn5 #-}
-happyOut5 :: (HappyAbsSyn ) -> (TPTP_Input)
+happyOut5 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
 happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut5 #-}
-happyIn6 :: (TPTP_Input) -> (HappyAbsSyn )
+happyIn6 :: (TPTP_Input_ c) -> (HappyAbsSyn )
 happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn ) -> (TPTP_Input)
+happyOut6 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
 happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut6 #-}
-happyIn7 :: (TPTP_Input) -> (HappyAbsSyn )
+happyIn7 :: (TPTP_Input_ c) -> (HappyAbsSyn )
 happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn ) -> (TPTP_Input)
+happyOut7 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
 happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut7 #-}
-happyIn8 :: (TPTP_Input) -> (HappyAbsSyn )
+happyIn8 :: (TPTP_Input_ c) -> (HappyAbsSyn )
 happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn ) -> (TPTP_Input)
+happyOut8 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
 happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut8 #-}
 happyIn9 :: (Annotations) -> (HappyAbsSyn )
@@ -191,10 +193,10 @@
 happyOut31 :: (HappyAbsSyn ) -> (F c)
 happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut31 #-}
-happyIn32 :: (Formula) -> (HappyAbsSyn )
+happyIn32 :: (F c) -> (HappyAbsSyn )
 happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn ) -> (Formula)
+happyOut32 :: (HappyAbsSyn ) -> (F c)
 happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut32 #-}
 happyIn33 :: (F c) -> (HappyAbsSyn )
@@ -233,10 +235,10 @@
 happyOut38 :: (HappyAbsSyn ) -> (Term -> Term -> Formula)
 happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut38 #-}
-happyIn39 :: (Formula) -> (HappyAbsSyn )
+happyIn39 :: (F c) -> (HappyAbsSyn )
 happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn ) -> (Formula)
+happyOut39 :: (HappyAbsSyn ) -> (F c)
 happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut39 #-}
 happyIn40 :: (Term) -> (HappyAbsSyn )
@@ -2277,13 +2279,13 @@
 
 
 				     happyShift new_state i tk st
-				     where !(new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
-   where !(off)    = indexShortOffAddr happyActOffsets st
-         !(off_i)  = (off Happy_GHC_Exts.+# i)
+				     where (new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where (off)    = indexShortOffAddr happyActOffsets st
+         (off_i)  = (off Happy_GHC_Exts.+# i)
 	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
 			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
 			else False
-         !(action)
+         (action)
           | check     = indexShortOffAddr happyTable off_i
           | otherwise = indexShortOffAddr happyDefActions st
 
@@ -2293,10 +2295,10 @@
 indexShortOffAddr (HappyA# arr) off =
 	Happy_GHC_Exts.narrow16Int# i
   where
-	!i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
-	!high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
-	!low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
-	!off' = off Happy_GHC_Exts.*# 2#
+        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+        off' = off Happy_GHC_Exts.*# 2#
 
 
 
@@ -2316,7 +2318,7 @@
 -- Shifting a token
 
 happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let !(i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+     let (i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
 --     trace "shifting the error token" $
      happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
 
@@ -2360,19 +2362,19 @@
      = happyFail 0# tk st sts stk
 happyMonadReduce k nt fn j tk st sts stk =
         happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
              drop_stk = happyDropStk k stk
 
 happyMonad2Reduce k nt fn 0# tk st sts stk
      = happyFail 0# tk st sts stk
 happyMonad2Reduce k nt fn j tk st sts stk =
        happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
              drop_stk = happyDropStk k stk
 
-             !(off) = indexShortOffAddr happyGotoOffsets st1
-             !(off_i) = (off Happy_GHC_Exts.+# nt)
-             !(new_state) = indexShortOffAddr happyTable off_i
+             (off) = indexShortOffAddr happyGotoOffsets st1
+             (off_i) = (off Happy_GHC_Exts.+# nt)
+             (new_state) = indexShortOffAddr happyTable off_i
 
 
 
@@ -2390,9 +2392,9 @@
 happyGoto nt j tk st = 
    {- nothing -}
    happyDoAction j tk new_state
-   where !(off) = indexShortOffAddr happyGotoOffsets st
-         !(off_i) = (off Happy_GHC_Exts.+# nt)
-         !(new_state) = indexShortOffAddr happyTable off_i
+   where (off) = indexShortOffAddr happyGotoOffsets st
+         (off_i) = (off Happy_GHC_Exts.+# nt)
+         (new_state) = indexShortOffAddr happyTable off_i
 
 
 
@@ -2424,6 +2426,7 @@
 
 -- Internal happy errors:
 
+notHappyAtAll :: a
 notHappyAtAll = error "Internal Happy error\n"
 
 -----------------------------------------------------------------------------
diff --git a/dist/build/Parser2.hs b/dist/build/Parser2.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Parser2.hs
@@ -0,0 +1,2488 @@
+{-# OPTIONS_GHC -w #-}
+{-# OPTIONS -fglasgow-exts -cpp #-}
+module Parser2 where
+    
+import Data.Char
+import Data.Data
+import Control.Monad
+import Data.List as L
+import Lexer
+import Data.Set as S
+import Codec.TPTP.Base
+import System.IO
+import System.IO.Unsafe
+import Control.Monad.Identity
+import Control.Monad.State
+import qualified Data.Array as Happy_Data_Array
+import qualified GHC.Exts as Happy_GHC_Exts
+
+-- parser produced by Happy Version 1.18.6
+
+newtype HappyAbsSyn  = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn4 :: ([TPTP_Input_ c]) -> (HappyAbsSyn )
+happyIn4 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn4 #-}
+happyOut4 :: (HappyAbsSyn ) -> ([TPTP_Input_ c])
+happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut4 #-}
+happyIn5 :: (TPTP_Input_ c) -> (HappyAbsSyn )
+happyIn5 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn5 #-}
+happyOut5 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
+happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut5 #-}
+happyIn6 :: (TPTP_Input_ c) -> (HappyAbsSyn )
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (TPTP_Input_ c) -> (HappyAbsSyn )
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (TPTP_Input) -> (HappyAbsSyn )
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn ) -> (TPTP_Input)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (Annotations) -> (HappyAbsSyn )
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn ) -> (Annotations)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (Role) -> (HappyAbsSyn )
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn ) -> (Role)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (F c) -> (HappyAbsSyn )
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn ) -> (F c)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: (F c) -> (HappyAbsSyn )
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn ) -> (F c)
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (F c) -> (HappyAbsSyn )
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn ) -> (F c)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: (F c) -> (HappyAbsSyn )
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn ) -> (F c)
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: (F c) -> (HappyAbsSyn )
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn ) -> (F c)
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([F c]) -> (HappyAbsSyn )
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn ) -> ([F c])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: (F c) -> (HappyAbsSyn )
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn ) -> (F c)
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([F c]) -> (HappyAbsSyn )
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn ) -> ([F c])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: (FormulaC) -> (HappyAbsSyn )
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn ) -> (FormulaC)
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (F c) -> (HappyAbsSyn )
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn ) -> (F c)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: ([V]) -> (HappyAbsSyn )
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn ) -> ([V])
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (F c) -> (HappyAbsSyn )
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn ) -> (F c)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: (F c) -> (HappyAbsSyn )
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn ) -> (F c)
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: (F c) -> (HappyAbsSyn )
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn ) -> (F c)
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([F c]) -> (HappyAbsSyn )
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn ) -> ([F c])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (FormulaC) -> (HappyAbsSyn )
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn ) -> (FormulaC)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (F c) -> (HappyAbsSyn )
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn ) -> (F c)
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: ([V] -> FormulaC -> FormulaC) -> (HappyAbsSyn )
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn ) -> ([V] -> FormulaC -> FormulaC)
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: (FormulaC -> FormulaC -> FormulaC) -> (HappyAbsSyn )
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn ) -> (FormulaC -> FormulaC -> FormulaC)
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: (FormulaC -> FormulaC) -> (HappyAbsSyn )
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn ) -> (FormulaC -> FormulaC)
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (F c) -> (HappyAbsSyn )
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn ) -> (F c)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (F c) -> (HappyAbsSyn )
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn ) -> (F c)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (F c) -> (HappyAbsSyn )
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn ) -> (F c)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: (F c) -> (HappyAbsSyn )
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn ) -> (F c)
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: (F c) -> (HappyAbsSyn )
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn ) -> (F c)
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: (T c -> T c -> F c) -> (HappyAbsSyn )
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn ) -> (T c -> T c -> F c)
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: (TermC -> TermC -> FormulaC) -> (HappyAbsSyn )
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn ) -> (TermC -> TermC -> FormulaC)
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: (TermC -> TermC -> FormulaC) -> (HappyAbsSyn )
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn ) -> (TermC -> TermC -> FormulaC)
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: (F c) -> (HappyAbsSyn )
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn ) -> (F c)
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: (TermC) -> (HappyAbsSyn )
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn ) -> (TermC)
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: (TermC) -> (HappyAbsSyn )
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn ) -> (TermC)
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: (TermC) -> (HappyAbsSyn )
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn ) -> (TermC)
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: (AtomicWord) -> (HappyAbsSyn )
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn ) -> (AtomicWord)
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (AtomicWord) -> (HappyAbsSyn )
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn ) -> (AtomicWord)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (TermC) -> (HappyAbsSyn )
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn ) -> (TermC)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (TermC) -> (HappyAbsSyn )
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn ) -> (TermC)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (T c) -> (HappyAbsSyn )
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn ) -> (T c)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (TermC) -> (HappyAbsSyn )
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn ) -> (TermC)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (String) -> (HappyAbsSyn )
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn ) -> (String)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (String) -> (HappyAbsSyn )
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn ) -> (String)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (TermC) -> (HappyAbsSyn )
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn ) -> (TermC)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: (String) -> (HappyAbsSyn )
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn ) -> (String)
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: (String) -> (HappyAbsSyn )
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn ) -> (String)
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: (V) -> (HappyAbsSyn )
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn ) -> (V)
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: ([T c]) -> (HappyAbsSyn )
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn ) -> ([T c])
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: (GTerm) -> (HappyAbsSyn )
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn ) -> (GTerm)
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: (UsefulInfo) -> (HappyAbsSyn )
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn ) -> (UsefulInfo)
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: (UsefulInfo) -> (HappyAbsSyn )
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn ) -> (UsefulInfo)
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: (TPTP_Input_ c) -> (HappyAbsSyn )
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([AtomicWord]) -> (HappyAbsSyn )
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn ) -> ([AtomicWord])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: ([AtomicWord]) -> (HappyAbsSyn )
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn ) -> ([AtomicWord])
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: (GTerm) -> (HappyAbsSyn )
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn ) -> (GTerm)
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: (GData) -> (HappyAbsSyn )
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn ) -> (GData)
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: (GData) -> (HappyAbsSyn )
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn ) -> (GData)
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([GTerm]) -> (HappyAbsSyn )
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn ) -> ([GTerm])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: ([GTerm]) -> (HappyAbsSyn )
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn ) -> ([GTerm])
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: (AtomicWord) -> (HappyAbsSyn )
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn ) -> (AtomicWord)
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: (AtomicWord) -> (HappyAbsSyn )
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn ) -> (AtomicWord)
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: (String) -> (HappyAbsSyn )
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn ) -> (String)
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: (String) -> (HappyAbsSyn )
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn ) -> (String)
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: (Double) -> (HappyAbsSyn )
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn ) -> (Double)
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: (String) -> (HappyAbsSyn )
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn ) -> (String)
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: (String) -> (HappyAbsSyn )
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn ) -> (String)
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: (Token) -> (HappyAbsSyn )
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn ) -> (Token)
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: (Token) -> (HappyAbsSyn )
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn ) -> (Token)
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (Token) -> (HappyAbsSyn )
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn ) -> (Token)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: (Token) -> (HappyAbsSyn )
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn ) -> (Token)
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: (Token) -> (HappyAbsSyn )
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn ) -> (Token)
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: (Token) -> (HappyAbsSyn )
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn ) -> (Token)
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: (Token) -> (HappyAbsSyn )
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn ) -> (Token)
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: (Token) -> (HappyAbsSyn )
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn ) -> (Token)
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyIn82 :: (Token) -> (HappyAbsSyn )
+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn82 #-}
+happyOut82 :: (HappyAbsSyn ) -> (Token)
+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut82 #-}
+happyIn83 :: (AToken) -> (HappyAbsSyn )
+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn83 #-}
+happyOut83 :: (HappyAbsSyn ) -> (AToken)
+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut83 #-}
+happyIn84 :: (Token) -> (HappyAbsSyn )
+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn84 #-}
+happyOut84 :: (HappyAbsSyn ) -> (Token)
+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut84 #-}
+happyIn85 :: (Token) -> (HappyAbsSyn )
+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn85 #-}
+happyOut85 :: (HappyAbsSyn ) -> (Token)
+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut85 #-}
+happyIn86 :: (Token) -> (HappyAbsSyn )
+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn86 #-}
+happyOut86 :: (HappyAbsSyn ) -> (Token)
+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut86 #-}
+happyIn87 :: (Token) -> (HappyAbsSyn )
+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn87 #-}
+happyOut87 :: (HappyAbsSyn ) -> (Token)
+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut87 #-}
+happyIn88 :: (Token) -> (HappyAbsSyn )
+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn88 #-}
+happyOut88 :: (HappyAbsSyn ) -> (Token)
+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut88 #-}
+happyIn89 :: (Token) -> (HappyAbsSyn )
+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn89 #-}
+happyOut89 :: (HappyAbsSyn ) -> (Token)
+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut89 #-}
+happyIn90 :: (Token) -> (HappyAbsSyn )
+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn90 #-}
+happyOut90 :: (HappyAbsSyn ) -> (Token)
+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut90 #-}
+happyIn91 :: (Token) -> (HappyAbsSyn )
+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn91 #-}
+happyOut91 :: (HappyAbsSyn ) -> (Token)
+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut91 #-}
+happyIn92 :: (Token) -> (HappyAbsSyn )
+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn92 #-}
+happyOut92 :: (HappyAbsSyn ) -> (Token)
+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut92 #-}
+happyIn93 :: (Token) -> (HappyAbsSyn )
+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn93 #-}
+happyOut93 :: (HappyAbsSyn ) -> (Token)
+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut93 #-}
+happyIn94 :: (Token) -> (HappyAbsSyn )
+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn94 #-}
+happyOut94 :: (HappyAbsSyn ) -> (Token)
+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut94 #-}
+happyIn95 :: (Token) -> (HappyAbsSyn )
+happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn95 #-}
+happyOut95 :: (HappyAbsSyn ) -> (Token)
+happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut95 #-}
+happyIn96 :: (Token) -> (HappyAbsSyn )
+happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn96 #-}
+happyOut96 :: (HappyAbsSyn ) -> (Token)
+happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut96 #-}
+happyIn97 :: (Token) -> (HappyAbsSyn )
+happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn97 #-}
+happyOut97 :: (HappyAbsSyn ) -> (Token)
+happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut97 #-}
+happyIn98 :: (Token) -> (HappyAbsSyn )
+happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn98 #-}
+happyOut98 :: (HappyAbsSyn ) -> (Token)
+happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut98 #-}
+happyIn99 :: (Token) -> (HappyAbsSyn )
+happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn99 #-}
+happyOut99 :: (HappyAbsSyn ) -> (Token)
+happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut99 #-}
+happyIn100 :: (String) -> (HappyAbsSyn )
+happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn100 #-}
+happyOut100 :: (HappyAbsSyn ) -> (String)
+happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut100 #-}
+happyIn101 :: (String) -> (HappyAbsSyn )
+happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn101 #-}
+happyOut101 :: (HappyAbsSyn ) -> (String)
+happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut101 #-}
+happyIn102 :: (String) -> (HappyAbsSyn )
+happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn102 #-}
+happyOut102 :: (HappyAbsSyn ) -> (String)
+happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut102 #-}
+happyIn103 :: (String) -> (HappyAbsSyn )
+happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn103 #-}
+happyOut103 :: (HappyAbsSyn ) -> (String)
+happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut103 #-}
+happyIn104 :: (String) -> (HappyAbsSyn )
+happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn104 #-}
+happyOut104 :: (HappyAbsSyn ) -> (String)
+happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut104 #-}
+happyIn105 :: (String) -> (HappyAbsSyn )
+happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn105 #-}
+happyOut105 :: (HappyAbsSyn ) -> (String)
+happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut105 #-}
+happyIn106 :: (Int) -> (HappyAbsSyn )
+happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn106 #-}
+happyOut106 :: (HappyAbsSyn ) -> (Int)
+happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut106 #-}
+happyIn107 :: (Int) -> (HappyAbsSyn )
+happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn107 #-}
+happyOut107 :: (HappyAbsSyn ) -> (Int)
+happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut107 #-}
+happyIn108 :: (Double) -> (HappyAbsSyn )
+happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn108 #-}
+happyOut108 :: (HappyAbsSyn ) -> (Double)
+happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut108 #-}
+happyIn109 :: ([String]) -> (HappyAbsSyn )
+happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn109 #-}
+happyOut109 :: (HappyAbsSyn ) -> ([String])
+happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut109 #-}
+happyInTok :: (Token) -> (HappyAbsSyn )
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn ) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x7c\x00\x00\x00\x5b\x02\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02\x79\x02\x79\x02\x50\x02\x50\x02\x50\x02\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x52\x02\x41\x02\xd9\x00\xd9\x00\x00\x00\x65\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x02\x3f\x02\x3f\x02\x5f\x02\x00\x00\x5f\x02\x00\x00\x00\x00\x60\x02\x5e\x02\x3c\x02\x90\x01\x00\x00\x00\x00\x00\x00\x90\x01\x5a\x02\x00\x00\x5a\x02\x00\x00\xd9\x00\x39\x02\x58\x02\x38\x02\x00\x00\x00\x00\x38\x02\x00\x00\x57\x02\x43\x02\xfe\x01\xa6\x01\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x44\x02\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x30\x00\x00\x00\x45\x02\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x45\x02\x09\x00\x00\x00\x45\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x36\x02\x00\x00\x29\x02\x00\x00\x00\x00\x48\x01\xe8\x01\xd9\x00\x00\x00\x16\x02\x00\x00\x00\x00\x00\x00\x00\x00\x28\x02\x25\x02\x00\x00\x48\x01\x13\x02\x24\x02\xb0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x02\xe8\x01\xe8\x01\xe8\x01\xe8\x01\x00\x00\xe8\x01\x00\x00\x00\x00\xff\x01\xff\x01\x00\x00\x03\x02\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\xa6\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xec\x01\x0d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\xd8\x01\x00\x00\xe1\x01\xe7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x01\xe0\x01\xe0\x01\xe0\x01\x00\x00\x00\x00\xdc\x01\x00\x00\xd6\x01\x00\x00\x00\x00\xde\x01\x00\x00\x56\x02\x00\x00\xde\x01\xd7\x01\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\xa6\x01\xc7\x01\xb8\x01\x00\x00\xb0\x02\xb0\x02\x97\x01\x00\x00\xb3\x01\x00\x00\x00\x00\x00\x00\xe8\x01\x92\x01\xa5\x01\x00\x00\xa6\x01\x00\x00\xa6\x01\x00\x00\x98\x01\xf5\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\xb0\x02\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x46\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x01\x4d\x01\x45\x01\x42\x01\x3d\x01\x3c\x01\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x0d\x00\x29\x01\xd3\x03\x7e\x03\x00\x00\x3e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\x1d\x01\x1c\x01\x39\x01\x00\x00\x60\x00\x00\x00\x00\x00\x2c\x01\x2a\x01\x06\x01\x4e\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x24\x01\x00\x00\x22\x01\x00\x00\x43\x06\x04\x01\x11\x01\xee\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x0a\x01\x08\x01\x8a\x03\xbe\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\x09\x01\x34\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x00\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\xc8\x00\xc5\x00\xc4\x00\xc3\x00\xc2\x00\xc0\x00\xac\x00\xa4\x00\xa3\x00\x0b\x00\x00\x00\xf3\xff\x00\x00\x00\x00\xdf\x03\x80\x04\x38\x06\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\xc1\x00\x00\x00\x32\x04\x9d\x00\xbb\x00\xff\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x24\x05\xfb\x04\xd2\x04\x76\x05\x00\x00\x4d\x05\x00\x00\x00\x00\x94\x00\x91\x00\x00\x00\xa5\x00\xda\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x02\x26\x02\x8f\x00\x8e\x00\x8d\x00\x77\x00\x76\x00\x75\x00\x6b\x00\x8a\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x3d\x00\x00\x00\x83\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6a\x00\x69\x00\x67\x00\x00\x00\x00\x00\x03\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x88\x05\x00\x00\x29\x00\x04\x00\x00\x00\xf1\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\xf5\xff\x00\x00\xc8\x05\x0e\x06\xd0\xff\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xa9\x04\xa1\x00\xdf\xff\x00\x00\xcc\x01\x00\x00\x72\x01\x00\x00\x21\x00\x0e\x00\x18\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xff\x00\x00\xb9\x05\xc4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\xfe\xff\x00\x00\x00\x00\xfe\xff\xfc\xff\xf9\xff\xf8\xff\xfb\xff\x00\x00\x00\x00\x00\x00\x5d\xff\x5d\xff\x5d\xff\xfa\xff\x67\xff\x5d\xff\x68\xff\x69\xff\x00\x00\x5d\xff\x00\x00\x00\x00\xfd\xff\x00\x00\x8e\xff\x8c\xff\x83\xff\x82\xff\x81\xff\x8b\xff\x84\xff\x8d\xff\x5d\xff\x5d\xff\x5d\xff\x00\x00\x80\xff\x9f\xff\x85\xff\x5c\xff\x00\x00\x00\x00\x5d\xff\x00\x00\x5f\xff\x61\xff\x66\xff\x00\x00\x00\x00\xf3\xff\x00\x00\x7c\xff\x00\x00\x5d\xff\x00\x00\x5d\xff\x7f\xff\xa1\xff\x5d\xff\x7e\xff\x00\x00\x9e\xff\x00\x00\x00\x00\xf4\xff\xf2\xff\xf0\xff\xef\xff\xed\xff\xec\xff\xf1\xff\xe5\xff\xe4\xff\xdd\xff\x00\x00\x00\x00\xe3\xff\xca\xff\xc9\xff\xc6\xff\xc5\xff\xc8\xff\x00\x00\xbe\xff\xc7\xff\xb9\xff\xb7\xff\xbb\xff\xb5\xff\xb4\xff\xc4\xff\xb0\xff\xae\xff\xbf\xff\xac\xff\xaa\xff\xbd\xff\xb6\xff\xad\xff\xa9\xff\xb3\xff\x00\x00\xd3\xff\xd2\xff\xcb\xff\xb2\xff\x8a\xff\x89\xff\xa8\xff\x87\xff\x86\xff\x88\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\xf4\xff\xdb\xff\xd9\xff\xd5\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x5d\xff\x7b\xff\x7d\xff\x9d\xff\xd6\xff\x00\x00\x00\x00\xda\xff\x00\x00\x5d\xff\x00\x00\x00\x00\x5e\xff\x60\xff\x62\xff\x63\xff\x64\xff\x65\xff\x6a\xff\x6d\xff\x6e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\xc1\xff\xc0\xff\x5d\xff\x5d\xff\xde\xff\x00\x00\x00\x00\xd1\xff\xd0\xff\xce\xff\xcd\xff\xcc\xff\xcf\xff\x00\x00\x00\x00\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x00\x00\x00\x00\x6c\xff\x71\xff\x72\xff\x73\xff\x74\xff\x75\xff\x76\xff\xea\xff\xe7\xff\xee\xff\x00\x00\xe0\xff\x6f\xff\x70\xff\xd4\xff\xbc\xff\xb1\xff\xba\xff\xc3\xff\xa7\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x97\xff\xa3\xff\xa5\xff\x9c\xff\x94\xff\x9a\xff\x99\xff\x96\xff\x00\x00\x95\xff\x00\x00\x00\x00\x6b\xff\xd9\xff\xdc\xff\xd8\xff\xf6\xff\x00\x00\x90\xff\x00\x00\x92\xff\x00\x00\x00\x00\x5d\xff\xf5\xff\x00\x00\xab\xff\xaf\xff\xb8\xff\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xeb\xff\x00\x00\xf7\xff\xea\xff\xe7\xff\x00\x00\xdf\xff\xa6\xff\xa4\xff\xa2\xff\x77\xff\x9b\xff\x00\x00\x91\xff\x00\x00\x00\x00\x93\xff\x8f\xff\x98\xff\xe1\xff\xe6\xff\xe9\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x15\x00\x0d\x00\x15\x00\x0f\x00\x10\x00\x47\x00\x12\x00\x20\x00\x21\x00\x22\x00\x05\x00\x17\x00\x18\x00\x47\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x11\x00\x12\x00\x0e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x0c\x00\x4f\x00\x0c\x00\x05\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x35\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x49\x00\x45\x00\x46\x00\x11\x00\x12\x00\x56\x00\x57\x00\x4a\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0e\x00\x5b\x00\x4a\x00\x5b\x00\x4b\x00\x06\x00\x44\x00\x58\x00\x59\x00\x06\x00\x4a\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x5a\x00\x0d\x00\x37\x00\x0f\x00\x10\x00\x60\x00\x12\x00\x46\x00\x20\x00\x21\x00\x46\x00\x17\x00\x18\x00\x4a\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x5b\x00\x37\x00\x5b\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x45\x00\x5d\x00\x5e\x00\x5f\x00\x45\x00\x18\x00\x19\x00\x1a\x00\x5a\x00\x38\x00\x11\x00\x12\x00\x4f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x24\x00\x45\x00\x46\x00\x5d\x00\x5e\x00\x5f\x00\x56\x00\x5d\x00\x5e\x00\x5f\x00\x4a\x00\x5d\x00\x5e\x00\x5f\x00\x47\x00\x65\x00\x47\x00\x47\x00\x11\x00\x65\x00\x58\x00\x59\x00\x11\x00\x4a\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x4a\x00\x0d\x00\x49\x00\x0f\x00\x10\x00\x4b\x00\x12\x00\x47\x00\x47\x00\x32\x00\x69\x00\x17\x00\x18\x00\x32\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x69\x00\x69\x00\x69\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x36\x00\x69\x00\x69\x00\x69\x00\x20\x00\x69\x00\x22\x00\x3d\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x47\x00\x45\x00\x46\x00\x64\x00\x69\x00\x48\x00\x47\x00\x64\x00\x15\x00\x69\x00\x69\x00\x69\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x69\x00\x58\x00\x59\x00\x15\x00\x16\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x69\x00\x12\x00\x69\x00\x69\x00\x69\x00\x69\x00\x17\x00\x18\x00\x69\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x46\x00\x46\x00\x46\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x48\x00\x4a\x00\x49\x00\x69\x00\x5a\x00\x5b\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x4b\x00\x45\x00\x46\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4a\x00\x69\x00\x4a\x00\x69\x00\x58\x00\x59\x00\x48\x00\x47\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x4a\x00\x12\x00\x69\x00\x69\x00\x69\x00\x4a\x00\x17\x00\x18\x00\x46\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x69\x00\x46\x00\x69\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x69\x00\x69\x00\x01\x00\x18\x00\x19\x00\x1a\x00\x69\x00\x46\x00\x02\x00\x16\x00\x0a\x00\x20\x00\x1f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x03\x00\x45\x00\x46\x00\x13\x00\x14\x00\x24\x00\x04\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x58\x00\x59\x00\x05\x00\x16\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x06\x00\x12\x00\x01\x00\x0a\x00\x05\x00\x02\x00\x17\x00\x18\x00\x04\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x05\x00\x15\x00\x02\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x01\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x40\x00\x41\x00\x42\x00\x43\x00\x16\x00\x45\x00\x46\x00\x06\x00\x24\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1f\x00\x24\x00\x58\x00\x59\x00\x02\x00\x02\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x24\x00\x12\x00\x11\x00\x24\x00\x05\x00\x24\x00\x17\x00\x18\x00\x16\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x01\x00\x03\x00\x05\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\x00\x04\x00\x04\x00\x24\x00\x24\x00\x06\x00\x05\x00\x24\x00\x03\x00\x02\x00\x24\x00\x05\x00\x24\x00\x40\x00\x41\x00\x42\x00\x43\x00\x05\x00\x45\x00\x46\x00\x1b\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x24\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x01\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x25\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\x00\xff\xff\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\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\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\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\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x13\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\x32\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x32\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\x32\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x32\x00\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\x32\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x39\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\x39\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\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\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\x00\x01\x42\x00\x43\x00\x44\x00\x45\x00\xde\x00\x46\x00\x8a\x00\x47\x00\x48\x00\x01\x01\x49\x00\x9c\x00\x9d\x00\x9e\x00\x8d\x00\x4a\x00\x4b\x00\x03\x01\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xba\xff\xba\xff\x05\x01\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x06\x01\xf6\x00\xf1\x00\xb5\x00\xb1\xff\xb1\xff\x17\x00\x03\x00\x04\x00\x05\x00\x06\x00\xe7\x00\xfb\x00\x62\x00\x63\x00\x64\x00\x65\x00\xfe\x00\x1a\x00\x66\x00\xbc\xff\xbc\xff\x9f\x00\xa0\x00\xff\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xef\x00\x8b\x00\xe8\x00\x8b\x00\xdf\x00\x31\x00\x26\x00\x67\x00\x68\x00\x33\x00\x8e\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x98\x00\x42\x00\x43\x00\x44\x00\x45\x00\xf0\x00\x46\x00\x07\x00\x47\x00\x48\x00\x27\x00\x49\x00\xe0\x00\x9c\x00\x9d\x00\xe4\x00\x4a\x00\x4b\x00\x8e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xf2\x00\x07\x00\xf2\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x32\x00\x08\x00\x09\x00\x0a\x00\x32\x00\x0c\x00\x0d\x00\x0e\x00\xf0\x00\x29\x00\xa2\x00\xa3\x00\xe5\x00\x62\x00\x63\x00\x64\x00\x65\x00\x0f\x00\x1a\x00\x66\x00\x08\x00\x09\x00\x0a\x00\x9f\x00\x1b\x00\x1c\x00\x1d\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\xe9\x00\x1f\x00\xea\x00\xeb\x00\xf7\x00\x1f\x00\x67\x00\x68\x00\xc1\x00\xec\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\xed\x00\x46\x00\xee\x00\x47\x00\x48\x00\xf3\x00\x49\x00\xb6\x00\xce\x00\xc2\x00\xb7\x00\x4a\x00\x4b\x00\xc2\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xb8\x00\xb9\x00\xba\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\xf9\x00\xbb\x00\xbc\x00\xbd\x00\x23\x00\xc3\x00\x24\x00\xfa\x00\xc4\x00\x62\x00\x63\x00\x64\x00\x65\x00\xda\x00\x1a\x00\x66\x00\x6d\x00\xdb\x00\xd7\x00\xdd\x00\x6d\x00\xb5\x00\x85\x00\x8f\x00\x90\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xa5\x00\x91\x00\x67\x00\x68\x00\xb5\x00\x8d\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x04\x01\x48\x00\x92\x00\x49\x00\x93\x00\x94\x00\x95\x00\x96\x00\x4a\x00\x4b\x00\x97\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x99\x00\x9a\x00\x9b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xa4\x00\x81\x00\x82\x00\x84\x00\xac\x00\xad\x00\x39\x00\x62\x00\x63\x00\x64\x00\x65\x00\x3a\x00\x1a\x00\x66\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x3f\x00\x3c\x00\x40\x00\x34\x00\x67\x00\x68\x00\x35\x00\x37\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xf4\x00\x48\x00\x2c\x00\x49\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x4a\x00\x4b\x00\x13\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x25\x00\x15\x00\x28\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0f\x00\x11\x00\x15\x00\x0c\x00\x0d\x00\x0e\x00\x12\x00\x16\x00\x39\x00\x8d\x00\xe7\x00\x23\x00\x78\x00\x62\x00\x63\x00\x64\x00\x65\x00\x37\x00\x1a\x00\x66\x00\x72\x00\x73\x00\x11\x00\x84\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x67\x00\x68\x00\x2c\x00\x8d\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xf5\x00\x48\x00\x3c\x00\x49\x00\x15\x00\xe7\x00\x2c\x00\x39\x00\x4a\x00\x4b\x00\x84\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x2c\x00\xb5\x00\x39\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x15\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x8d\x00\x1a\x00\x66\x00\x3c\x00\x11\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x78\x00\x11\x00\x67\x00\x68\x00\x39\x00\x39\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xbe\x00\x48\x00\x11\x00\x49\x00\xa2\x00\x11\x00\x2c\x00\x11\x00\x4a\x00\x4b\x00\x8d\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x15\x00\x37\x00\x2c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x37\x00\x84\x00\x84\x00\x11\x00\x11\x00\x3c\x00\x2c\x00\x11\x00\x37\x00\x39\x00\x11\x00\x2c\x00\x11\x00\x62\x00\x63\x00\x64\x00\x65\x00\x2c\x00\x1a\x00\x66\x00\x22\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x11\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x15\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\xff\xff\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xbf\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x00\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xc0\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xa3\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x89\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x24\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xdc\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x87\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x88\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xf8\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcb\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcc\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcd\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\xcf\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\xe2\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xe3\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\xcf\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\x02\x01\x00\x00\xd5\x00\xcf\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\xfd\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\xd5\x00\xcf\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xfc\x00\xd2\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x86\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x3e\x00\x19\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00"#
+
+happyReduceArr = Happy_Data_Array.array (1, 163) [
+	(1 , happyReduce_1),
+	(2 , happyReduce_2),
+	(3 , happyReduce_3),
+	(4 , happyReduce_4),
+	(5 , happyReduce_5),
+	(6 , happyReduce_6),
+	(7 , happyReduce_7),
+	(8 , happyReduce_8),
+	(9 , happyReduce_9),
+	(10 , happyReduce_10),
+	(11 , happyReduce_11),
+	(12 , happyReduce_12),
+	(13 , happyReduce_13),
+	(14 , happyReduce_14),
+	(15 , happyReduce_15),
+	(16 , happyReduce_16),
+	(17 , happyReduce_17),
+	(18 , happyReduce_18),
+	(19 , happyReduce_19),
+	(20 , happyReduce_20),
+	(21 , happyReduce_21),
+	(22 , happyReduce_22),
+	(23 , happyReduce_23),
+	(24 , happyReduce_24),
+	(25 , happyReduce_25),
+	(26 , happyReduce_26),
+	(27 , happyReduce_27),
+	(28 , happyReduce_28),
+	(29 , happyReduce_29),
+	(30 , happyReduce_30),
+	(31 , happyReduce_31),
+	(32 , happyReduce_32),
+	(33 , happyReduce_33),
+	(34 , happyReduce_34),
+	(35 , happyReduce_35),
+	(36 , happyReduce_36),
+	(37 , happyReduce_37),
+	(38 , happyReduce_38),
+	(39 , happyReduce_39),
+	(40 , happyReduce_40),
+	(41 , happyReduce_41),
+	(42 , happyReduce_42),
+	(43 , happyReduce_43),
+	(44 , happyReduce_44),
+	(45 , happyReduce_45),
+	(46 , happyReduce_46),
+	(47 , happyReduce_47),
+	(48 , happyReduce_48),
+	(49 , happyReduce_49),
+	(50 , happyReduce_50),
+	(51 , happyReduce_51),
+	(52 , happyReduce_52),
+	(53 , happyReduce_53),
+	(54 , happyReduce_54),
+	(55 , happyReduce_55),
+	(56 , happyReduce_56),
+	(57 , happyReduce_57),
+	(58 , happyReduce_58),
+	(59 , happyReduce_59),
+	(60 , happyReduce_60),
+	(61 , happyReduce_61),
+	(62 , happyReduce_62),
+	(63 , happyReduce_63),
+	(64 , happyReduce_64),
+	(65 , happyReduce_65),
+	(66 , happyReduce_66),
+	(67 , happyReduce_67),
+	(68 , happyReduce_68),
+	(69 , happyReduce_69),
+	(70 , happyReduce_70),
+	(71 , happyReduce_71),
+	(72 , happyReduce_72),
+	(73 , happyReduce_73),
+	(74 , happyReduce_74),
+	(75 , happyReduce_75),
+	(76 , happyReduce_76),
+	(77 , happyReduce_77),
+	(78 , happyReduce_78),
+	(79 , happyReduce_79),
+	(80 , happyReduce_80),
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83),
+	(84 , happyReduce_84),
+	(85 , happyReduce_85),
+	(86 , happyReduce_86),
+	(87 , happyReduce_87),
+	(88 , happyReduce_88),
+	(89 , happyReduce_89),
+	(90 , happyReduce_90),
+	(91 , happyReduce_91),
+	(92 , happyReduce_92),
+	(93 , happyReduce_93),
+	(94 , happyReduce_94),
+	(95 , happyReduce_95),
+	(96 , happyReduce_96),
+	(97 , happyReduce_97),
+	(98 , happyReduce_98),
+	(99 , happyReduce_99),
+	(100 , happyReduce_100),
+	(101 , happyReduce_101),
+	(102 , happyReduce_102),
+	(103 , happyReduce_103),
+	(104 , happyReduce_104),
+	(105 , happyReduce_105),
+	(106 , happyReduce_106),
+	(107 , happyReduce_107),
+	(108 , happyReduce_108),
+	(109 , happyReduce_109),
+	(110 , happyReduce_110),
+	(111 , happyReduce_111),
+	(112 , happyReduce_112),
+	(113 , happyReduce_113),
+	(114 , happyReduce_114),
+	(115 , happyReduce_115),
+	(116 , happyReduce_116),
+	(117 , happyReduce_117),
+	(118 , happyReduce_118),
+	(119 , happyReduce_119),
+	(120 , happyReduce_120),
+	(121 , happyReduce_121),
+	(122 , happyReduce_122),
+	(123 , happyReduce_123),
+	(124 , happyReduce_124),
+	(125 , happyReduce_125),
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163)
+	]
+
+happy_n_terms = 38 :: Int
+happy_n_nonterms = 106 :: Int
+
+happyReduce_1 = happySpecReduce_0  0# happyReduction_1
+happyReduction_1  =  happyIn4
+		 ([]
+	)
+
+happyReduce_2 = happySpecReduce_2  0# happyReduction_2
+happyReduction_2 happy_x_2
+	happy_x_1
+	 =  case happyOut5 happy_x_1 of { happy_var_1 -> 
+	case happyOut4 happy_x_2 of { happy_var_2 -> 
+	happyIn4
+		 (happy_var_1 : happy_var_2
+	)}}
+
+happyReduce_3 = happySpecReduce_1  1# happyReduction_3
+happyReduction_3 happy_x_1
+	 =  case happyOut6 happy_x_1 of { happy_var_1 -> 
+	happyIn5
+		 (happy_var_1
+	)}
+
+happyReduce_4 = happySpecReduce_1  1# happyReduction_4
+happyReduction_4 happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	happyIn5
+		 (happy_var_1
+	)}
+
+happyReduce_5 = happySpecReduce_1  1# happyReduction_5
+happyReduction_5 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (CommentToken happy_var_1) -> 
+	happyIn5
+		 (Comment happy_var_1
+	)}
+
+happyReduce_6 = happySpecReduce_1  2# happyReduction_6
+happyReduction_6 happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	happyIn6
+		 (happy_var_1
+	)}
+
+happyReduce_7 = happySpecReduce_1  2# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn6
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happyReduce 10# 3# happyReduction_8
+happyReduction_8 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
+	case happyOut10 happy_x_5 of { happy_var_5 -> 
+	case happyOut11 happy_x_7 of { happy_var_7 -> 
+	case happyOut9 happy_x_8 of { happy_var_8 -> 
+	happyIn7
+		 (AFormula        happy_var_3               happy_var_5                happy_var_7           happy_var_8
+	) `HappyStk` happyRest}}}}
+
+happyReduce_9 = happyReduce 10# 4# happyReduction_9
+happyReduction_9 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
+	case happyOut10 happy_x_5 of { happy_var_5 -> 
+	case happyOut23 happy_x_7 of { happy_var_7 -> 
+	case happyOut9 happy_x_8 of { happy_var_8 -> 
+	happyIn8
+		 (AFormula          happy_var_3              happy_var_5  (univquant_free_vars happy_var_7) happy_var_8
+	) `HappyStk` happyRest}}}}
+
+happyReduce_10 = happySpecReduce_3  5# happyReduction_10
+happyReduction_10 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut56 happy_x_2 of { happy_var_2 -> 
+	case happyOut57 happy_x_3 of { happy_var_3 -> 
+	happyIn9
+		 (Annotations happy_var_2 happy_var_3
+	)}}
+
+happyReduce_11 = happySpecReduce_0  5# happyReduction_11
+happyReduction_11  =  happyIn9
+		 (NoAnnotations
+	)
+
+happyReduce_12 = happySpecReduce_1  6# happyReduction_12
+happyReduction_12 happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	happyIn10
+		 (Role happy_var_1
+	)}
+
+happyReduce_13 = happySpecReduce_1  7# happyReduction_13
+happyReduction_13 happy_x_1
+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (happy_var_1
+	)}
+
+happyReduce_14 = happySpecReduce_1  7# happyReduction_14
+happyReduction_14 happy_x_1
+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (happy_var_1
+	)}
+
+happyReduce_15 = happySpecReduce_1  8# happyReduction_15
+happyReduction_15 happy_x_1
+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> 
+	happyIn12
+		 (happy_var_1
+	)}
+
+happyReduce_16 = happySpecReduce_1  8# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut14 happy_x_1 of { happy_var_1 -> 
+	happyIn12
+		 (happy_var_1
+	)}
+
+happyReduce_17 = happySpecReduce_3  9# happyReduction_17
+happyReduction_17 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_2 of { happy_var_2 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn13
+		 (happy_var_2 happy_var_1 happy_var_3
+	)}}}
+
+happyReduce_18 = happySpecReduce_1  10# happyReduction_18
+happyReduction_18 happy_x_1
+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 (happy_var_1
+	)}
+
+happyReduce_19 = happySpecReduce_1  10# happyReduction_19
+happyReduction_19 happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 (happy_var_1
+	)}
+
+happyReduce_20 = happyReduce 4# 11# happyReduction_20
+happyReduction_20 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut19 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	case happyOut16 happy_x_4 of { happy_var_4 -> 
+	happyIn15
+		 (foldl (.|.) (happy_var_1 .|. happy_var_3) happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_21 = happySpecReduce_0  12# happyReduction_21
+happyReduction_21  =  happyIn16
+		 ([]
+	)
+
+happyReduce_22 = happySpecReduce_3  12# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut19 happy_x_2 of { happy_var_2 -> 
+	case happyOut16 happy_x_3 of { happy_var_3 -> 
+	happyIn16
+		 (happy_var_2 : happy_var_3
+	)}}
+
+happyReduce_23 = happyReduce 4# 13# happyReduction_23
+happyReduction_23 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut19 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	case happyOut18 happy_x_4 of { happy_var_4 -> 
+	happyIn17
+		 (foldl (.&.) (happy_var_1 .&. happy_var_3) happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_24 = happySpecReduce_0  14# happyReduction_24
+happyReduction_24  =  happyIn18
+		 ([]
+	)
+
+happyReduce_25 = happySpecReduce_3  14# happyReduction_25
+happyReduction_25 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut19 happy_x_2 of { happy_var_2 -> 
+	case happyOut18 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (happy_var_2 : happy_var_3
+	)}}
+
+happyReduce_26 = happySpecReduce_1  15# happyReduction_26
+happyReduction_26 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 (happy_var_1
+	)}
+
+happyReduce_27 = happySpecReduce_1  15# happyReduction_27
+happyReduction_27 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 (happy_var_1
+	)}
+
+happyReduce_28 = happySpecReduce_1  15# happyReduction_28
+happyReduction_28 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 (happy_var_1
+	)}
+
+happyReduce_29 = happySpecReduce_3  15# happyReduction_29
+happyReduction_29 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut11 happy_x_2 of { happy_var_2 -> 
+	happyIn19
+		 (happy_var_2
+	)}
+
+happyReduce_30 = happyReduce 6# 16# happyReduction_30
+happyReduction_30 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut28 happy_x_1 of { happy_var_1 -> 
+	case happyOut21 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut19 happy_x_6 of { happy_var_6 -> 
+	happyIn20
+		 (happy_var_1 happy_var_3 happy_var_6 `withComments` comm happy_var_5
+	) `HappyStk` happyRest}}}}
+
+happyReduce_31 = happySpecReduce_1  17# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn21
+		 ([happy_var_1]
+	)}
+
+happyReduce_32 = happySpecReduce_3  17# happyReduction_32
+happyReduction_32 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	case happyOut21 happy_x_3 of { happy_var_3 -> 
+	happyIn21
+		 (happy_var_1 : happy_var_3
+	)}}
+
+happyReduce_33 = happySpecReduce_2  18# happyReduction_33
+happyReduction_33 happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_2 of { happy_var_2 -> 
+	happyIn22
+		 (happy_var_1 happy_var_2
+	)}}
+
+happyReduce_34 = happySpecReduce_1  18# happyReduction_34
+happyReduction_34 happy_x_1
+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
+	happyIn22
+		 (happy_var_1
+	)}
+
+happyReduce_35 = happySpecReduce_3  19# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut24 happy_x_2 of { happy_var_2 -> 
+	happyIn23
+		 (happy_var_2
+	)}
+
+happyReduce_36 = happySpecReduce_1  19# happyReduction_36
+happyReduction_36 happy_x_1
+	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
+	happyIn23
+		 (happy_var_1
+	)}
+
+happyReduce_37 = happySpecReduce_2  20# happyReduction_37
+happyReduction_37 happy_x_2
+	happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 (foldl (.|.) happy_var_1 happy_var_2
+	)}}
+
+happyReduce_38 = happySpecReduce_0  21# happyReduction_38
+happyReduction_38  =  happyIn25
+		 ([]
+	)
+
+happyReduce_39 = happySpecReduce_3  21# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut26 happy_x_2 of { happy_var_2 -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	happyIn25
+		 (happy_var_2 : happy_var_3
+	)}}
+
+happyReduce_40 = happySpecReduce_1  22# happyReduction_40
+happyReduction_40 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn26
+		 (happy_var_1
+	)}
+
+happyReduce_41 = happySpecReduce_2  22# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn26
+		 ((.~.) happy_var_2
+	)}
+
+happyReduce_42 = happySpecReduce_1  22# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
+	happyIn26
+		 (happy_var_1
+	)}
+
+happyReduce_43 = happySpecReduce_3  23# happyReduction_43
+happyReduction_43 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_2 of { happy_var_2 -> 
+	case happyOut40 happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (happy_var_2 happy_var_1 happy_var_3
+	)}}}
+
+happyReduce_44 = happySpecReduce_1  24# happyReduction_44
+happyReduction_44 happy_x_1
+	 =  happyIn28
+		 (for_all
+	)
+
+happyReduce_45 = happySpecReduce_1  24# happyReduction_45
+happyReduction_45 happy_x_1
+	 =  happyIn28
+		 (exists
+	)
+
+happyReduce_46 = happySpecReduce_1  25# happyReduction_46
+happyReduction_46 happy_x_1
+	 =  happyIn29
+		 ((.<=>.)
+	)
+
+happyReduce_47 = happySpecReduce_1  25# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn29
+		 ((.=>.)
+	)
+
+happyReduce_48 = happySpecReduce_1  25# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn29
+		 ((.<=.)
+	)
+
+happyReduce_49 = happySpecReduce_1  25# happyReduction_49
+happyReduction_49 happy_x_1
+	 =  happyIn29
+		 ((.<~>.)
+	)
+
+happyReduce_50 = happySpecReduce_1  25# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn29
+		 ((.~|.)
+	)
+
+happyReduce_51 = happySpecReduce_1  25# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn29
+		 ((.~&.)
+	)
+
+happyReduce_52 = happySpecReduce_1  26# happyReduction_52
+happyReduction_52 happy_x_1
+	 =  happyIn30
+		 ((.~.)
+	)
+
+happyReduce_53 = happySpecReduce_1  27# happyReduction_53
+happyReduction_53 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_54 = happySpecReduce_1  27# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_55 = happySpecReduce_1  27# happyReduction_55
+happyReduction_55 happy_x_1
+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_56 = happySpecReduce_1  28# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
+	happyIn32
+		 (fApp2pApp happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  29# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_58 = happySpecReduce_1  29# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_59 = happySpecReduce_1  30# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
+	happyIn34
+		 (fApp2pApp happy_var_1
+	)}
+
+happyReduce_60 = happySpecReduce_3  31# happyReduction_60
+happyReduction_60 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
+	case happyOut36 happy_x_2 of { happy_var_2 -> 
+	case happyOut40 happy_x_3 of { happy_var_3 -> 
+	happyIn35
+		 (happy_var_2 happy_var_1 happy_var_3
+	)}}}
+
+happyReduce_61 = happySpecReduce_1  32# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
+	happyIn36
+		 (happy_var_1
+	)}
+
+happyReduce_62 = happySpecReduce_1  33# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn37
+		 ((.=.)
+	)
+
+happyReduce_63 = happySpecReduce_1  34# happyReduction_63
+happyReduction_63 happy_x_1
+	 =  happyIn38
+		 ((.!=.)
+	)
+
+happyReduce_64 = happySpecReduce_1  35# happyReduction_64
+happyReduction_64 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn39
+		 (fApp2pApp happy_var_1
+	)}
+
+happyReduce_65 = happySpecReduce_1  36# happyReduction_65
+happyReduction_65 happy_x_1
+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> 
+	happyIn40
+		 (happy_var_1
+	)}
+
+happyReduce_66 = happySpecReduce_1  36# happyReduction_66
+happyReduction_66 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn40
+		 (var happy_var_1
+	)}
+
+happyReduce_67 = happySpecReduce_1  37# happyReduction_67
+happyReduction_67 happy_x_1
+	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
+	happyIn41
+		 (happy_var_1
+	)}
+
+happyReduce_68 = happySpecReduce_1  37# happyReduction_68
+happyReduction_68 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn41
+		 (happy_var_1
+	)}
+
+happyReduce_69 = happySpecReduce_1  37# happyReduction_69
+happyReduction_69 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn41
+		 (happy_var_1
+	)}
+
+happyReduce_70 = happySpecReduce_1  38# happyReduction_70
+happyReduction_70 happy_x_1
+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
+	happyIn42
+		 (fApp happy_var_1 []
+	)}
+
+happyReduce_71 = happyReduce 4# 38# happyReduction_71
+happyReduction_71 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut44 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 (fApp happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_72 = happySpecReduce_1  39# happyReduction_72
+happyReduction_72 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn43
+		 (happy_var_1
+	)}
+
+happyReduce_73 = happySpecReduce_1  40# happyReduction_73
+happyReduction_73 happy_x_1
+	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
+	happyIn44
+		 (happy_var_1
+	)}
+
+happyReduce_74 = happySpecReduce_1  41# happyReduction_74
+happyReduction_74 happy_x_1
+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> 
+	happyIn45
+		 (happy_var_1
+	)}
+
+happyReduce_75 = happySpecReduce_1  41# happyReduction_75
+happyReduction_75 happy_x_1
+	 =  case happyOut47 happy_x_1 of { happy_var_1 -> 
+	happyIn45
+		 (happy_var_1
+	)}
+
+happyReduce_76 = happySpecReduce_1  42# happyReduction_76
+happyReduction_76 happy_x_1
+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
+	happyIn46
+		 (numberLitTerm happy_var_1
+	)}
+
+happyReduce_77 = happySpecReduce_1  42# happyReduction_77
+happyReduction_77 happy_x_1
+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
+	happyIn46
+		 (distinctObjectTerm (stripQuotes '"' happy_var_1)
+	)}
+
+happyReduce_78 = happySpecReduce_1  43# happyReduction_78
+happyReduction_78 happy_x_1
+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
+	happyIn47
+		 (happy_var_1
+	)}
+
+happyReduce_79 = happySpecReduce_1  44# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
+	happyIn48
+		 (fApp (AtomicWord happy_var_1) []
+	)}
+
+happyReduce_80 = happyReduce 4# 44# happyReduction_80
+happyReduction_80 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn48
+		 (fApp (AtomicWord happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_81 = happySpecReduce_1  45# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	happyIn49
+		 (happy_var_1
+	)}
+
+happyReduce_82 = happySpecReduce_1  46# happyReduction_82
+happyReduction_82 happy_x_1
+	 =  case happyOut69 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_83 = happySpecReduce_1  47# happyReduction_83
+happyReduction_83 happy_x_1
+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
+	happyIn51
+		 (fApp (AtomicWord happy_var_1) []
+	)}
+
+happyReduce_84 = happyReduce 4# 47# happyReduction_84
+happyReduction_84 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn51
+		 (fApp (AtomicWord happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_85 = happySpecReduce_1  48# happyReduction_85
+happyReduction_85 happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	happyIn52
+		 (happy_var_1
+	)}
+
+happyReduce_86 = happySpecReduce_1  49# happyReduction_86
+happyReduction_86 happy_x_1
+	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_87 = happySpecReduce_1  50# happyReduction_87
+happyReduction_87 happy_x_1
+	 =  case happyOut104 happy_x_1 of { happy_var_1 -> 
+	happyIn54
+		 (V happy_var_1
+	)}
+
+happyReduce_88 = happySpecReduce_1  51# happyReduction_88
+happyReduction_88 happy_x_1
+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
+	happyIn55
+		 ([happy_var_1]
+	)}
+
+happyReduce_89 = happySpecReduce_3  51# happyReduction_89
+happyReduction_89 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1 : happy_var_3
+	)}}
+
+happyReduce_90 = happySpecReduce_1  52# happyReduction_90
+happyReduction_90 happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (happy_var_1
+	)}
+
+happyReduce_91 = happySpecReduce_2  53# happyReduction_91
+happyReduction_91 happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (happy_var_2
+	)}
+
+happyReduce_92 = happySpecReduce_0  53# happyReduction_92
+happyReduction_92  =  happyIn57
+		 (NoUsefulInfo
+	)
+
+happyReduce_93 = happySpecReduce_1  54# happyReduction_93
+happyReduction_93 happy_x_1
+	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
+	happyIn58
+		 (UsefulInfo happy_var_1
+	)}
+
+happyReduce_94 = happyReduce 6# 55# happyReduction_94
+happyReduction_94 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
+	case happyOut60 happy_x_4 of { happy_var_4 -> 
+	happyIn59
+		 (Include happy_var_3 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_95 = happyReduce 4# 56# happyReduction_95
+happyReduction_95 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut61 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_96 = happySpecReduce_0  56# happyReduction_96
+happyReduction_96  =  happyIn60
+		 ([]
+	)
+
+happyReduce_97 = happySpecReduce_1  57# happyReduction_97
+happyReduction_97 happy_x_1
+	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
+	happyIn61
+		 ([happy_var_1]
+	)}
+
+happyReduce_98 = happySpecReduce_3  57# happyReduction_98
+happyReduction_98 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
+	case happyOut61 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 (happy_var_1 : happy_var_3
+	)}}
+
+happyReduce_99 = happySpecReduce_1  58# happyReduction_99
+happyReduction_99 happy_x_1
+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
+	happyIn62
+		 (GTerm happy_var_1
+	)}
+
+happyReduce_100 = happySpecReduce_3  58# happyReduction_100
+happyReduction_100 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
+	case happyOut62 happy_x_3 of { happy_var_3 -> 
+	happyIn62
+		 (ColonSep happy_var_1 happy_var_3
+	)}}
+
+happyReduce_101 = happySpecReduce_1  58# happyReduction_101
+happyReduction_101 happy_x_1
+	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
+	happyIn62
+		 (GList happy_var_1
+	)}
+
+happyReduce_102 = happySpecReduce_1  59# happyReduction_102
+happyReduction_102 happy_x_1
+	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
+	happyIn63
+		 (GWord happy_var_1
+	)}
+
+happyReduce_103 = happyReduce 4# 59# happyReduction_103
+happyReduction_103 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut66 happy_x_3 of { happy_var_3 -> 
+	happyIn63
+		 (GApp happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_104 = happySpecReduce_1  59# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn63
+		 (GVar happy_var_1
+	)}
+
+happyReduce_105 = happySpecReduce_1  59# happyReduction_105
+happyReduction_105 happy_x_1
+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
+	happyIn63
+		 (GNumber happy_var_1
+	)}
+
+happyReduce_106 = happySpecReduce_1  59# happyReduction_106
+happyReduction_106 happy_x_1
+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
+	happyIn63
+		 (GDistinctObject (stripQuotes '"' happy_var_1)
+	)}
+
+happyReduce_107 = happySpecReduce_1  59# happyReduction_107
+happyReduction_107 happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	happyIn63
+		 (happy_var_1
+	)}
+
+happyReduce_108 = happyReduce 4# 60# happyReduction_108
+happyReduction_108 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut102 happy_x_1 of { happy_var_1 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	happyIn64
+		 (GFormulaData happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_109 = happySpecReduce_2  61# happyReduction_109
+happyReduction_109 happy_x_2
+	happy_x_1
+	 =  happyIn65
+		 ([]
+	)
+
+happyReduce_110 = happySpecReduce_3  61# happyReduction_110
+happyReduction_110 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut66 happy_x_2 of { happy_var_2 -> 
+	happyIn65
+		 (happy_var_2
+	)}
+
+happyReduce_111 = happySpecReduce_1  62# happyReduction_111
+happyReduction_111 happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	happyIn66
+		 ([happy_var_1]
+	)}
+
+happyReduce_112 = happySpecReduce_3  62# happyReduction_112
+happyReduction_112 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut66 happy_x_3 of { happy_var_3 -> 
+	happyIn66
+		 (happy_var_1 : happy_var_3
+	)}}
+
+happyReduce_113 = happySpecReduce_1  63# happyReduction_113
+happyReduction_113 happy_x_1
+	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
+	happyIn67
+		 (happy_var_1
+	)}
+
+happyReduce_114 = happySpecReduce_1  63# happyReduction_114
+happyReduction_114 happy_x_1
+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
+	happyIn67
+		 (AtomicWord(show happy_var_1)
+	)}
+
+happyReduce_115 = happySpecReduce_1  64# happyReduction_115
+happyReduction_115 happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	happyIn68
+		 (AtomicWord happy_var_1
+	)}
+
+happyReduce_116 = happySpecReduce_1  64# happyReduction_116
+happyReduction_116 happy_x_1
+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
+	happyIn68
+		 (AtomicWord (stripQuotes '\'' happy_var_1)
+	)}
+
+happyReduce_117 = happySpecReduce_1  65# happyReduction_117
+happyReduction_117 happy_x_1
+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> 
+	happyIn69
+		 (happy_var_1
+	)}
+
+happyReduce_118 = happySpecReduce_1  66# happyReduction_118
+happyReduction_118 happy_x_1
+	 =  case happyOut103 happy_x_1 of { happy_var_1 -> 
+	happyIn70
+		 (happy_var_1
+	)}
+
+happyReduce_119 = happySpecReduce_1  67# happyReduction_119
+happyReduction_119 happy_x_1
+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> 
+	happyIn71
+		 (happy_var_1
+	)}
+
+happyReduce_120 = happySpecReduce_1  67# happyReduction_120
+happyReduction_120 happy_x_1
+	 =  case happyOut106 happy_x_1 of { happy_var_1 -> 
+	happyIn71
+		 (fromIntegral happy_var_1
+	)}
+
+happyReduce_121 = happySpecReduce_1  67# happyReduction_121
+happyReduction_121 happy_x_1
+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
+	happyIn71
+		 (fromIntegral happy_var_1
+	)}
+
+happyReduce_122 = happySpecReduce_1  68# happyReduction_122
+happyReduction_122 happy_x_1
+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
+	happyIn72
+		 (stripQuotes '\'' happy_var_1
+	)}
+
+happyReduce_123 = happySpecReduce_1  69# happyReduction_123
+happyReduction_123 happy_x_1
+	 =  case happyOut105 happy_x_1 of { happy_var_1 -> 
+	happyIn73
+		 (happy_var_1
+	)}
+
+happyReduce_124 = happySpecReduce_1  69# happyReduction_124
+happyReduction_124 happy_x_1
+	 =  happyIn73
+		 ("fof"
+	)
+
+happyReduce_125 = happySpecReduce_1  69# happyReduction_125
+happyReduction_125 happy_x_1
+	 =  happyIn73
+		 ("cnf"
+	)
+
+happyReduce_126 = happySpecReduce_1  69# happyReduction_126
+happyReduction_126 happy_x_1
+	 =  happyIn73
+		 ("include"
+	)
+
+happyReduce_127 = happySpecReduce_2  70# happyReduction_127
+happyReduction_127 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn74
+		 (happy_var_1
+	)}
+
+happyReduce_128 = happySpecReduce_2  71# happyReduction_128
+happyReduction_128 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 (happy_var_1
+	)}
+
+happyReduce_129 = happySpecReduce_2  72# happyReduction_129
+happyReduction_129 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn76
+		 (happy_var_1
+	)}
+
+happyReduce_130 = happySpecReduce_2  73# happyReduction_130
+happyReduction_130 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn77
+		 (happy_var_1
+	)}
+
+happyReduce_131 = happySpecReduce_2  74# happyReduction_131
+happyReduction_131 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn78
+		 (happy_var_1
+	)}
+
+happyReduce_132 = happySpecReduce_2  75# happyReduction_132
+happyReduction_132 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn79
+		 (happy_var_1
+	)}
+
+happyReduce_133 = happySpecReduce_2  76# happyReduction_133
+happyReduction_133 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn80
+		 (happy_var_1
+	)}
+
+happyReduce_134 = happySpecReduce_2  77# happyReduction_134
+happyReduction_134 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn81
+		 (happy_var_1
+	)}
+
+happyReduce_135 = happySpecReduce_2  78# happyReduction_135
+happyReduction_135 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn82
+		 (happy_var_1
+	)}
+
+happyReduce_136 = happySpecReduce_2  79# happyReduction_136
+happyReduction_136 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut109 happy_x_2 of { happy_var_2 -> 
+	happyIn83
+		 (AToken happy_var_1 happy_var_2
+	)}}
+
+happyReduce_137 = happySpecReduce_2  80# happyReduction_137
+happyReduction_137 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn84
+		 (happy_var_1
+	)}
+
+happyReduce_138 = happySpecReduce_2  81# happyReduction_138
+happyReduction_138 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn85
+		 (happy_var_1
+	)}
+
+happyReduce_139 = happySpecReduce_2  82# happyReduction_139
+happyReduction_139 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn86
+		 (happy_var_1
+	)}
+
+happyReduce_140 = happySpecReduce_2  83# happyReduction_140
+happyReduction_140 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn87
+		 (happy_var_1
+	)}
+
+happyReduce_141 = happySpecReduce_2  84# happyReduction_141
+happyReduction_141 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn88
+		 (happy_var_1
+	)}
+
+happyReduce_142 = happySpecReduce_2  85# happyReduction_142
+happyReduction_142 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn89
+		 (happy_var_1
+	)}
+
+happyReduce_143 = happySpecReduce_2  86# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn90
+		 (happy_var_1
+	)}
+
+happyReduce_144 = happySpecReduce_2  87# happyReduction_144
+happyReduction_144 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn91
+		 (happy_var_1
+	)}
+
+happyReduce_145 = happySpecReduce_2  88# happyReduction_145
+happyReduction_145 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn92
+		 (happy_var_1
+	)}
+
+happyReduce_146 = happySpecReduce_2  89# happyReduction_146
+happyReduction_146 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn93
+		 (happy_var_1
+	)}
+
+happyReduce_147 = happySpecReduce_2  90# happyReduction_147
+happyReduction_147 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn94
+		 (happy_var_1
+	)}
+
+happyReduce_148 = happySpecReduce_2  91# happyReduction_148
+happyReduction_148 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn95
+		 (happy_var_1
+	)}
+
+happyReduce_149 = happySpecReduce_2  92# happyReduction_149
+happyReduction_149 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn96
+		 (happy_var_1
+	)}
+
+happyReduce_150 = happySpecReduce_2  93# happyReduction_150
+happyReduction_150 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn97
+		 (happy_var_1
+	)}
+
+happyReduce_151 = happySpecReduce_2  94# happyReduction_151
+happyReduction_151 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn98
+		 (happy_var_1
+	)}
+
+happyReduce_152 = happySpecReduce_2  95# happyReduction_152
+happyReduction_152 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn99
+		 (happy_var_1
+	)}
+
+happyReduce_153 = happySpecReduce_2  96# happyReduction_153
+happyReduction_153 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (SingleQuoted happy_var_1) -> 
+	happyIn100
+		 (happy_var_1
+	)}
+
+happyReduce_154 = happySpecReduce_2  97# happyReduction_154
+happyReduction_154 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (DoubleQuoted happy_var_1) -> 
+	happyIn101
+		 (happy_var_1
+	)}
+
+happyReduce_155 = happySpecReduce_2  98# happyReduction_155
+happyReduction_155 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (DollarWord happy_var_1) -> 
+	happyIn102
+		 (happy_var_1
+	)}
+
+happyReduce_156 = happySpecReduce_2  99# happyReduction_156
+happyReduction_156 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (DollarDollarWord happy_var_1) -> 
+	happyIn103
+		 (happy_var_1
+	)}
+
+happyReduce_157 = happySpecReduce_2  100# happyReduction_157
+happyReduction_157 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (UpperWord happy_var_1) -> 
+	happyIn104
+		 (happy_var_1
+	)}
+
+happyReduce_158 = happySpecReduce_2  101# happyReduction_158
+happyReduction_158 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (LowerWord happy_var_1) -> 
+	happyIn105
+		 (happy_var_1
+	)}
+
+happyReduce_159 = happySpecReduce_2  102# happyReduction_159
+happyReduction_159 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (SignedInt happy_var_1) -> 
+	happyIn106
+		 (happy_var_1
+	)}
+
+happyReduce_160 = happySpecReduce_2  103# happyReduction_160
+happyReduction_160 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (UnsignedInt happy_var_1) -> 
+	happyIn107
+		 (happy_var_1
+	)}
+
+happyReduce_161 = happySpecReduce_2  104# happyReduction_161
+happyReduction_161 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Real happy_var_1) -> 
+	happyIn108
+		 (happy_var_1
+	)}
+
+happyReduce_162 = happySpecReduce_0  105# happyReduction_162
+happyReduction_162  =  happyIn109
+		 ([]
+	)
+
+happyReduce_163 = happySpecReduce_2  105# happyReduction_163
+happyReduction_163 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (CommentToken happy_var_1) -> 
+	case happyOut109 happy_x_2 of { happy_var_2 -> 
+	happyIn109
+		 (happy_var_1 : happy_var_2
+	)}}
+
+happyNewToken action sts stk [] =
+	happyDoAction 37# notHappyAtAll action sts stk []
+
+happyNewToken action sts stk (tk:tks) =
+	let cont i = happyDoAction i tk action sts stk tks in
+	case tk of {
+	LP -> cont 1#;
+	RP -> cont 2#;
+	Lbrack -> cont 3#;
+	Rbrack -> cont 4#;
+	Comma -> cont 5#;
+	Dot -> cont 6#;
+	Star -> cont 7#;
+	Plus -> cont 8#;
+	Rangle -> cont 9#;
+	Oper ":" -> cont 10#;
+	Oper "<=>" -> cont 11#;
+	Oper "=>" -> cont 12#;
+	Oper "<~>" -> cont 13#;
+	Oper "~|" -> cont 14#;
+	Oper "~&" -> cont 15#;
+	Oper "<=" -> cont 16#;
+	Oper "=" -> cont 17#;
+	Oper "!=" -> cont 18#;
+	Oper "!" -> cont 19#;
+	Oper "?" -> cont 20#;
+	Oper "&" -> cont 21#;
+	Oper "|" -> cont 22#;
+	Oper "~" -> cont 23#;
+	LowerWord "fof" -> cont 24#;
+	LowerWord "cnf" -> cont 25#;
+	LowerWord "include" -> cont 26#;
+	SingleQuoted happy_dollar_dollar -> cont 27#;
+	DoubleQuoted happy_dollar_dollar -> cont 28#;
+	DollarWord happy_dollar_dollar -> cont 29#;
+	DollarDollarWord happy_dollar_dollar -> cont 30#;
+	UpperWord happy_dollar_dollar -> cont 31#;
+	LowerWord happy_dollar_dollar -> cont 32#;
+	SignedInt happy_dollar_dollar -> cont 33#;
+	UnsignedInt happy_dollar_dollar -> cont 34#;
+	Real happy_dollar_dollar -> cont 35#;
+	CommentToken happy_dollar_dollar -> cont 36#;
+	_ -> happyError' (tk:tks)
+	}
+
+happyError_ tk tks = happyError' (tk:tks)
+
+newtype HappyIdentity a = HappyIdentity a
+happyIdentity = HappyIdentity
+happyRunIdentity (HappyIdentity a) = a
+
+instance Monad HappyIdentity where
+    return = HappyIdentity
+    (HappyIdentity p) >>= q = q p
+
+happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b
+happyThen = (>>=)
+happyReturn :: () => a -> HappyIdentity a
+happyReturn = (return)
+happyThen1 m k tks = (>>=) m (\a -> k a tks)
+happyReturn1 :: () => a -> b -> HappyIdentity a
+happyReturn1 = \a tks -> (return) a
+happyError' :: () => [(Token)] -> HappyIdentity a
+happyError' = HappyIdentity . ((\xs -> case xs of
+                    xs -> error ("Parse error, pos: "++show (take 25 xs))))
+
+parseTPTPwithComment tks = happyRunIdentity happySomeParser where
+  happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut4 x))
+
+happySeq = happyDontSeq
+
+
+data AToken = AToken { tok :: Token, comm :: [String] }
+
+class Commented c where
+  withComments :: F c -> [String] -> F c
+
+instance Commented Identity where
+  withComments = const
+
+instance Commented (State [String]) where
+  withComments (F mf) s = F $ do { f <- mf; put s; return f }
+
+
+stripQuotes which (x:xs) = go xs
+                      where
+                        go [x] = []
+                        go ('\\':'\\':xs) = '\\':go xs
+                        go ('\\':which:xs) = which:go xs
+                        go (x:xs) = x:go xs
+
+fApp2pApp (T mf) = F $ do FunApp x args <- mf
+                          return $ PredApp x args
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "<built-in>" #-}
+{-# LINE 1 "<command-line>" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
+
+{-# LINE 30 "templates/GenericTemplate.hs" #-}
+
+
+data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
+
+
+
+
+
+{-# LINE 51 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 61 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 70 "templates/GenericTemplate.hs" #-}
+
+infixr 9 `HappyStk`
+data HappyStk a = HappyStk a (HappyStk a)
+
+-----------------------------------------------------------------------------
+-- starting the parse
+
+happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
+
+-----------------------------------------------------------------------------
+-- Accepting the parse
+
+-- If the current token is 0#, it means we've just accepted a partial
+-- parse (a %partial parser).  We must ignore the saved token on the top of
+-- the stack in this case.
+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
+	happyReturn1 ans
+happyAccept j tk st sts (HappyStk ans _) = 
+	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
+
+-----------------------------------------------------------------------------
+-- Arrays only: do the next action
+
+
+
+happyDoAction i tk st
+	= {- nothing -}
+
+
+	  case action of
+		0#		  -> {- nothing -}
+				     happyFail i tk st
+		-1# 	  -> {- nothing -}
+				     happyAccept i tk st
+		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
+
+				     (happyReduceArr Happy_Data_Array.! rule) i tk st
+				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
+		n		  -> {- nothing -}
+
+
+				     happyShift new_state i tk st
+				     where (new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where (off)    = indexShortOffAddr happyActOffsets st
+         (off_i)  = (off Happy_GHC_Exts.+# i)
+	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
+			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
+			else False
+         (action)
+          | check     = indexShortOffAddr happyTable off_i
+          | otherwise = indexShortOffAddr happyDefActions st
+
+{-# LINE 130 "templates/GenericTemplate.hs" #-}
+
+
+indexShortOffAddr (HappyA# arr) off =
+	Happy_GHC_Exts.narrow16Int# i
+  where
+        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+        off' = off Happy_GHC_Exts.*# 2#
+
+
+
+
+
+data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
+
+
+
+
+-----------------------------------------------------------------------------
+-- HappyState data type (not arrays)
+
+{-# LINE 163 "templates/GenericTemplate.hs" #-}
+
+-----------------------------------------------------------------------------
+-- Shifting a token
+
+happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
+     let (i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+--     trace "shifting the error token" $
+     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
+
+happyShift new_state i tk st sts stk =
+     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
+
+-- happyReduce is specialised for the common cases.
+
+happySpecReduce_0 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_0 nt fn j tk st@((action)) sts stk
+     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
+
+happySpecReduce_1 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
+     = let r = fn v1 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_2 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
+     = let r = fn v1 v2 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_3 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
+     = let r = fn v1 v2 v3 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happyReduce k i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyReduce k nt fn j tk st sts stk
+     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
+	 sts1@((HappyCons (st1@(action)) (_))) ->
+        	let r = fn stk in  -- it doesn't hurt to always seq here...
+       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
+
+happyMonadReduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonadReduce k nt fn j tk st sts stk =
+        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
+       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+happyMonad2Reduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonad2Reduce k nt fn j tk st sts stk =
+       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
+       where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+             (off) = indexShortOffAddr happyGotoOffsets st1
+             (off_i) = (off Happy_GHC_Exts.+# nt)
+             (new_state) = indexShortOffAddr happyTable off_i
+
+
+
+
+happyDrop 0# l = l
+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
+
+happyDropStk 0# l = l
+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
+
+-----------------------------------------------------------------------------
+-- Moving to a new state after a reduction
+
+
+happyGoto nt j tk st = 
+   {- nothing -}
+   happyDoAction j tk new_state
+   where (off) = indexShortOffAddr happyGotoOffsets st
+         (off_i) = (off Happy_GHC_Exts.+# nt)
+         (new_state) = indexShortOffAddr happyTable off_i
+
+
+
+
+-----------------------------------------------------------------------------
+-- Error recovery (0# is the error token)
+
+-- parse error if we are in recovery and we fail again
+happyFail  0# tk old_st _ stk =
+--	trace "failing" $ 
+    	happyError_ tk
+
+{-  We don't need state discarding for our restricted implementation of
+    "error".  In fact, it can cause some bogus parses, so I've disabled it
+    for now --SDM
+
+-- discard a state
+happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
+						(saved_tok `HappyStk` _ `HappyStk` stk) =
+--	trace ("discarding state, depth " ++ show (length stk))  $
+	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
+-}
+
+-- Enter error recovery: generate an error token,
+--                       save the old token and carry on.
+happyFail  i tk (action) sts stk =
+--      trace "entering error recovery" $
+	happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
+
+-- Internal happy errors:
+
+notHappyAtAll :: a
+notHappyAtAll = error "Internal Happy error\n"
+
+-----------------------------------------------------------------------------
+-- Hack to get the typechecker to accept our action functions
+
+
+happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
+happyTcHack x y = y
+{-# INLINE happyTcHack #-}
+
+
+-----------------------------------------------------------------------------
+-- Seq-ing.  If the --strict flag is given, then Happy emits 
+--	happySeq = happyDoSeq
+-- otherwise it emits
+-- 	happySeq = happyDontSeq
+
+happyDoSeq, happyDontSeq :: a -> b -> b
+happyDoSeq   a b = a `seq` b
+happyDontSeq a b = b
+
+-----------------------------------------------------------------------------
+-- Don't inline any functions from the template.  GHC has a nasty habit
+-- of deciding to inline happyGoto everywhere, which increases the size of
+-- the generated parser quite a bit.
+
+
+{-# NOINLINE happyDoAction #-}
+{-# NOINLINE happyTable #-}
+{-# NOINLINE happyCheck #-}
+{-# NOINLINE happyActOffsets #-}
+{-# NOINLINE happyGotoOffsets #-}
+{-# NOINLINE happyDefActions #-}
+
+{-# NOINLINE happyShift #-}
+{-# NOINLINE happySpecReduce_0 #-}
+{-# NOINLINE happySpecReduce_1 #-}
+{-# NOINLINE happySpecReduce_2 #-}
+{-# NOINLINE happySpecReduce_3 #-}
+{-# NOINLINE happyReduce #-}
+{-# NOINLINE happyMonadReduce #-}
+{-# NOINLINE happyGoto #-}
+{-# NOINLINE happyFail #-}
+
+-- end of Happy Template.
diff --git a/dist/build/ParserC.hs b/dist/build/ParserC.hs
deleted file mode 100644
--- a/dist/build/ParserC.hs
+++ /dev/null
@@ -1,2487 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}
-{-# OPTIONS -fglasgow-exts -cpp #-}
-module ParserC where
-    
-import Data.Char
-import Data.Data
-import Control.Monad
-import Data.List as L
-import Lexer
-import Data.Set as S
-import Codec.TPTP.Base
-import System.IO
-import System.IO.Unsafe
-import Control.Monad.Identity
-import Control.Monad.State
-import qualified Data.Array as Happy_Data_Array
-import qualified GHC.Exts as Happy_GHC_Exts
-
--- parser produced by Happy Version 1.18.5
-
-newtype HappyAbsSyn  = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn4 :: ([TPTP_Input_ c]) -> (HappyAbsSyn )
-happyIn4 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn4 #-}
-happyOut4 :: (HappyAbsSyn ) -> ([TPTP_Input_ c])
-happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut4 #-}
-happyIn5 :: (TPTP_Input_ c) -> (HappyAbsSyn )
-happyIn5 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn5 #-}
-happyOut5 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
-happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut5 #-}
-happyIn6 :: (TPTP_Input_ c) -> (HappyAbsSyn )
-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (TPTP_Input_ c) -> (HappyAbsSyn )
-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn ) -> (TPTP_Input_ c)
-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (TPTP_Input) -> (HappyAbsSyn )
-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn ) -> (TPTP_Input)
-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (Annotations) -> (HappyAbsSyn )
-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn ) -> (Annotations)
-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (Role) -> (HappyAbsSyn )
-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn ) -> (Role)
-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: (F c) -> (HappyAbsSyn )
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn ) -> (F c)
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: (F c) -> (HappyAbsSyn )
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn ) -> (F c)
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (F c) -> (HappyAbsSyn )
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn ) -> (F c)
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: (F c) -> (HappyAbsSyn )
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn ) -> (F c)
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: (F c) -> (HappyAbsSyn )
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn ) -> (F c)
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([F c]) -> (HappyAbsSyn )
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn ) -> ([F c])
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: (F c) -> (HappyAbsSyn )
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn ) -> (F c)
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: ([F c]) -> (HappyAbsSyn )
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn ) -> ([F c])
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: (FormulaC) -> (HappyAbsSyn )
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn ) -> (FormulaC)
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (F c) -> (HappyAbsSyn )
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn ) -> (F c)
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: ([V]) -> (HappyAbsSyn )
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn ) -> ([V])
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (F c) -> (HappyAbsSyn )
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn ) -> (F c)
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: (F c) -> (HappyAbsSyn )
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn ) -> (F c)
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: (F c) -> (HappyAbsSyn )
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn ) -> (F c)
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: ([F c]) -> (HappyAbsSyn )
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn ) -> ([F c])
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (FormulaC) -> (HappyAbsSyn )
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn ) -> (FormulaC)
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (F c) -> (HappyAbsSyn )
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn ) -> (F c)
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([V] -> FormulaC -> FormulaC) -> (HappyAbsSyn )
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn ) -> ([V] -> FormulaC -> FormulaC)
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: (FormulaC -> FormulaC -> FormulaC) -> (HappyAbsSyn )
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn ) -> (FormulaC -> FormulaC -> FormulaC)
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (FormulaC -> FormulaC) -> (HappyAbsSyn )
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn ) -> (FormulaC -> FormulaC)
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (F c) -> (HappyAbsSyn )
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn ) -> (F c)
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (F c) -> (HappyAbsSyn )
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn ) -> (F c)
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: (F c) -> (HappyAbsSyn )
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn ) -> (F c)
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: (F c) -> (HappyAbsSyn )
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn ) -> (F c)
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: (F c) -> (HappyAbsSyn )
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn ) -> (F c)
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: (T c -> T c -> F c) -> (HappyAbsSyn )
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn ) -> (T c -> T c -> F c)
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: (TermC -> TermC -> FormulaC) -> (HappyAbsSyn )
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn ) -> (TermC -> TermC -> FormulaC)
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: (TermC -> TermC -> FormulaC) -> (HappyAbsSyn )
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn ) -> (TermC -> TermC -> FormulaC)
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: (F c) -> (HappyAbsSyn )
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn ) -> (F c)
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: (TermC) -> (HappyAbsSyn )
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn ) -> (TermC)
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: (TermC) -> (HappyAbsSyn )
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn ) -> (TermC)
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: (TermC) -> (HappyAbsSyn )
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn ) -> (TermC)
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (AtomicWord) -> (HappyAbsSyn )
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn ) -> (AtomicWord)
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (AtomicWord) -> (HappyAbsSyn )
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn ) -> (AtomicWord)
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (TermC) -> (HappyAbsSyn )
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn ) -> (TermC)
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (TermC) -> (HappyAbsSyn )
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn ) -> (TermC)
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (T c) -> (HappyAbsSyn )
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn ) -> (T c)
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (TermC) -> (HappyAbsSyn )
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn ) -> (TermC)
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (String) -> (HappyAbsSyn )
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn ) -> (String)
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (String) -> (HappyAbsSyn )
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn ) -> (String)
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (TermC) -> (HappyAbsSyn )
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn ) -> (TermC)
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: (String) -> (HappyAbsSyn )
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn ) -> (String)
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: (String) -> (HappyAbsSyn )
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn ) -> (String)
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: (V) -> (HappyAbsSyn )
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn ) -> (V)
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([T c]) -> (HappyAbsSyn )
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn ) -> ([T c])
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: (GTerm) -> (HappyAbsSyn )
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn ) -> (GTerm)
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: (UsefulInfo) -> (HappyAbsSyn )
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn ) -> (UsefulInfo)
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: (UsefulInfo) -> (HappyAbsSyn )
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn ) -> (UsefulInfo)
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: (TPTP_Input) -> (HappyAbsSyn )
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn ) -> (TPTP_Input)
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([AtomicWord]) -> (HappyAbsSyn )
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn ) -> ([AtomicWord])
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: ([AtomicWord]) -> (HappyAbsSyn )
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn ) -> ([AtomicWord])
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: (GTerm) -> (HappyAbsSyn )
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn ) -> (GTerm)
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: (GData) -> (HappyAbsSyn )
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn ) -> (GData)
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: (GData) -> (HappyAbsSyn )
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn ) -> (GData)
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([GTerm]) -> (HappyAbsSyn )
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn ) -> ([GTerm])
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: ([GTerm]) -> (HappyAbsSyn )
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn ) -> ([GTerm])
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: (AtomicWord) -> (HappyAbsSyn )
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn ) -> (AtomicWord)
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: (AtomicWord) -> (HappyAbsSyn )
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn ) -> (AtomicWord)
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (String) -> (HappyAbsSyn )
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn ) -> (String)
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: (String) -> (HappyAbsSyn )
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn ) -> (String)
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: (Double) -> (HappyAbsSyn )
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn ) -> (Double)
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: (String) -> (HappyAbsSyn )
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn ) -> (String)
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (String) -> (HappyAbsSyn )
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn ) -> (String)
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (Token) -> (HappyAbsSyn )
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn ) -> (Token)
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (Token) -> (HappyAbsSyn )
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn ) -> (Token)
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: (Token) -> (HappyAbsSyn )
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn ) -> (Token)
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: (Token) -> (HappyAbsSyn )
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn ) -> (Token)
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: (Token) -> (HappyAbsSyn )
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn ) -> (Token)
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyIn79 :: (Token) -> (HappyAbsSyn )
-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn79 #-}
-happyOut79 :: (HappyAbsSyn ) -> (Token)
-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut79 #-}
-happyIn80 :: (Token) -> (HappyAbsSyn )
-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn80 #-}
-happyOut80 :: (HappyAbsSyn ) -> (Token)
-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut80 #-}
-happyIn81 :: (Token) -> (HappyAbsSyn )
-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn81 #-}
-happyOut81 :: (HappyAbsSyn ) -> (Token)
-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut81 #-}
-happyIn82 :: (Token) -> (HappyAbsSyn )
-happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn82 #-}
-happyOut82 :: (HappyAbsSyn ) -> (Token)
-happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut82 #-}
-happyIn83 :: (AToken) -> (HappyAbsSyn )
-happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn83 #-}
-happyOut83 :: (HappyAbsSyn ) -> (AToken)
-happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut83 #-}
-happyIn84 :: (Token) -> (HappyAbsSyn )
-happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn84 #-}
-happyOut84 :: (HappyAbsSyn ) -> (Token)
-happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut84 #-}
-happyIn85 :: (Token) -> (HappyAbsSyn )
-happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn85 #-}
-happyOut85 :: (HappyAbsSyn ) -> (Token)
-happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut85 #-}
-happyIn86 :: (Token) -> (HappyAbsSyn )
-happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn86 #-}
-happyOut86 :: (HappyAbsSyn ) -> (Token)
-happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut86 #-}
-happyIn87 :: (Token) -> (HappyAbsSyn )
-happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn87 #-}
-happyOut87 :: (HappyAbsSyn ) -> (Token)
-happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut87 #-}
-happyIn88 :: (Token) -> (HappyAbsSyn )
-happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn88 #-}
-happyOut88 :: (HappyAbsSyn ) -> (Token)
-happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut88 #-}
-happyIn89 :: (Token) -> (HappyAbsSyn )
-happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn89 #-}
-happyOut89 :: (HappyAbsSyn ) -> (Token)
-happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut89 #-}
-happyIn90 :: (Token) -> (HappyAbsSyn )
-happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn90 #-}
-happyOut90 :: (HappyAbsSyn ) -> (Token)
-happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut90 #-}
-happyIn91 :: (Token) -> (HappyAbsSyn )
-happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn91 #-}
-happyOut91 :: (HappyAbsSyn ) -> (Token)
-happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut91 #-}
-happyIn92 :: (Token) -> (HappyAbsSyn )
-happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn92 #-}
-happyOut92 :: (HappyAbsSyn ) -> (Token)
-happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut92 #-}
-happyIn93 :: (Token) -> (HappyAbsSyn )
-happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn93 #-}
-happyOut93 :: (HappyAbsSyn ) -> (Token)
-happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut93 #-}
-happyIn94 :: (Token) -> (HappyAbsSyn )
-happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn94 #-}
-happyOut94 :: (HappyAbsSyn ) -> (Token)
-happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut94 #-}
-happyIn95 :: (Token) -> (HappyAbsSyn )
-happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn95 #-}
-happyOut95 :: (HappyAbsSyn ) -> (Token)
-happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut95 #-}
-happyIn96 :: (Token) -> (HappyAbsSyn )
-happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn96 #-}
-happyOut96 :: (HappyAbsSyn ) -> (Token)
-happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut96 #-}
-happyIn97 :: (Token) -> (HappyAbsSyn )
-happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn97 #-}
-happyOut97 :: (HappyAbsSyn ) -> (Token)
-happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut97 #-}
-happyIn98 :: (Token) -> (HappyAbsSyn )
-happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn98 #-}
-happyOut98 :: (HappyAbsSyn ) -> (Token)
-happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut98 #-}
-happyIn99 :: (Token) -> (HappyAbsSyn )
-happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn99 #-}
-happyOut99 :: (HappyAbsSyn ) -> (Token)
-happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut99 #-}
-happyIn100 :: (String) -> (HappyAbsSyn )
-happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn100 #-}
-happyOut100 :: (HappyAbsSyn ) -> (String)
-happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut100 #-}
-happyIn101 :: (String) -> (HappyAbsSyn )
-happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn101 #-}
-happyOut101 :: (HappyAbsSyn ) -> (String)
-happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut101 #-}
-happyIn102 :: (String) -> (HappyAbsSyn )
-happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn102 #-}
-happyOut102 :: (HappyAbsSyn ) -> (String)
-happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut102 #-}
-happyIn103 :: (String) -> (HappyAbsSyn )
-happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn103 #-}
-happyOut103 :: (HappyAbsSyn ) -> (String)
-happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut103 #-}
-happyIn104 :: (String) -> (HappyAbsSyn )
-happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn104 #-}
-happyOut104 :: (HappyAbsSyn ) -> (String)
-happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut104 #-}
-happyIn105 :: (String) -> (HappyAbsSyn )
-happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn105 #-}
-happyOut105 :: (HappyAbsSyn ) -> (String)
-happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut105 #-}
-happyIn106 :: (Int) -> (HappyAbsSyn )
-happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn106 #-}
-happyOut106 :: (HappyAbsSyn ) -> (Int)
-happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut106 #-}
-happyIn107 :: (Int) -> (HappyAbsSyn )
-happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn107 #-}
-happyOut107 :: (HappyAbsSyn ) -> (Int)
-happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut107 #-}
-happyIn108 :: (Double) -> (HappyAbsSyn )
-happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn108 #-}
-happyOut108 :: (HappyAbsSyn ) -> (Double)
-happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut108 #-}
-happyIn109 :: ([String]) -> (HappyAbsSyn )
-happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn109 #-}
-happyOut109 :: (HappyAbsSyn ) -> ([String])
-happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut109 #-}
-happyInTok :: (Token) -> (HappyAbsSyn )
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn ) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x7c\x00\x00\x00\x5b\x02\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02\x79\x02\x79\x02\x50\x02\x50\x02\x50\x02\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x52\x02\x41\x02\xd9\x00\xd9\x00\x00\x00\x65\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x02\x3f\x02\x3f\x02\x5f\x02\x00\x00\x5f\x02\x00\x00\x00\x00\x60\x02\x5e\x02\x3c\x02\x90\x01\x00\x00\x00\x00\x00\x00\x90\x01\x5a\x02\x00\x00\x5a\x02\x00\x00\xd9\x00\x39\x02\x58\x02\x38\x02\x00\x00\x00\x00\x38\x02\x00\x00\x57\x02\x43\x02\xfe\x01\xa6\x01\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x44\x02\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x30\x00\x00\x00\x45\x02\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x45\x02\x09\x00\x00\x00\x45\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x36\x02\x00\x00\x29\x02\x00\x00\x00\x00\x48\x01\xe8\x01\xd9\x00\x00\x00\x16\x02\x00\x00\x00\x00\x00\x00\x00\x00\x28\x02\x25\x02\x00\x00\x48\x01\x13\x02\x24\x02\xb0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x02\xe8\x01\xe8\x01\xe8\x01\xe8\x01\x00\x00\xe8\x01\x00\x00\x00\x00\xff\x01\xff\x01\x00\x00\x03\x02\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\xa6\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xec\x01\x0d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\xd8\x01\x00\x00\xe1\x01\xe7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x01\xe0\x01\xe0\x01\xe0\x01\x00\x00\x00\x00\xdc\x01\x00\x00\xd6\x01\x00\x00\x00\x00\xde\x01\x00\x00\x56\x02\x00\x00\xde\x01\xd7\x01\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\xa6\x01\xc7\x01\xb8\x01\x00\x00\xb0\x02\xb0\x02\x97\x01\x00\x00\xb3\x01\x00\x00\x00\x00\x00\x00\xe8\x01\x92\x01\xa5\x01\x00\x00\xa6\x01\x00\x00\xa6\x01\x00\x00\x98\x01\xf5\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\xb0\x02\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x46\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x01\x4d\x01\x45\x01\x42\x01\x3d\x01\x3c\x01\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x0d\x00\x29\x01\xd3\x03\x7e\x03\x00\x00\x3e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\x1d\x01\x1c\x01\x39\x01\x00\x00\x60\x00\x00\x00\x00\x00\x2c\x01\x2a\x01\x06\x01\x4e\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x24\x01\x00\x00\x22\x01\x00\x00\x43\x06\x04\x01\x11\x01\xee\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x0a\x01\x08\x01\x8a\x03\xbe\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\x09\x01\x34\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x00\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\xc8\x00\xc5\x00\xc4\x00\xc3\x00\xc2\x00\xc0\x00\xac\x00\xa4\x00\xa3\x00\x0b\x00\x00\x00\xf3\xff\x00\x00\x00\x00\xdf\x03\x80\x04\x38\x06\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\xc1\x00\x00\x00\x32\x04\x9d\x00\xbb\x00\xff\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x24\x05\xfb\x04\xd2\x04\x76\x05\x00\x00\x4d\x05\x00\x00\x00\x00\x94\x00\x91\x00\x00\x00\xa5\x00\xda\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x02\x26\x02\x8f\x00\x8e\x00\x8d\x00\x77\x00\x76\x00\x75\x00\x6b\x00\x8a\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x3d\x00\x00\x00\x83\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6a\x00\x69\x00\x67\x00\x00\x00\x00\x00\x03\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x88\x05\x00\x00\x29\x00\x04\x00\x00\x00\xf1\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\xf5\xff\x00\x00\xc8\x05\x0e\x06\xd0\xff\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xa9\x04\xa1\x00\xdf\xff\x00\x00\xcc\x01\x00\x00\x72\x01\x00\x00\x21\x00\x0e\x00\x18\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xff\x00\x00\xb9\x05\xc4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\xfe\xff\x00\x00\x00\x00\xfe\xff\xfc\xff\xf9\xff\xf8\xff\xfb\xff\x00\x00\x00\x00\x00\x00\x5d\xff\x5d\xff\x5d\xff\xfa\xff\x67\xff\x5d\xff\x68\xff\x69\xff\x00\x00\x5d\xff\x00\x00\x00\x00\xfd\xff\x00\x00\x8e\xff\x8c\xff\x83\xff\x82\xff\x81\xff\x8b\xff\x84\xff\x8d\xff\x5d\xff\x5d\xff\x5d\xff\x00\x00\x80\xff\x9f\xff\x85\xff\x5c\xff\x00\x00\x00\x00\x5d\xff\x00\x00\x5f\xff\x61\xff\x66\xff\x00\x00\x00\x00\xf3\xff\x00\x00\x7c\xff\x00\x00\x5d\xff\x00\x00\x5d\xff\x7f\xff\xa1\xff\x5d\xff\x7e\xff\x00\x00\x9e\xff\x00\x00\x00\x00\xf4\xff\xf2\xff\xf0\xff\xef\xff\xed\xff\xec\xff\xf1\xff\xe5\xff\xe4\xff\xdd\xff\x00\x00\x00\x00\xe3\xff\xca\xff\xc9\xff\xc6\xff\xc5\xff\xc8\xff\x00\x00\xbe\xff\xc7\xff\xb9\xff\xb7\xff\xbb\xff\xb5\xff\xb4\xff\xc4\xff\xb0\xff\xae\xff\xbf\xff\xac\xff\xaa\xff\xbd\xff\xb6\xff\xad\xff\xa9\xff\xb3\xff\x00\x00\xd3\xff\xd2\xff\xcb\xff\xb2\xff\x8a\xff\x89\xff\xa8\xff\x87\xff\x86\xff\x88\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\xf4\xff\xdb\xff\xd9\xff\xd5\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x5d\xff\x7b\xff\x7d\xff\x9d\xff\xd6\xff\x00\x00\x00\x00\xda\xff\x00\x00\x5d\xff\x00\x00\x00\x00\x5e\xff\x60\xff\x62\xff\x63\xff\x64\xff\x65\xff\x6a\xff\x6d\xff\x6e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\xc1\xff\xc0\xff\x5d\xff\x5d\xff\xde\xff\x00\x00\x00\x00\xd1\xff\xd0\xff\xce\xff\xcd\xff\xcc\xff\xcf\xff\x00\x00\x00\x00\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x00\x00\x00\x00\x6c\xff\x71\xff\x72\xff\x73\xff\x74\xff\x75\xff\x76\xff\xea\xff\xe7\xff\xee\xff\x00\x00\xe0\xff\x6f\xff\x70\xff\xd4\xff\xbc\xff\xb1\xff\xba\xff\xc3\xff\xa7\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x97\xff\xa3\xff\xa5\xff\x9c\xff\x94\xff\x9a\xff\x99\xff\x96\xff\x00\x00\x95\xff\x00\x00\x00\x00\x6b\xff\xd9\xff\xdc\xff\xd8\xff\xf6\xff\x00\x00\x90\xff\x00\x00\x92\xff\x00\x00\x00\x00\x5d\xff\xf5\xff\x00\x00\xab\xff\xaf\xff\xb8\xff\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xeb\xff\x00\x00\xf7\xff\xea\xff\xe7\xff\x00\x00\xdf\xff\xa6\xff\xa4\xff\xa2\xff\x77\xff\x9b\xff\x00\x00\x91\xff\x00\x00\x00\x00\x93\xff\x8f\xff\x98\xff\xe1\xff\xe6\xff\xe9\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x15\x00\x0d\x00\x15\x00\x0f\x00\x10\x00\x47\x00\x12\x00\x20\x00\x21\x00\x22\x00\x05\x00\x17\x00\x18\x00\x47\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x11\x00\x12\x00\x0e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x0c\x00\x4f\x00\x0c\x00\x05\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x35\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x49\x00\x45\x00\x46\x00\x11\x00\x12\x00\x56\x00\x57\x00\x4a\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0e\x00\x5b\x00\x4a\x00\x5b\x00\x4b\x00\x06\x00\x44\x00\x58\x00\x59\x00\x06\x00\x4a\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x5a\x00\x0d\x00\x37\x00\x0f\x00\x10\x00\x60\x00\x12\x00\x46\x00\x20\x00\x21\x00\x46\x00\x17\x00\x18\x00\x4a\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x5b\x00\x37\x00\x5b\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x45\x00\x5d\x00\x5e\x00\x5f\x00\x45\x00\x18\x00\x19\x00\x1a\x00\x5a\x00\x38\x00\x11\x00\x12\x00\x4f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x24\x00\x45\x00\x46\x00\x5d\x00\x5e\x00\x5f\x00\x56\x00\x5d\x00\x5e\x00\x5f\x00\x4a\x00\x5d\x00\x5e\x00\x5f\x00\x47\x00\x65\x00\x47\x00\x47\x00\x11\x00\x65\x00\x58\x00\x59\x00\x11\x00\x4a\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x4a\x00\x0d\x00\x49\x00\x0f\x00\x10\x00\x4b\x00\x12\x00\x47\x00\x47\x00\x32\x00\x69\x00\x17\x00\x18\x00\x32\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x69\x00\x69\x00\x69\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x36\x00\x69\x00\x69\x00\x69\x00\x20\x00\x69\x00\x22\x00\x3d\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x47\x00\x45\x00\x46\x00\x64\x00\x69\x00\x48\x00\x47\x00\x64\x00\x15\x00\x69\x00\x69\x00\x69\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x69\x00\x58\x00\x59\x00\x15\x00\x16\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x69\x00\x12\x00\x69\x00\x69\x00\x69\x00\x69\x00\x17\x00\x18\x00\x69\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x46\x00\x46\x00\x46\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x48\x00\x4a\x00\x49\x00\x69\x00\x5a\x00\x5b\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x4b\x00\x45\x00\x46\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4a\x00\x69\x00\x4a\x00\x69\x00\x58\x00\x59\x00\x48\x00\x47\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x4a\x00\x12\x00\x69\x00\x69\x00\x69\x00\x4a\x00\x17\x00\x18\x00\x46\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x69\x00\x46\x00\x69\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x69\x00\x69\x00\x01\x00\x18\x00\x19\x00\x1a\x00\x69\x00\x46\x00\x02\x00\x16\x00\x0a\x00\x20\x00\x1f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x03\x00\x45\x00\x46\x00\x13\x00\x14\x00\x24\x00\x04\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x58\x00\x59\x00\x05\x00\x16\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x06\x00\x12\x00\x01\x00\x0a\x00\x05\x00\x02\x00\x17\x00\x18\x00\x04\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x05\x00\x15\x00\x02\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x01\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x40\x00\x41\x00\x42\x00\x43\x00\x16\x00\x45\x00\x46\x00\x06\x00\x24\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1f\x00\x24\x00\x58\x00\x59\x00\x02\x00\x02\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x24\x00\x12\x00\x11\x00\x24\x00\x05\x00\x24\x00\x17\x00\x18\x00\x16\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x01\x00\x03\x00\x05\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\x00\x04\x00\x04\x00\x24\x00\x24\x00\x06\x00\x05\x00\x24\x00\x03\x00\x02\x00\x24\x00\x05\x00\x24\x00\x40\x00\x41\x00\x42\x00\x43\x00\x05\x00\x45\x00\x46\x00\x1b\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x24\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x01\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x25\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\x00\xff\xff\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\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\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\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\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x13\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\x32\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x32\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\x32\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x32\x00\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\x32\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x39\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\x39\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\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\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x00\x01\x42\x00\x43\x00\x44\x00\x45\x00\xde\x00\x46\x00\x8a\x00\x47\x00\x48\x00\x01\x01\x49\x00\x9c\x00\x9d\x00\x9e\x00\x8d\x00\x4a\x00\x4b\x00\x03\x01\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xba\xff\xba\xff\x05\x01\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x06\x01\xf6\x00\xf1\x00\xb5\x00\xb1\xff\xb1\xff\x17\x00\x03\x00\x04\x00\x05\x00\x06\x00\xe7\x00\xfb\x00\x62\x00\x63\x00\x64\x00\x65\x00\xfe\x00\x1a\x00\x66\x00\xbc\xff\xbc\xff\x9f\x00\xa0\x00\xff\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xef\x00\x8b\x00\xe8\x00\x8b\x00\xdf\x00\x31\x00\x26\x00\x67\x00\x68\x00\x33\x00\x8e\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x98\x00\x42\x00\x43\x00\x44\x00\x45\x00\xf0\x00\x46\x00\x07\x00\x47\x00\x48\x00\x27\x00\x49\x00\xe0\x00\x9c\x00\x9d\x00\xe4\x00\x4a\x00\x4b\x00\x8e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xf2\x00\x07\x00\xf2\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x32\x00\x08\x00\x09\x00\x0a\x00\x32\x00\x0c\x00\x0d\x00\x0e\x00\xf0\x00\x29\x00\xa2\x00\xa3\x00\xe5\x00\x62\x00\x63\x00\x64\x00\x65\x00\x0f\x00\x1a\x00\x66\x00\x08\x00\x09\x00\x0a\x00\x9f\x00\x1b\x00\x1c\x00\x1d\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\xe9\x00\x1f\x00\xea\x00\xeb\x00\xf7\x00\x1f\x00\x67\x00\x68\x00\xc1\x00\xec\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\xed\x00\x46\x00\xee\x00\x47\x00\x48\x00\xf3\x00\x49\x00\xb6\x00\xce\x00\xc2\x00\xb7\x00\x4a\x00\x4b\x00\xc2\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xb8\x00\xb9\x00\xba\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\xf9\x00\xbb\x00\xbc\x00\xbd\x00\x23\x00\xc3\x00\x24\x00\xfa\x00\xc4\x00\x62\x00\x63\x00\x64\x00\x65\x00\xda\x00\x1a\x00\x66\x00\x6d\x00\xdb\x00\xd7\x00\xdd\x00\x6d\x00\xb5\x00\x85\x00\x8f\x00\x90\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xa5\x00\x91\x00\x67\x00\x68\x00\xb5\x00\x8d\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x04\x01\x48\x00\x92\x00\x49\x00\x93\x00\x94\x00\x95\x00\x96\x00\x4a\x00\x4b\x00\x97\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x99\x00\x9a\x00\x9b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xa4\x00\x81\x00\x82\x00\x84\x00\xac\x00\xad\x00\x39\x00\x62\x00\x63\x00\x64\x00\x65\x00\x3a\x00\x1a\x00\x66\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x3f\x00\x3c\x00\x40\x00\x34\x00\x67\x00\x68\x00\x35\x00\x37\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xf4\x00\x48\x00\x2c\x00\x49\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x4a\x00\x4b\x00\x13\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x25\x00\x15\x00\x28\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0f\x00\x11\x00\x15\x00\x0c\x00\x0d\x00\x0e\x00\x12\x00\x16\x00\x39\x00\x8d\x00\xe7\x00\x23\x00\x78\x00\x62\x00\x63\x00\x64\x00\x65\x00\x37\x00\x1a\x00\x66\x00\x72\x00\x73\x00\x11\x00\x84\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x67\x00\x68\x00\x2c\x00\x8d\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xf5\x00\x48\x00\x3c\x00\x49\x00\x15\x00\xe7\x00\x2c\x00\x39\x00\x4a\x00\x4b\x00\x84\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x2c\x00\xb5\x00\x39\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x15\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x8d\x00\x1a\x00\x66\x00\x3c\x00\x11\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x78\x00\x11\x00\x67\x00\x68\x00\x39\x00\x39\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xbe\x00\x48\x00\x11\x00\x49\x00\xa2\x00\x11\x00\x2c\x00\x11\x00\x4a\x00\x4b\x00\x8d\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x15\x00\x37\x00\x2c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x37\x00\x84\x00\x84\x00\x11\x00\x11\x00\x3c\x00\x2c\x00\x11\x00\x37\x00\x39\x00\x11\x00\x2c\x00\x11\x00\x62\x00\x63\x00\x64\x00\x65\x00\x2c\x00\x1a\x00\x66\x00\x22\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x11\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x15\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\xff\xff\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xbf\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x00\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xc0\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xa3\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x89\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x24\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xdc\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x87\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x88\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xf8\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcb\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcc\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcd\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\xcf\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\xe2\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xe3\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\xcf\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\x02\x01\x00\x00\xd5\x00\xcf\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\xfd\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\xd5\x00\xcf\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xfc\x00\xd2\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x86\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x3e\x00\x19\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = Happy_Data_Array.array (1, 163) [
-	(1 , happyReduce_1),
-	(2 , happyReduce_2),
-	(3 , happyReduce_3),
-	(4 , happyReduce_4),
-	(5 , happyReduce_5),
-	(6 , happyReduce_6),
-	(7 , happyReduce_7),
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163)
-	]
-
-happy_n_terms = 38 :: Int
-happy_n_nonterms = 106 :: Int
-
-happyReduce_1 = happySpecReduce_0  0# happyReduction_1
-happyReduction_1  =  happyIn4
-		 ([]
-	)
-
-happyReduce_2 = happySpecReduce_2  0# happyReduction_2
-happyReduction_2 happy_x_2
-	happy_x_1
-	 =  case happyOut5 happy_x_1 of { happy_var_1 -> 
-	case happyOut4 happy_x_2 of { happy_var_2 -> 
-	happyIn4
-		 (happy_var_1 : happy_var_2
-	)}}
-
-happyReduce_3 = happySpecReduce_1  1# happyReduction_3
-happyReduction_3 happy_x_1
-	 =  case happyOut6 happy_x_1 of { happy_var_1 -> 
-	happyIn5
-		 (happy_var_1
-	)}
-
-happyReduce_4 = happySpecReduce_1  1# happyReduction_4
-happyReduction_4 happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	happyIn5
-		 (happy_var_1
-	)}
-
-happyReduce_5 = happySpecReduce_1  1# happyReduction_5
-happyReduction_5 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (CommentToken happy_var_1) -> 
-	happyIn5
-		 (Comment happy_var_1
-	)}
-
-happyReduce_6 = happySpecReduce_1  2# happyReduction_6
-happyReduction_6 happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	happyIn6
-		 (happy_var_1
-	)}
-
-happyReduce_7 = happySpecReduce_1  2# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn6
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happyReduce 10# 3# happyReduction_8
-happyReduction_8 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
-	case happyOut10 happy_x_5 of { happy_var_5 -> 
-	case happyOut11 happy_x_7 of { happy_var_7 -> 
-	case happyOut9 happy_x_8 of { happy_var_8 -> 
-	happyIn7
-		 (AFormula        happy_var_3               happy_var_5                happy_var_7           happy_var_8
-	) `HappyStk` happyRest}}}}
-
-happyReduce_9 = happyReduce 10# 4# happyReduction_9
-happyReduction_9 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
-	case happyOut10 happy_x_5 of { happy_var_5 -> 
-	case happyOut23 happy_x_7 of { happy_var_7 -> 
-	case happyOut9 happy_x_8 of { happy_var_8 -> 
-	happyIn8
-		 (AFormula          happy_var_3              happy_var_5  (univquant_free_vars happy_var_7) happy_var_8
-	) `HappyStk` happyRest}}}}
-
-happyReduce_10 = happySpecReduce_3  5# happyReduction_10
-happyReduction_10 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_2 of { happy_var_2 -> 
-	case happyOut57 happy_x_3 of { happy_var_3 -> 
-	happyIn9
-		 (Annotations happy_var_2 happy_var_3
-	)}}
-
-happyReduce_11 = happySpecReduce_0  5# happyReduction_11
-happyReduction_11  =  happyIn9
-		 (NoAnnotations
-	)
-
-happyReduce_12 = happySpecReduce_1  6# happyReduction_12
-happyReduction_12 happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	happyIn10
-		 (Role happy_var_1
-	)}
-
-happyReduce_13 = happySpecReduce_1  7# happyReduction_13
-happyReduction_13 happy_x_1
-	 =  case happyOut12 happy_x_1 of { happy_var_1 -> 
-	happyIn11
-		 (happy_var_1
-	)}
-
-happyReduce_14 = happySpecReduce_1  7# happyReduction_14
-happyReduction_14 happy_x_1
-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
-	happyIn11
-		 (happy_var_1
-	)}
-
-happyReduce_15 = happySpecReduce_1  8# happyReduction_15
-happyReduction_15 happy_x_1
-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 (happy_var_1
-	)}
-
-happyReduce_16 = happySpecReduce_1  8# happyReduction_16
-happyReduction_16 happy_x_1
-	 =  case happyOut14 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 (happy_var_1
-	)}
-
-happyReduce_17 = happySpecReduce_3  9# happyReduction_17
-happyReduction_17 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
-	case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn13
-		 (happy_var_2 happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_18 = happySpecReduce_1  10# happyReduction_18
-happyReduction_18 happy_x_1
-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
-	happyIn14
-		 (happy_var_1
-	)}
-
-happyReduce_19 = happySpecReduce_1  10# happyReduction_19
-happyReduction_19 happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	happyIn14
-		 (happy_var_1
-	)}
-
-happyReduce_20 = happyReduce 4# 11# happyReduction_20
-happyReduction_20 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut19 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	case happyOut16 happy_x_4 of { happy_var_4 -> 
-	happyIn15
-		 (foldl (.|.) (happy_var_1 .|. happy_var_3) happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_21 = happySpecReduce_0  12# happyReduction_21
-happyReduction_21  =  happyIn16
-		 ([]
-	)
-
-happyReduce_22 = happySpecReduce_3  12# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut19 happy_x_2 of { happy_var_2 -> 
-	case happyOut16 happy_x_3 of { happy_var_3 -> 
-	happyIn16
-		 (happy_var_2 : happy_var_3
-	)}}
-
-happyReduce_23 = happyReduce 4# 13# happyReduction_23
-happyReduction_23 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut19 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	case happyOut18 happy_x_4 of { happy_var_4 -> 
-	happyIn17
-		 (foldl (.&.) (happy_var_1 .&. happy_var_3) happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_24 = happySpecReduce_0  14# happyReduction_24
-happyReduction_24  =  happyIn18
-		 ([]
-	)
-
-happyReduce_25 = happySpecReduce_3  14# happyReduction_25
-happyReduction_25 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut19 happy_x_2 of { happy_var_2 -> 
-	case happyOut18 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 (happy_var_2 : happy_var_3
-	)}}
-
-happyReduce_26 = happySpecReduce_1  15# happyReduction_26
-happyReduction_26 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 (happy_var_1
-	)}
-
-happyReduce_27 = happySpecReduce_1  15# happyReduction_27
-happyReduction_27 happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 (happy_var_1
-	)}
-
-happyReduce_28 = happySpecReduce_1  15# happyReduction_28
-happyReduction_28 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 (happy_var_1
-	)}
-
-happyReduce_29 = happySpecReduce_3  15# happyReduction_29
-happyReduction_29 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut11 happy_x_2 of { happy_var_2 -> 
-	happyIn19
-		 (happy_var_2
-	)}
-
-happyReduce_30 = happyReduce 6# 16# happyReduction_30
-happyReduction_30 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut28 happy_x_1 of { happy_var_1 -> 
-	case happyOut21 happy_x_3 of { happy_var_3 -> 
-	case happyOut83 happy_x_5 of { happy_var_5 -> 
-	case happyOut19 happy_x_6 of { happy_var_6 -> 
-	happyIn20
-		 (happy_var_1 happy_var_3 happy_var_6 `withComments` comm happy_var_5
-	) `HappyStk` happyRest}}}}
-
-happyReduce_31 = happySpecReduce_1  17# happyReduction_31
-happyReduction_31 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn21
-		 ([happy_var_1]
-	)}
-
-happyReduce_32 = happySpecReduce_3  17# happyReduction_32
-happyReduction_32 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	case happyOut21 happy_x_3 of { happy_var_3 -> 
-	happyIn21
-		 (happy_var_1 : happy_var_3
-	)}}
-
-happyReduce_33 = happySpecReduce_2  18# happyReduction_33
-happyReduction_33 happy_x_2
-	happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_2 of { happy_var_2 -> 
-	happyIn22
-		 (happy_var_1 happy_var_2
-	)}}
-
-happyReduce_34 = happySpecReduce_1  18# happyReduction_34
-happyReduction_34 happy_x_1
-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
-	happyIn22
-		 (happy_var_1
-	)}
-
-happyReduce_35 = happySpecReduce_3  19# happyReduction_35
-happyReduction_35 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut24 happy_x_2 of { happy_var_2 -> 
-	happyIn23
-		 (happy_var_2
-	)}
-
-happyReduce_36 = happySpecReduce_1  19# happyReduction_36
-happyReduction_36 happy_x_1
-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
-	happyIn23
-		 (happy_var_1
-	)}
-
-happyReduce_37 = happySpecReduce_2  20# happyReduction_37
-happyReduction_37 happy_x_2
-	happy_x_1
-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn24
-		 (foldl (.|.) happy_var_1 happy_var_2
-	)}}
-
-happyReduce_38 = happySpecReduce_0  21# happyReduction_38
-happyReduction_38  =  happyIn25
-		 ([]
-	)
-
-happyReduce_39 = happySpecReduce_3  21# happyReduction_39
-happyReduction_39 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut26 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	happyIn25
-		 (happy_var_2 : happy_var_3
-	)}}
-
-happyReduce_40 = happySpecReduce_1  22# happyReduction_40
-happyReduction_40 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn26
-		 (happy_var_1
-	)}
-
-happyReduce_41 = happySpecReduce_2  22# happyReduction_41
-happyReduction_41 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn26
-		 ((.~.) happy_var_2
-	)}
-
-happyReduce_42 = happySpecReduce_1  22# happyReduction_42
-happyReduction_42 happy_x_1
-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
-	happyIn26
-		 (happy_var_1
-	)}
-
-happyReduce_43 = happySpecReduce_3  23# happyReduction_43
-happyReduction_43 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_2 of { happy_var_2 -> 
-	case happyOut40 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (happy_var_2 happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_44 = happySpecReduce_1  24# happyReduction_44
-happyReduction_44 happy_x_1
-	 =  happyIn28
-		 (for_all
-	)
-
-happyReduce_45 = happySpecReduce_1  24# happyReduction_45
-happyReduction_45 happy_x_1
-	 =  happyIn28
-		 (exists
-	)
-
-happyReduce_46 = happySpecReduce_1  25# happyReduction_46
-happyReduction_46 happy_x_1
-	 =  happyIn29
-		 ((.<=>.)
-	)
-
-happyReduce_47 = happySpecReduce_1  25# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  happyIn29
-		 ((.=>.)
-	)
-
-happyReduce_48 = happySpecReduce_1  25# happyReduction_48
-happyReduction_48 happy_x_1
-	 =  happyIn29
-		 ((.<=.)
-	)
-
-happyReduce_49 = happySpecReduce_1  25# happyReduction_49
-happyReduction_49 happy_x_1
-	 =  happyIn29
-		 ((.<~>.)
-	)
-
-happyReduce_50 = happySpecReduce_1  25# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn29
-		 ((.~|.)
-	)
-
-happyReduce_51 = happySpecReduce_1  25# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn29
-		 ((.~&.)
-	)
-
-happyReduce_52 = happySpecReduce_1  26# happyReduction_52
-happyReduction_52 happy_x_1
-	 =  happyIn30
-		 ((.~.)
-	)
-
-happyReduce_53 = happySpecReduce_1  27# happyReduction_53
-happyReduction_53 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_54 = happySpecReduce_1  27# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_55 = happySpecReduce_1  27# happyReduction_55
-happyReduction_55 happy_x_1
-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_56 = happySpecReduce_1  28# happyReduction_56
-happyReduction_56 happy_x_1
-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
-	happyIn32
-		 (fApp2pApp happy_var_1
-	)}
-
-happyReduce_57 = happySpecReduce_1  29# happyReduction_57
-happyReduction_57 happy_x_1
-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_58 = happySpecReduce_1  29# happyReduction_58
-happyReduction_58 happy_x_1
-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_59 = happySpecReduce_1  30# happyReduction_59
-happyReduction_59 happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	happyIn34
-		 (fApp2pApp happy_var_1
-	)}
-
-happyReduce_60 = happySpecReduce_3  31# happyReduction_60
-happyReduction_60 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
-	case happyOut36 happy_x_2 of { happy_var_2 -> 
-	case happyOut40 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_2 happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_61 = happySpecReduce_1  32# happyReduction_61
-happyReduction_61 happy_x_1
-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
-	happyIn36
-		 (happy_var_1
-	)}
-
-happyReduce_62 = happySpecReduce_1  33# happyReduction_62
-happyReduction_62 happy_x_1
-	 =  happyIn37
-		 ((.=.)
-	)
-
-happyReduce_63 = happySpecReduce_1  34# happyReduction_63
-happyReduction_63 happy_x_1
-	 =  happyIn38
-		 ((.!=.)
-	)
-
-happyReduce_64 = happySpecReduce_1  35# happyReduction_64
-happyReduction_64 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn39
-		 (fApp2pApp happy_var_1
-	)}
-
-happyReduce_65 = happySpecReduce_1  36# happyReduction_65
-happyReduction_65 happy_x_1
-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> 
-	happyIn40
-		 (happy_var_1
-	)}
-
-happyReduce_66 = happySpecReduce_1  36# happyReduction_66
-happyReduction_66 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn40
-		 (var happy_var_1
-	)}
-
-happyReduce_67 = happySpecReduce_1  37# happyReduction_67
-happyReduction_67 happy_x_1
-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
-	happyIn41
-		 (happy_var_1
-	)}
-
-happyReduce_68 = happySpecReduce_1  37# happyReduction_68
-happyReduction_68 happy_x_1
-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
-	happyIn41
-		 (happy_var_1
-	)}
-
-happyReduce_69 = happySpecReduce_1  37# happyReduction_69
-happyReduction_69 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn41
-		 (happy_var_1
-	)}
-
-happyReduce_70 = happySpecReduce_1  38# happyReduction_70
-happyReduction_70 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn42
-		 (fApp happy_var_1 []
-	)}
-
-happyReduce_71 = happyReduce 4# 38# happyReduction_71
-happyReduction_71 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut44 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 (fApp happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_72 = happySpecReduce_1  39# happyReduction_72
-happyReduction_72 happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (happy_var_1
-	)}
-
-happyReduce_73 = happySpecReduce_1  40# happyReduction_73
-happyReduction_73 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn44
-		 (happy_var_1
-	)}
-
-happyReduce_74 = happySpecReduce_1  41# happyReduction_74
-happyReduction_74 happy_x_1
-	 =  case happyOut46 happy_x_1 of { happy_var_1 -> 
-	happyIn45
-		 (happy_var_1
-	)}
-
-happyReduce_75 = happySpecReduce_1  41# happyReduction_75
-happyReduction_75 happy_x_1
-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> 
-	happyIn45
-		 (happy_var_1
-	)}
-
-happyReduce_76 = happySpecReduce_1  42# happyReduction_76
-happyReduction_76 happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	happyIn46
-		 (numberLitTerm happy_var_1
-	)}
-
-happyReduce_77 = happySpecReduce_1  42# happyReduction_77
-happyReduction_77 happy_x_1
-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
-	happyIn46
-		 (distinctObjectTerm (stripQuotes '"' happy_var_1)
-	)}
-
-happyReduce_78 = happySpecReduce_1  43# happyReduction_78
-happyReduction_78 happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	happyIn47
-		 (happy_var_1
-	)}
-
-happyReduce_79 = happySpecReduce_1  44# happyReduction_79
-happyReduction_79 happy_x_1
-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
-	happyIn48
-		 (fApp (AtomicWord happy_var_1) []
-	)}
-
-happyReduce_80 = happyReduce 4# 44# happyReduction_80
-happyReduction_80 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn48
-		 (fApp (AtomicWord happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_81 = happySpecReduce_1  45# happyReduction_81
-happyReduction_81 happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	happyIn49
-		 (happy_var_1
-	)}
-
-happyReduce_82 = happySpecReduce_1  46# happyReduction_82
-happyReduction_82 happy_x_1
-	 =  case happyOut69 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_83 = happySpecReduce_1  47# happyReduction_83
-happyReduction_83 happy_x_1
-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (fApp (AtomicWord happy_var_1) []
-	)}
-
-happyReduce_84 = happyReduce 4# 47# happyReduction_84
-happyReduction_84 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (fApp (AtomicWord happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_85 = happySpecReduce_1  48# happyReduction_85
-happyReduction_85 happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	happyIn52
-		 (happy_var_1
-	)}
-
-happyReduce_86 = happySpecReduce_1  49# happyReduction_86
-happyReduction_86 happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (happy_var_1
-	)}
-
-happyReduce_87 = happySpecReduce_1  50# happyReduction_87
-happyReduction_87 happy_x_1
-	 =  case happyOut104 happy_x_1 of { happy_var_1 -> 
-	happyIn54
-		 (V happy_var_1
-	)}
-
-happyReduce_88 = happySpecReduce_1  51# happyReduction_88
-happyReduction_88 happy_x_1
-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
-	happyIn55
-		 ([happy_var_1]
-	)}
-
-happyReduce_89 = happySpecReduce_3  51# happyReduction_89
-happyReduction_89 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1 : happy_var_3
-	)}}
-
-happyReduce_90 = happySpecReduce_1  52# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happySpecReduce_2  53# happyReduction_91
-happyReduction_91 happy_x_2
-	happy_x_1
-	 =  case happyOut58 happy_x_2 of { happy_var_2 -> 
-	happyIn57
-		 (happy_var_2
-	)}
-
-happyReduce_92 = happySpecReduce_0  53# happyReduction_92
-happyReduction_92  =  happyIn57
-		 (NoUsefulInfo
-	)
-
-happyReduce_93 = happySpecReduce_1  54# happyReduction_93
-happyReduction_93 happy_x_1
-	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
-	happyIn58
-		 (UsefulInfo happy_var_1
-	)}
-
-happyReduce_94 = happyReduce 6# 55# happyReduction_94
-happyReduction_94 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
-	case happyOut60 happy_x_4 of { happy_var_4 -> 
-	happyIn59
-		 (Include happy_var_3 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_95 = happyReduce 4# 56# happyReduction_95
-happyReduction_95 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut61 happy_x_3 of { happy_var_3 -> 
-	happyIn60
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_96 = happySpecReduce_0  56# happyReduction_96
-happyReduction_96  =  happyIn60
-		 ([]
-	)
-
-happyReduce_97 = happySpecReduce_1  57# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
-	happyIn61
-		 ([happy_var_1]
-	)}
-
-happyReduce_98 = happySpecReduce_3  57# happyReduction_98
-happyReduction_98 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
-	case happyOut61 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 (happy_var_1 : happy_var_3
-	)}}
-
-happyReduce_99 = happySpecReduce_1  58# happyReduction_99
-happyReduction_99 happy_x_1
-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
-	happyIn62
-		 (GTerm happy_var_1
-	)}
-
-happyReduce_100 = happySpecReduce_3  58# happyReduction_100
-happyReduction_100 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
-	case happyOut62 happy_x_3 of { happy_var_3 -> 
-	happyIn62
-		 (ColonSep happy_var_1 happy_var_3
-	)}}
-
-happyReduce_101 = happySpecReduce_1  58# happyReduction_101
-happyReduction_101 happy_x_1
-	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
-	happyIn62
-		 (GList happy_var_1
-	)}
-
-happyReduce_102 = happySpecReduce_1  59# happyReduction_102
-happyReduction_102 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (GWord happy_var_1
-	)}
-
-happyReduce_103 = happyReduce 4# 59# happyReduction_103
-happyReduction_103 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut66 happy_x_3 of { happy_var_3 -> 
-	happyIn63
-		 (GApp happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_104 = happySpecReduce_1  59# happyReduction_104
-happyReduction_104 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (GVar happy_var_1
-	)}
-
-happyReduce_105 = happySpecReduce_1  59# happyReduction_105
-happyReduction_105 happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (GNumber happy_var_1
-	)}
-
-happyReduce_106 = happySpecReduce_1  59# happyReduction_106
-happyReduction_106 happy_x_1
-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (GDistinctObject (stripQuotes '"' happy_var_1)
-	)}
-
-happyReduce_107 = happySpecReduce_1  59# happyReduction_107
-happyReduction_107 happy_x_1
-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (happy_var_1
-	)}
-
-happyReduce_108 = happyReduce 4# 60# happyReduction_108
-happyReduction_108 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut102 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 (GFormulaData happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_109 = happySpecReduce_2  61# happyReduction_109
-happyReduction_109 happy_x_2
-	happy_x_1
-	 =  happyIn65
-		 ([]
-	)
-
-happyReduce_110 = happySpecReduce_3  61# happyReduction_110
-happyReduction_110 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut66 happy_x_2 of { happy_var_2 -> 
-	happyIn65
-		 (happy_var_2
-	)}
-
-happyReduce_111 = happySpecReduce_1  62# happyReduction_111
-happyReduction_111 happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 ([happy_var_1]
-	)}
-
-happyReduce_112 = happySpecReduce_3  62# happyReduction_112
-happyReduction_112 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut66 happy_x_3 of { happy_var_3 -> 
-	happyIn66
-		 (happy_var_1 : happy_var_3
-	)}}
-
-happyReduce_113 = happySpecReduce_1  63# happyReduction_113
-happyReduction_113 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn67
-		 (happy_var_1
-	)}
-
-happyReduce_114 = happySpecReduce_1  63# happyReduction_114
-happyReduction_114 happy_x_1
-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
-	happyIn67
-		 (AtomicWord(show happy_var_1)
-	)}
-
-happyReduce_115 = happySpecReduce_1  64# happyReduction_115
-happyReduction_115 happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	happyIn68
-		 (AtomicWord happy_var_1
-	)}
-
-happyReduce_116 = happySpecReduce_1  64# happyReduction_116
-happyReduction_116 happy_x_1
-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
-	happyIn68
-		 (AtomicWord (stripQuotes '\'' happy_var_1)
-	)}
-
-happyReduce_117 = happySpecReduce_1  65# happyReduction_117
-happyReduction_117 happy_x_1
-	 =  case happyOut102 happy_x_1 of { happy_var_1 -> 
-	happyIn69
-		 (happy_var_1
-	)}
-
-happyReduce_118 = happySpecReduce_1  66# happyReduction_118
-happyReduction_118 happy_x_1
-	 =  case happyOut103 happy_x_1 of { happy_var_1 -> 
-	happyIn70
-		 (happy_var_1
-	)}
-
-happyReduce_119 = happySpecReduce_1  67# happyReduction_119
-happyReduction_119 happy_x_1
-	 =  case happyOut108 happy_x_1 of { happy_var_1 -> 
-	happyIn71
-		 (happy_var_1
-	)}
-
-happyReduce_120 = happySpecReduce_1  67# happyReduction_120
-happyReduction_120 happy_x_1
-	 =  case happyOut106 happy_x_1 of { happy_var_1 -> 
-	happyIn71
-		 (fromIntegral happy_var_1
-	)}
-
-happyReduce_121 = happySpecReduce_1  67# happyReduction_121
-happyReduction_121 happy_x_1
-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
-	happyIn71
-		 (fromIntegral happy_var_1
-	)}
-
-happyReduce_122 = happySpecReduce_1  68# happyReduction_122
-happyReduction_122 happy_x_1
-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 (stripQuotes '\'' happy_var_1
-	)}
-
-happyReduce_123 = happySpecReduce_1  69# happyReduction_123
-happyReduction_123 happy_x_1
-	 =  case happyOut105 happy_x_1 of { happy_var_1 -> 
-	happyIn73
-		 (happy_var_1
-	)}
-
-happyReduce_124 = happySpecReduce_1  69# happyReduction_124
-happyReduction_124 happy_x_1
-	 =  happyIn73
-		 ("fof"
-	)
-
-happyReduce_125 = happySpecReduce_1  69# happyReduction_125
-happyReduction_125 happy_x_1
-	 =  happyIn73
-		 ("cnf"
-	)
-
-happyReduce_126 = happySpecReduce_1  69# happyReduction_126
-happyReduction_126 happy_x_1
-	 =  happyIn73
-		 ("include"
-	)
-
-happyReduce_127 = happySpecReduce_2  70# happyReduction_127
-happyReduction_127 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn74
-		 (happy_var_1
-	)}
-
-happyReduce_128 = happySpecReduce_2  71# happyReduction_128
-happyReduction_128 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn75
-		 (happy_var_1
-	)}
-
-happyReduce_129 = happySpecReduce_2  72# happyReduction_129
-happyReduction_129 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn76
-		 (happy_var_1
-	)}
-
-happyReduce_130 = happySpecReduce_2  73# happyReduction_130
-happyReduction_130 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn77
-		 (happy_var_1
-	)}
-
-happyReduce_131 = happySpecReduce_2  74# happyReduction_131
-happyReduction_131 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn78
-		 (happy_var_1
-	)}
-
-happyReduce_132 = happySpecReduce_2  75# happyReduction_132
-happyReduction_132 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn79
-		 (happy_var_1
-	)}
-
-happyReduce_133 = happySpecReduce_2  76# happyReduction_133
-happyReduction_133 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn80
-		 (happy_var_1
-	)}
-
-happyReduce_134 = happySpecReduce_2  77# happyReduction_134
-happyReduction_134 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn81
-		 (happy_var_1
-	)}
-
-happyReduce_135 = happySpecReduce_2  78# happyReduction_135
-happyReduction_135 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn82
-		 (happy_var_1
-	)}
-
-happyReduce_136 = happySpecReduce_2  79# happyReduction_136
-happyReduction_136 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut109 happy_x_2 of { happy_var_2 -> 
-	happyIn83
-		 (AToken happy_var_1 happy_var_2
-	)}}
-
-happyReduce_137 = happySpecReduce_2  80# happyReduction_137
-happyReduction_137 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn84
-		 (happy_var_1
-	)}
-
-happyReduce_138 = happySpecReduce_2  81# happyReduction_138
-happyReduction_138 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn85
-		 (happy_var_1
-	)}
-
-happyReduce_139 = happySpecReduce_2  82# happyReduction_139
-happyReduction_139 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn86
-		 (happy_var_1
-	)}
-
-happyReduce_140 = happySpecReduce_2  83# happyReduction_140
-happyReduction_140 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn87
-		 (happy_var_1
-	)}
-
-happyReduce_141 = happySpecReduce_2  84# happyReduction_141
-happyReduction_141 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn88
-		 (happy_var_1
-	)}
-
-happyReduce_142 = happySpecReduce_2  85# happyReduction_142
-happyReduction_142 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn89
-		 (happy_var_1
-	)}
-
-happyReduce_143 = happySpecReduce_2  86# happyReduction_143
-happyReduction_143 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn90
-		 (happy_var_1
-	)}
-
-happyReduce_144 = happySpecReduce_2  87# happyReduction_144
-happyReduction_144 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn91
-		 (happy_var_1
-	)}
-
-happyReduce_145 = happySpecReduce_2  88# happyReduction_145
-happyReduction_145 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn92
-		 (happy_var_1
-	)}
-
-happyReduce_146 = happySpecReduce_2  89# happyReduction_146
-happyReduction_146 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn93
-		 (happy_var_1
-	)}
-
-happyReduce_147 = happySpecReduce_2  90# happyReduction_147
-happyReduction_147 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn94
-		 (happy_var_1
-	)}
-
-happyReduce_148 = happySpecReduce_2  91# happyReduction_148
-happyReduction_148 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn95
-		 (happy_var_1
-	)}
-
-happyReduce_149 = happySpecReduce_2  92# happyReduction_149
-happyReduction_149 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn96
-		 (happy_var_1
-	)}
-
-happyReduce_150 = happySpecReduce_2  93# happyReduction_150
-happyReduction_150 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn97
-		 (happy_var_1
-	)}
-
-happyReduce_151 = happySpecReduce_2  94# happyReduction_151
-happyReduction_151 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn98
-		 (happy_var_1
-	)}
-
-happyReduce_152 = happySpecReduce_2  95# happyReduction_152
-happyReduction_152 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn99
-		 (happy_var_1
-	)}
-
-happyReduce_153 = happySpecReduce_2  96# happyReduction_153
-happyReduction_153 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (SingleQuoted happy_var_1) -> 
-	happyIn100
-		 (happy_var_1
-	)}
-
-happyReduce_154 = happySpecReduce_2  97# happyReduction_154
-happyReduction_154 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DoubleQuoted happy_var_1) -> 
-	happyIn101
-		 (happy_var_1
-	)}
-
-happyReduce_155 = happySpecReduce_2  98# happyReduction_155
-happyReduction_155 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DollarWord happy_var_1) -> 
-	happyIn102
-		 (happy_var_1
-	)}
-
-happyReduce_156 = happySpecReduce_2  99# happyReduction_156
-happyReduction_156 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DollarDollarWord happy_var_1) -> 
-	happyIn103
-		 (happy_var_1
-	)}
-
-happyReduce_157 = happySpecReduce_2  100# happyReduction_157
-happyReduction_157 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (UpperWord happy_var_1) -> 
-	happyIn104
-		 (happy_var_1
-	)}
-
-happyReduce_158 = happySpecReduce_2  101# happyReduction_158
-happyReduction_158 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (LowerWord happy_var_1) -> 
-	happyIn105
-		 (happy_var_1
-	)}
-
-happyReduce_159 = happySpecReduce_2  102# happyReduction_159
-happyReduction_159 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (SignedInt happy_var_1) -> 
-	happyIn106
-		 (happy_var_1
-	)}
-
-happyReduce_160 = happySpecReduce_2  103# happyReduction_160
-happyReduction_160 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (UnsignedInt happy_var_1) -> 
-	happyIn107
-		 (happy_var_1
-	)}
-
-happyReduce_161 = happySpecReduce_2  104# happyReduction_161
-happyReduction_161 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Real happy_var_1) -> 
-	happyIn108
-		 (happy_var_1
-	)}
-
-happyReduce_162 = happySpecReduce_0  105# happyReduction_162
-happyReduction_162  =  happyIn109
-		 ([]
-	)
-
-happyReduce_163 = happySpecReduce_2  105# happyReduction_163
-happyReduction_163 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (CommentToken happy_var_1) -> 
-	case happyOut109 happy_x_2 of { happy_var_2 -> 
-	happyIn109
-		 (happy_var_1 : happy_var_2
-	)}}
-
-happyNewToken action sts stk [] =
-	happyDoAction 37# notHappyAtAll action sts stk []
-
-happyNewToken action sts stk (tk:tks) =
-	let cont i = happyDoAction i tk action sts stk tks in
-	case tk of {
-	LP -> cont 1#;
-	RP -> cont 2#;
-	Lbrack -> cont 3#;
-	Rbrack -> cont 4#;
-	Comma -> cont 5#;
-	Dot -> cont 6#;
-	Star -> cont 7#;
-	Plus -> cont 8#;
-	Rangle -> cont 9#;
-	Oper ":" -> cont 10#;
-	Oper "<=>" -> cont 11#;
-	Oper "=>" -> cont 12#;
-	Oper "<~>" -> cont 13#;
-	Oper "~|" -> cont 14#;
-	Oper "~&" -> cont 15#;
-	Oper "<=" -> cont 16#;
-	Oper "=" -> cont 17#;
-	Oper "!=" -> cont 18#;
-	Oper "!" -> cont 19#;
-	Oper "?" -> cont 20#;
-	Oper "&" -> cont 21#;
-	Oper "|" -> cont 22#;
-	Oper "~" -> cont 23#;
-	LowerWord "fof" -> cont 24#;
-	LowerWord "cnf" -> cont 25#;
-	LowerWord "include" -> cont 26#;
-	SingleQuoted happy_dollar_dollar -> cont 27#;
-	DoubleQuoted happy_dollar_dollar -> cont 28#;
-	DollarWord happy_dollar_dollar -> cont 29#;
-	DollarDollarWord happy_dollar_dollar -> cont 30#;
-	UpperWord happy_dollar_dollar -> cont 31#;
-	LowerWord happy_dollar_dollar -> cont 32#;
-	SignedInt happy_dollar_dollar -> cont 33#;
-	UnsignedInt happy_dollar_dollar -> cont 34#;
-	Real happy_dollar_dollar -> cont 35#;
-	CommentToken happy_dollar_dollar -> cont 36#;
-	_ -> happyError' (tk:tks)
-	}
-
-happyError_ tk tks = happyError' (tk:tks)
-
-newtype HappyIdentity a = HappyIdentity a
-happyIdentity = HappyIdentity
-happyRunIdentity (HappyIdentity a) = a
-
-instance Monad HappyIdentity where
-    return = HappyIdentity
-    (HappyIdentity p) >>= q = q p
-
-happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b
-happyThen = (>>=)
-happyReturn :: () => a -> HappyIdentity a
-happyReturn = (return)
-happyThen1 m k tks = (>>=) m (\a -> k a tks)
-happyReturn1 :: () => a -> b -> HappyIdentity a
-happyReturn1 = \a tks -> (return) a
-happyError' :: () => [(Token)] -> HappyIdentity a
-happyError' = HappyIdentity . ((\xs -> case xs of
-                    xs -> error ("Parse error, pos: "++show (take 25 xs))))
-
-parseTPTPwithComment tks = happyRunIdentity happySomeParser where
-  happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut4 x))
-
-happySeq = happyDontSeq
-
-
-data AToken = AToken { tok :: Token, comm :: [String] }
-
-class Commented c where
-  withComments :: F c -> [String] -> F c
-
-instance Commented Identity where
-  withComments = const
-
-instance Commented (State [String]) where
-  withComments (F mf) s = F $ do { f <- mf; put s; return f }
-
-
-stripQuotes which (x:xs) = go xs
-                      where
-                        go [x] = []
-                        go ('\\':'\\':xs) = '\\':go xs
-                        go ('\\':which:xs) = which:go xs
-                        go (x:xs) = x:go xs
-
-fApp2pApp (T mf) = F $ do FunApp x args <- mf
-                          return $ PredApp x args
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command-line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
-
-{-# LINE 30 "templates/GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
-
-
-
-
-
-{-# LINE 51 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 61 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 70 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-	happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-	= {- nothing -}
-
-
-	  case action of
-		0#		  -> {- nothing -}
-				     happyFail i tk st
-		-1# 	  -> {- nothing -}
-				     happyAccept i tk st
-		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
-
-				     (happyReduceArr Happy_Data_Array.! rule) i tk st
-				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
-		n		  -> {- nothing -}
-
-
-				     happyShift new_state i tk st
-				     where !(new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
-   where !(off)    = indexShortOffAddr happyActOffsets st
-         !(off_i)  = (off Happy_GHC_Exts.+# i)
-	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
-			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
-			else False
-         !(action)
-          | check     = indexShortOffAddr happyTable off_i
-          | otherwise = indexShortOffAddr happyDefActions st
-
-{-# LINE 130 "templates/GenericTemplate.hs" #-}
-
-
-indexShortOffAddr (HappyA# arr) off =
-	Happy_GHC_Exts.narrow16Int# i
-  where
-	!i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
-	!high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
-	!low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
-	!off' = off Happy_GHC_Exts.*# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 163 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let !(i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
-	 sts1@((HappyCons (st1@(action)) (_))) ->
-        	let r = fn stk in  -- it doesn't hurt to always seq here...
-       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-             !(off) = indexShortOffAddr happyGotoOffsets st1
-             !(off_i) = (off Happy_GHC_Exts.+# nt)
-             !(new_state) = indexShortOffAddr happyTable off_i
-
-
-
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st = 
-   {- nothing -}
-   happyDoAction j tk new_state
-   where !(off) = indexShortOffAddr happyGotoOffsets st
-         !(off_i) = (off Happy_GHC_Exts.+# nt)
-         !(new_state) = indexShortOffAddr happyTable off_i
-
-
-
-
------------------------------------------------------------------------------
--- Error recovery (0# is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail  0# tk old_st _ stk =
---	trace "failing" $ 
-    	happyError_ tk
-
-{-  We don't need state discarding for our restricted implementation of
-    "error".  In fact, it can cause some bogus parses, so I've disabled it
-    for now --SDM
-
--- discard a state
-happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
-						(saved_tok `HappyStk` _ `HappyStk` stk) =
---	trace ("discarding state, depth " ++ show (length stk))  $
-	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
---                       save the old token and carry on.
-happyFail  i tk (action) sts stk =
---      trace "entering error recovery" $
-	happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll = error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
-happyTcHack x y = y
-{-# INLINE happyTcHack #-}
-
-
------------------------------------------------------------------------------
--- Seq-ing.  If the --strict flag is given, then Happy emits 
---	happySeq = happyDoSeq
--- otherwise it emits
--- 	happySeq = happyDontSeq
-
-happyDoSeq, happyDontSeq :: a -> b -> b
-happyDoSeq   a b = a `seq` b
-happyDontSeq a b = b
-
------------------------------------------------------------------------------
--- Don't inline any functions from the template.  GHC has a nasty habit
--- of deciding to inline happyGoto everywhere, which increases the size of
--- the generated parser quite a bit.
-
-
-{-# NOINLINE happyDoAction #-}
-{-# NOINLINE happyTable #-}
-{-# NOINLINE happyCheck #-}
-{-# NOINLINE happyActOffsets #-}
-{-# NOINLINE happyGotoOffsets #-}
-{-# NOINLINE happyDefActions #-}
-
-{-# NOINLINE happyShift #-}
-{-# NOINLINE happySpecReduce_0 #-}
-{-# NOINLINE happySpecReduce_1 #-}
-{-# NOINLINE happySpecReduce_2 #-}
-{-# NOINLINE happySpecReduce_3 #-}
-{-# NOINLINE happyReduce #-}
-{-# NOINLINE happyMonadReduce #-}
-{-# NOINLINE happyGoto #-}
-{-# NOINLINE happyFail #-}
-
--- end of Happy Template.
diff --git a/logic-TPTP.cabal b/logic-TPTP.cabal
--- a/logic-TPTP.cabal
+++ b/logic-TPTP.cabal
@@ -1,5 +1,5 @@
 name: logic-TPTP    
-version: 0.2.0.4
+version: 0.2.0.6
 cabal-version: >= 1.6
 build-type: Simple
 license: GPL
@@ -41,7 +41,7 @@
                     testing/PrettyPrintFile.hs
                     testing/ParseRandom.hs
                     
-tested-with: GHC==6.12.1
+tested-with: GHC==7.0.1
 
 source-repository head
  type: darcs
@@ -56,9 +56,8 @@
                    , array
                    , syb
                    , containers
-                   , haskell98
                    , ansi-wl-pprint
-                   , QuickCheck >= 2               
+                   , QuickCheck >= 2
                    , utf8-prelude
                    , mtl
  
@@ -72,6 +71,6 @@
  other-modules:
                     Lexer     
                   , Parser
-                  , ParserC
+                  , Parser2
                   , Codec.TPTP.QuickCheck
 
