diff --git a/YesodDsl/AST.hs b/YesodDsl/AST.hs
--- a/YesodDsl/AST.hs
+++ b/YesodDsl/AST.hs
@@ -9,23 +9,23 @@
 import Data.Generics.Uniplate.Data
 import Data.Data (Data)
 import Data.Typeable (Typeable)
+
 -- | definitions in single file form a 'Module'
 data Module = Module {
     modName      :: Maybe String,  -- ^ top-level module must have a name
-    modImports   :: [FilePath],    -- ^ modules may import other modules
-    modEntities  :: [Entity],      
-    modClasses   :: [Class],       
-    modEnums     :: [EnumType],
-    modRoutes    :: [Route],
-    modDefines   :: [Define]
+    modEntities  :: [Entity],      -- ^ database entity definitions
+    modClasses   :: [Class],       -- ^ entity classes
+    modEnums     :: [EnumType],    -- ^ enumerated field types 
+    modRoutes    :: [Route],       -- ^ HTTP routes
+    modDefines   :: [Define]       -- ^ common expressions
 } deriving (Show, Data, Typeable)
 
+-- | safe function to extract 'Module' name
 moduleName :: Module -> String
-moduleName = fromJust . modName
+moduleName m = fromMaybe "" (modName m)
 
 emptyModule = Module {
     modName = Nothing,
-    modImports = [],
     modEntities = [],
     modClasses = [],
     modEnums = [],
@@ -34,25 +34,24 @@
 }
 
 type ClassName = String
+-- | name of a parameter (for various things)
 type ParamName = String
 type EntityName = String
 type EnumName = String
 
+-- | type of a 'Field' of an 'Entity'
 data FieldType = FTWord32 | FTWord64 | FTInt32 | FTInt64 | FTText 
-               | FTBool | FTDouble | FTTimeOfDay | FTDay | FTUTCTime 
-               | FTZonedTime deriving (Eq,Show,Data,Typeable)
+               | FTBool | FTDouble | FTTimeOfDay | FTDay | FTUTCTime 
+               | FTZonedTime deriving (Eq,Show,Data,Typeable)
 
-type FieldName = String 
-type PathName = String
-type UniqueName = String
-type QueryName = String
+-- | file name, row number, and column
 data Location = Loc FilePath Int Int deriving (Eq,Data,Typeable)
 
 instance Show Location where
     show (Loc path row col) = path ++ ":" ++ show row ++ ":" ++ show col
 
-mkLoc t = Loc "" (tokenLineNum t) (tokenColNum t)
 
+
 -- | macro definition, currently used only to define parametrized 
 -- sub-select-queries
 data Define = Define {
@@ -62,11 +61,16 @@
     defineContent :: DefineContent
 } deriving (Show, Eq, Data, Typeable)
 
+-- | macro-like definition, currently only for commonly used parametrized 
+-- sub-queries
 data DefineContent = DefineSubQuery SelectQuery 
                      deriving (Show, Eq, Data, Typeable)
 
+-- | name of a 'Field'
+type FieldName = String 
+
 data Unique = Unique {
-    uniqueName :: UniqueName,
+    uniqueName :: String,
     uniqueFields :: [FieldName]
 } deriving (Show, Eq, Data, Typeable)
 
@@ -188,6 +192,7 @@
     entityName       :: String,
     entityInstances :: [ClassName],
     entityFields     :: [Field],
+    entityClassFields :: [Field],
     entityUniques    :: [Unique],
     entityDeriving   :: [ClassName],
     entityChecks     :: [FunctionName]
@@ -229,6 +234,7 @@
               | FieldRefPathParam Int 
               | FieldRefRequest FieldName
               | FieldRefNamedLocalParam VariableName
+              | FieldRefParamField VariableName FieldName
               deriving (Show, Eq, Data, Typeable) 
 
 entityFieldByName :: Entity -> FieldName -> Field
@@ -257,6 +263,7 @@
    
 
 data Field = Field {
+    fieldLoc      :: Location,
     fieldOptional :: Bool,
     fieldInternal :: Bool,
     fieldName     :: FieldName,
diff --git a/YesodDsl/ClassImplementer.hs b/YesodDsl/ClassImplementer.hs
--- a/YesodDsl/ClassImplementer.hs
+++ b/YesodDsl/ClassImplementer.hs
@@ -12,16 +12,17 @@
             modEntities  = [ implInEntity m classes e | e <- (modEntities m) ]
         }
 
-classLookup :: [Class] -> ClassName -> Maybe Class
+classLookup :: [Class] -> ClassName -> Maybe Class
 classLookup classes name =  find (\i -> name == className i) classes
 
 
 expandClassField :: Module -> Entity ->  Field -> [Field]
-expandClassField m e f@(Field _ internal _ (EntityField iName)) 
+expandClassField m e f@(Field _ _ internal _ (EntityField iName)) 
     | not $ fieldOptional f = error $ show (entityLoc e) ++ ": non-maybe reference to class not allowed"
     | otherwise = [ mkField re | re <- modEntities m,  
                                  iName `elem` (entityInstances re) ]
     where mkField re = Field {
+            fieldLoc = fieldLoc f,
             fieldOptional = True,
             fieldInternal = internal,
             fieldName = lowerFirst (entityName re) ++ upperFirst (fieldName f),
@@ -44,6 +45,7 @@
 implInEntity m classes' e 
     | null invalidClassNames = e {
         entityFields  = concatMap (expandClassRefFields m e) $ entityFields e ++ extraFields,
+        entityClassFields = filter isClassField $ entityFields e,
         entityUniques = entityUniques e ++ (map (addEntityNameToUnique e) $ concatMap classUniques validClasses),
         entityChecks = entityChecks e 
     }
@@ -62,6 +64,8 @@
                                  isNothing $ classLookup classes name ]
         instantiatedClasses = map (classLookup classes) instances
         validClasses = catMaybes instantiatedClasses
+        isClassField (Field _ _ _ _ (EntityField iName)) = iName `elem` (map className $ modClasses m)
+        isClassField _ = False
                                      
         extraFields = concatMap classFields validClasses
         addEntityNameToUnique e (Unique name fields) = Unique (entityName e ++ name) fields
diff --git a/YesodDsl/ExpandMacros.hs b/YesodDsl/ExpandMacros.hs
--- a/YesodDsl/ExpandMacros.hs
+++ b/YesodDsl/ExpandMacros.hs
@@ -53,9 +53,39 @@
 
         expandSubQuery sq subs = foldl repSubQuery sq subs
         repSubQuery sq sub = sq {
-            sqFields = map (repSelectField sub) $ sqFields sq
+            sqFields = map (repSelectField sub) $ sqFields sq,
+            sqJoins = map (repJoin sub) $ sqJoins sq,
+            sqOrderBy = map (\(fr,sd) -> (repFieldRef sub fr, sd)) $ sqOrderBy sq,
+            sqWhere = sqWhere sq >>= return . (repExpr sub)
+                
         }
         repSelectField (pn,pv) spf@(SelectParamField vn pn' mvn) 
             | pn == pn' = SelectField vn pv mvn
             | otherwise = spf
         repSelectField _ sf = sf
+
+        repJoin sub j = j {
+                joinExpr = joinExpr j >>= return . (repExpr sub)
+            }
+
+        repFieldRef (pn,pv) fr@(FieldRefParamField vn pn') 
+            | pn == pn' = FieldRefNormal vn pv
+            | otherwise = fr
+        repFieldRef _ fr  = fr
+        
+        repExpr sub (AndExpr e1 e2) = AndExpr (repExpr sub e1) (repExpr sub e2)
+        repExpr sub (OrExpr e1 e2) = OrExpr (repExpr sub e1) (repExpr sub e2)
+        repExpr sub (NotExpr e1) = NotExpr (repExpr sub e1)
+        repExpr sub (BinOpExpr ve1 bo ve2) = BinOpExpr (repValExpr sub ve1)
+                                                       bo
+                                                       (repValExpr sub ve2)
+        repValExpr sub (FieldExpr fr) = FieldExpr (repFieldRef sub fr)
+        repValExpr sub (ConcatManyExpr ves) = ConcatManyExpr (map (repValExpr sub) ves)
+        repValExpr sub (ValBinOpExpr ve1 vbo ve2) = 
+            ValBinOpExpr (repValExpr sub ve1) vbo (repValExpr sub ve2)
+        repValExpr sub (FloorExpr ve) = FloorExpr $ repValExpr sub ve
+        repValExpr sub (CeilingExpr ve) = CeilingExpr $ repValExpr sub ve
+        repValExpr sub (ExtractExpr fn ve) = ExtractExpr fn $ repValExpr sub ve
+        repValExpr sub (SubQueryExpr sq) = SubQueryExpr $ repSubQuery sq sub
+        repValExpr _ (ApplyExpr fn ps) = expandApplyExpr fn ps
+        repValExpr _ ve = ve
diff --git a/YesodDsl/Generator.hs b/YesodDsl/Generator.hs
--- a/YesodDsl/Generator.hs
+++ b/YesodDsl/Generator.hs
@@ -21,7 +21,7 @@
 import YesodDsl.Generator.EntityFactories
 import YesodDsl.Generator.Classes
 import YesodDsl.Generator.Routes
-import YesodDsl.Generator.Validation
+import YesodDsl.Generator.Interface
 import YesodDsl.Generator.Handlers
 import YesodDsl.Generator.EsqueletoInstances
 import YesodDsl.Generator.Cabal
@@ -55,12 +55,14 @@
             ++ models m
             ++ entityFactories m
             ++ classes m
-            ++ validation m ctxs
+            ++ interface m ctxs
             ++ (T.unpack $(codegenFile "codegen/json-wrapper.cg"))      
     syncFile (joinPath ["Handler", moduleName m, "Routes.hs"]) $
            routes m
     syncFile (joinPath ["Handler", moduleName m ++ ".hs"]) $ 
         T.unpack $(codegenFile "codegen/dispatch.cg")
+    syncFile (joinPath ["Handler", moduleName m, "PathPieces.hs"]) $
+        T.unpack $(codegenFile "codegen/path-pieces.cg")
     where
            routeImport r = T.unpack $(codegenFile "codegen/route-import.cg")
 
diff --git a/YesodDsl/Generator/Cabal.hs b/YesodDsl/Generator/Cabal.hs
--- a/YesodDsl/Generator/Cabal.hs
+++ b/YesodDsl/Generator/Cabal.hs
@@ -19,7 +19,7 @@
     where mnToString mn = intercalate "." (components mn)            
 
 generatedMods :: Module -> [ModuleName]
-generatedMods m = map fromString $ [pfx, pfx ++ ".Internal", pfx ++ ".Enums", pfx ++ ".Routes", pfx ++ ".Esqueleto"]
+generatedMods m = map fromString $ [pfx, pfx ++ ".Internal", pfx ++ ".Enums", pfx ++ ".Routes", pfx ++ ".Esqueleto", pfx ++ ".PathPieces"]
                 ++ [pfx ++ "." ++ (routeModuleName r) | r <- modRoutes m ]
     where pfx = "Handler." ++ (fromMaybe "" $ modName m)
 
@@ -40,7 +40,10 @@
                                   "old-locale",
                                   "filepath",
                                   "unix",
-                                  "path-pieces" ] ] ++ deps)
+                                  "path-pieces",
+                                  "conduit-extra",
+                                  "exceptions"
+                                  ] ] ++ deps)
     where samePackage (Dependency pn1 _) (Dependency pn2 _) = pn1 == pn2
           
 
diff --git a/YesodDsl/Generator/Classes.hs b/YesodDsl/Generator/Classes.hs
--- a/YesodDsl/Generator/Classes.hs
+++ b/YesodDsl/Generator/Classes.hs
@@ -11,13 +11,21 @@
 import Text.Shakespeare.Text hiding (toText)
 import YesodDsl.Generator.Models
 import YesodDsl.Generator.Common
-
+import Data.String.Utils (rstrip)
 classFieldName :: Class -> Field -> String
 classFieldName i f = (lowerFirst . className) i ++ (upperFirst . fieldName) f
 
 classDefField :: Class -> Field -> String
 classDefField c f = T.unpack $(codegenFile "codegen/class-field.cg")
 
+classFieldTypeName :: Class -> Field -> String
+classFieldTypeName c f= rstrip $ T.unpack $(codegenFile "codegen/class-field-type-field-name.cg")
+
+classFieldType :: Class -> [Field] -> String
+classFieldType c fs = if null fs
+    then ""
+    else T.unpack $(codegenFile "codegen/class-field-type.cg")
+
 classInstanceField :: Class -> Entity -> Field -> String
 classInstanceField c e f = T.unpack $(codegenFile "codegen/class-instance-field.cg")
 
@@ -25,15 +33,81 @@
 classInstance c e = T.unpack $(codegenFile "codegen/class-instance-header.cg")
                   ++ (concatMap (classInstanceField c e) (classFields c))
 
+classEntityInstanceField :: Class -> [Entity] -> Field -> String
+classEntityInstanceField c es f = T.unpack $(codegenFile "codegen/class-entity-instance-field.cg")
+    where caseEntity e = T.unpack $(codegenFile "codegen/class-entity-instance-field-entity.cg")
+
+
+classEntityInstances :: Class -> [Entity] -> String
+classEntityInstances c es = T.unpack $(codegenFile "codegen/class-entity-instances.cg")
+    ++ (concatMap (classEntityInstanceField c es) (classFields c))
+    where 
+        entityInstance e = T.unpack $(codegenFile "codegen/class-entity-instance.cg")
+        entityInstanceId e = T.unpack $(codegenFile "codegen/class-entity-instance-id.cg")
+
+classSelectFilterDataType :: Class -> String
+classSelectFilterDataType c = T.unpack $(codegenFile "codegen/class-select-filter-data-type.cg")
+    where 
+        fieldFilterDataType f = rstrip $ T.unpack $(codegenFile "codegen/class-select-filter-data-type-field.cg")
+
+classSelect :: Class -> [Entity] -> String
+classSelect c es = maybeFilterDataType 
+    ++ T.unpack $(codegenFile "codegen/class-select.cg")
+    where 
+        selectEntity e = T.unpack $(codegenFile "codegen/class-select-entity.cg")
+        wrapResult e = T.unpack $(codegenFile "codegen/class-select-result.cg")
+        hasClassFields = not . null $ classFields c
+        maybeFilter e = if hasClassFields
+            then T.unpack $(codegenFile "codegen/class-select-entity-filter.cg")
+            else ""
+        maybeFilterDataType = if hasClassFields 
+            then classSelectFilterDataType c
+            else ""
+        maybeFilterParam = if hasClassFields then "filters" :: String else ""
+        filterField e f = T.unpack $(codegenFile "codegen/class-select-entity-filter-field.cg")
+        maybeFilterType = if hasClassFields then rstrip $ T.unpack $(codegenFile "codegen/class-select-filter-type.cg") else ""
+
+
+classUpdate :: Class -> [Entity] -> String
+classUpdate c es 
+    | hasClassFields = T.unpack $(codegenFile "codegen/class-update-data-type.cg")
+        ++ (T.unpack $(codegenFile "codegen/class-update.cg"))
+    | otherwise = ""
+    where
+        hasClassFields = not . null $ classFields c
+        updateEntity e = T.unpack $(codegenFile "codegen/class-update-entity.cg")
+        fieldUpdateDataType f = rstrip $ T.unpack $(codegenFile "codegen/class-update-data-type-field.cg")
+        updateEntityField e f = T.unpack $(codegenFile "codegen/class-update-entity-field.cg")
+        maybeFilter e = if hasClassFields
+            then T.unpack $(codegenFile "codegen/class-select-entity-filter.cg")
+            else ""
+        filterField e f = T.unpack $(codegenFile "codegen/class-select-entity-filter-field.cg")
+        
+instancesOf :: Module -> Class -> [Entity]
+instancesOf m c = [ e | e <- modEntities m,  (className c) `elem` (entityInstances e)]
+
+
 classInstances :: Module -> Class -> String
 classInstances m c = T.unpack $(codegenFile "codegen/class-header.cg")
                    ++ (concatMap (classDefField c) (classFields c))
-                   ++ (concatMap (classInstance c) 
-                                 [ e | e <- modEntities m, 
-                                  (className c) `elem` (entityInstances e)])
-                                                         
+                   ++ (classFieldType c $ classFields c)
+                   ++ (concatMap (classInstance c) (instancesOf m c))
+                   ++ (classEntityInstances c (instancesOf m c))
+                   ++ (classSelect c $ instancesOf m c)
+                   ++ (classUpdate c $ instancesOf m c)
 
+                                           
+entityClassFieldWrappers :: Module -> Entity -> String
+entityClassFieldWrappers m e = concatMap fieldWrapper $ entityClassFields e
+    where
+        fieldWrapper f@(Field _ _ _ _ (EntityField cName)) = case find (\c -> className c == cName) $ modClasses m of
+            Just c ->  T.unpack $(codegenFile "codegen/entity-class-field-wrapper.cg")
+            Nothing -> ""
+        fieldWrapper _ = ""
+        wrapInstance c f e2 = T.unpack $(codegenFile "codegen/entity-class-field-wrapper-wrap-instance.cg")
 classes :: Module -> String
-classes m = concatMap (classInstances m) (modClasses m)
-
+classes m = 
+    (concatMap (classInstances m) (modClasses m))
+    ++ (concatMap (entityClassFieldWrappers m) (modEntities m))
+    
 
diff --git a/YesodDsl/Generator/Esqueleto.hs b/YesodDsl/Generator/Esqueleto.hs
--- a/YesodDsl/Generator/Esqueleto.hs
+++ b/YesodDsl/Generator/Esqueleto.hs
@@ -143,7 +143,7 @@
 hsFieldRef (FieldRefRequest fn)  = normalFieldRef $ "attr_" ++ fn
 hsFieldRef (FieldRefEnum en vn)  = normalFieldRef $ en ++ vn
 hsFieldRef (FieldRefNamedLocalParam vn) = normalFieldRef $ "result_" ++ vn
-
+hsFieldRef (FieldRefParamField vn pn) = return $ "{- param field " ++ vn ++ " " ++ pn ++ "-}"
 hsOrderBy :: (FieldRef, SortDir) -> State Context String
 hsOrderBy (f,d) = do
     content <- hsFieldRef f
diff --git a/YesodDsl/Generator/EsqueletoInstances.hs b/YesodDsl/Generator/EsqueletoInstances.hs
--- a/YesodDsl/Generator/EsqueletoInstances.hs
+++ b/YesodDsl/Generator/EsqueletoInstances.hs
@@ -12,7 +12,7 @@
 import Control.Monad.State
 
 maxInstances :: Module -> Int
-maxInstances m = maximum $ map sqFieldNumber
+maxInstances m = safeMaximum $ map sqFieldNumber
                       $ filter isSelectQuery [ hp | r <- modRoutes m, 
                                                h <- routeHandlers r,
                                                hp <- handlerParams h]
@@ -25,6 +25,8 @@
               in evalState ((liftM concat $ mapM selectFieldExprs (sqFields sq))
                         >>= \fes -> return $ length fes) ctx
           sqFieldNumber _ = 0
+          safeMaximum [] = 0
+          safeMaximum xs = maximum xs
 
 genInstance :: Int -> String
 genInstance fnum = T.unpack $(codegenFile "codegen/sqlselect-instance.cg")
diff --git a/YesodDsl/Generator/GetHandler.hs b/YesodDsl/Generator/GetHandler.hs
--- a/YesodDsl/Generator/GetHandler.hs
+++ b/YesodDsl/Generator/GetHandler.hs
@@ -42,12 +42,15 @@
         isMaybe = baseMaybeLevel > 0
     return $ T.unpack $(codegenFile "codegen/default-filter-field.cg")
 
-defaultFilterFields :: State Context String
-defaultFilterFields = do
+defaultFilterFields :: SelectQuery -> State Context String
+defaultFilterFields sq = do
     fs <- ctxFields
-    fields <- liftM concat $ mapM defaultFilterField fs
-    return $ T.unpack $(codegenFile "codegen/default-filter-fields.cg") 
+    fields' <- liftM concat $ mapM defaultFilterField fs
 
+    let (en,vn) = sqFrom sq 
+    let fields = (T.unpack $(codegenFile "codegen/default-filter-id-field.cg")
+                 ++ fields')
+    return $ T.unpack $(codegenFile "codegen/default-filter-fields.cg")
 defaultSortField :: (Entity, VariableName, Field, ParamName) -> State Context String    
 defaultSortField (e,vn,f,pn) = do
     maybeLevel <- ctxMaybeLevel vn
@@ -138,7 +141,7 @@
                 Nothing -> return ""
             joinExprs <- liftM concat $ mapM mapJoinExpr $ reverse $ sqJoins sq
             ifFiltersStr <- liftM concat $ mapM (baseIfFilter selectVar) ifFilters
-            filterFieldsStr <- defaultFilterFields
+            filterFieldsStr <- defaultFilterFields sq
             returnFieldsStr <- selectReturnFields sq
             maybeDefaultSortFields <- if defaultFilterSort
                 then defaultSortFields sq
diff --git a/YesodDsl/Generator/Interface.hs b/YesodDsl/Generator/Interface.hs
new file mode 100644
--- /dev/null
+++ b/YesodDsl/Generator/Interface.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE OverloadedStrings #-}
+module YesodDsl.Generator.Interface where
+import YesodDsl.AST
+import Data.Maybe
+import qualified Data.Text as T
+import Data.List
+import Text.Shakespeare.Text hiding (toText)
+import Data.String.Utils (rstrip)
+import YesodDsl.Generator.Models
+import YesodDsl.Generator.Common
+import YesodDsl.Generator.Esqueleto
+
+validationFieldCheck :: Entity -> Field -> FunctionName -> String
+validationFieldCheck e f func = rstrip $ T.unpack $(codegenFile "codegen/validation-field.cg")
+
+validationEntityCheck :: Entity -> FunctionName -> String
+validationEntityCheck e func = rstrip $ T.unpack $(codegenFile "codegen/validation-entity.cg")
+    where fieldRef f = "(" ++ (lowerFirst . entityName) e ++ upperFirst f ++ " v)"
+
+validationEntity :: Entity -> String
+validationEntity e = T.unpack $(codegenFile "codegen/validation-entity-header.cg")
+                   ++ (intercalate ",\n " $ [ validationFieldCheck e f func
+                                          | f <- entityFields e,
+                                            func <- fieldChecks f])
+                   ++ (intercalate ",\n " $ [ validationEntityCheck e func |
+                                              func <- entityChecks e ])
+                   ++ (T.unpack $(codegenFile "codegen/validation-entity-footer.cg"))
+
+
+validationFieldFunction :: (Field, FunctionName) -> String
+validationFieldFunction (f,func) = T.unpack $(codegenFile "codegen/validation-function-field.cg")
+
+validationEntityFunction :: (Entity, FunctionName) -> String
+validationEntityFunction (e, func) = T.unpack $(codegenFile "codegen/validation-function-entity.cg")
+    
+
+lookupFieldType :: Module -> EntityName -> FieldName -> String
+lookupFieldType m en fn = hsFieldType (fromJust $ lookupField m en fn)
+
+handlerCall :: (FunctionName, [TypeName]) -> String
+handlerCall (fn,ptns) = T.unpack $(codegenFile "codegen/call-type-signature.cg")
+    where paramTypes = concatMap (++" -> ") ptns
+
+interface :: Module -> [Context] -> String
+interface m ctxs= T.unpack $(codegenFile "codegen/interface-header.cg")
+             ++ (concatMap validationFieldFunction $ 
+                    nubBy (\(_,f1) (_,f2) -> f1 == f2)
+                    [(f,func) | e <- modEntities m,
+                             f <- entityFields e,
+                             func <- fieldChecks f ])
+             ++ (concatMap validationEntityFunction $ 
+                   [ (e, func) |e <- modEntities m,   func <- entityChecks e ])
+             ++ (concatMap handlerCall $ concatMap ctxCalls ctxs)
+             ++ (concatMap validationEntity (modEntities m))
+
+
diff --git a/YesodDsl/Generator/Models.hs b/YesodDsl/Generator/Models.hs
--- a/YesodDsl/Generator/Models.hs
+++ b/YesodDsl/Generator/Models.hs
@@ -48,7 +48,7 @@
                    ++ (maybeDefaultNull f)
     where maybeDefault (Just d) = " \"default=" ++ (fieldValueToSql d)  ++ "\""
           maybeDefault _ = " "
-          maybeDefaultNull (Field True _ _ (EntityField _)) = " default=NULL"
+          maybeDefaultNull (Field _ True _ _ (EntityField _)) = " default=NULL"
           maybeDefaultNull _ = ""
 
 
diff --git a/YesodDsl/Generator/UpdateHandlers.hs b/YesodDsl/Generator/UpdateHandlers.hs
--- a/YesodDsl/Generator/UpdateHandlers.hs
+++ b/YesodDsl/Generator/UpdateHandlers.hs
@@ -15,6 +15,7 @@
 import YesodDsl.Generator.Require
 import Control.Monad.State
 import qualified Data.Map as Map
+
 inputFieldRefType :: InputFieldRef -> State Context String
 inputFieldRefType InputFieldAuthId = return $ "UserId"
 inputFieldRefType (InputFieldAuth fn) = do
diff --git a/YesodDsl/Generator/Validation.hs b/YesodDsl/Generator/Validation.hs
deleted file mode 100644
--- a/YesodDsl/Generator/Validation.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE OverloadedStrings #-}
-module YesodDsl.Generator.Validation where
-import YesodDsl.AST
-import Data.Maybe
-import qualified Data.Text as T
-import Data.List
-import Text.Shakespeare.Text hiding (toText)
-import Data.String.Utils (rstrip)
-import YesodDsl.Generator.Models
-import YesodDsl.Generator.Common
-import YesodDsl.Generator.Esqueleto
-
-validationFieldCheck :: Entity -> Field -> FunctionName -> String
-validationFieldCheck e f func = rstrip $ T.unpack $(codegenFile "codegen/validation-field.cg")
-
-validationEntityCheck :: Entity -> FunctionName -> String
-validationEntityCheck e func = rstrip $ T.unpack $(codegenFile "codegen/validation-entity.cg")
-    where fieldRef f = "(" ++ (lowerFirst . entityName) e ++ upperFirst f ++ " v)"
-
-validationEntity :: Entity -> String
-validationEntity e = T.unpack $(codegenFile "codegen/validation-entity-header.cg")
-                   ++ (intercalate ",\n " $ [ validationFieldCheck e f func
-                                          | f <- entityFields e,
-                                            func <- fieldChecks f])
-                   ++ (intercalate ",\n " $ [ validationEntityCheck e func |
-                                              func <- entityChecks e ])
-                   ++ (T.unpack $(codegenFile "codegen/validation-entity-footer.cg"))
-
-
-validationFieldFunction :: (Field, FunctionName) -> String
-validationFieldFunction (f,func) = T.unpack $(codegenFile "codegen/validation-function-field.cg")
-
-validationEntityFunction :: (Entity, FunctionName) -> String
-validationEntityFunction (e, func) = T.unpack $(codegenFile "codegen/validation-function-entity.cg")
-    
-
-lookupFieldType :: Module -> EntityName -> FieldName -> String
-lookupFieldType m en fn = hsFieldType (fromJust $ lookupField m en fn)
-
-handlerCall :: (FunctionName, [TypeName]) -> String
-handlerCall (fn,ptns) = T.unpack $(codegenFile "codegen/call-type-signature.cg")
-    where paramTypes = concatMap (++" -> ") ptns
-
-validation :: Module -> [Context] -> String
-validation m ctxs= T.unpack $(codegenFile "codegen/validation-header.cg")
-             ++ (concatMap validationFieldFunction $ 
-                    nubBy (\(_,f1) (_,f2) -> f1 == f2)
-                    [(f,func) | e <- modEntities m,
-                             f <- entityFields e,
-                             func <- fieldChecks f ])
-             ++ (concatMap validationEntityFunction $ 
-                   [ (e, func) |e <- modEntities m,   func <- entityChecks e ])
-             ++ (concatMap handlerCall $ concatMap ctxCalls ctxs)
-             ++ (concatMap validationEntity (modEntities m))
-
-
diff --git a/YesodDsl/Lexer.x b/YesodDsl/Lexer.x
--- a/YesodDsl/Lexer.x
+++ b/YesodDsl/Lexer.x
@@ -1,5 +1,5 @@
 {
-module YesodDsl.Lexer (lexer, tokenType, tokenLineNum, tokenColNum, Token(..), TokenType(..) ) where
+module YesodDsl.Lexer (lexer, tokenType, tokenLineNum, tokenColNum, Token(..), TokenType(..),tkString ) where
 }
 
 %wrapper "posn"
@@ -244,6 +244,12 @@
            | TFloor
            | TCeiling
     deriving (Show)
+
+tkString :: Token -> String
+tkString (Tk _ (TLowerId s)) = s
+tkString (Tk _ (TUpperId s)) = s
+tkString (Tk _ (TString s)) = s
+tkString _ = ""
 
 stripQuotes s = take ((length s) -2) (tail s)
 
diff --git a/YesodDsl/ModuleMerger.hs b/YesodDsl/ModuleMerger.hs
--- a/YesodDsl/ModuleMerger.hs
+++ b/YesodDsl/ModuleMerger.hs
@@ -10,7 +10,6 @@
 merge :: Module -> Module -> Module
 merge m1 m2 = Module {
         modName = listToMaybe $ mapMaybe modName [m1, m2],
-        modImports = [],
         modEntities = modEntities m1 ++ modEntities m2,
         modClasses = modClasses m1 ++ modClasses m2,
         modEnums = modEnums m1 ++ modEnums m2,
diff --git a/YesodDsl/Parser.y b/YesodDsl/Parser.y
--- a/YesodDsl/Parser.y
+++ b/YesodDsl/Parser.y
@@ -1,21 +1,27 @@
 {
 module YesodDsl.Parser (parse) where
+import YesodDsl.ParserState
 import YesodDsl.Lexer
 import YesodDsl.AST
 import YesodDsl.ModuleMerger
+import YesodDsl.ClassImplementer
+import YesodDsl.ExpandMacros
 import System.IO
 import Data.Maybe
 import Data.Typeable
 import Prelude hiding (catch) 
 import Control.Exception hiding (Handler)
 import System.Exit
-
+import Control.Monad.IO.Class
+import Control.Monad
+import Data.List
 
 }
 
-%name moduleDefs
+%name parseModuleDefs
 %tokentype { Token }
 %error { parseError }
+%monad { ParserMonad }
 
 %token
     module { Tk _ TModule }
@@ -27,8 +33,8 @@
     route    { Tk _ TRoute }
     unique     { Tk _ TUnique }
     check      { Tk _ TCheck }
-    lowerId    { Tk _ (TLowerId $$) }
-    upperId    { Tk _ (TUpperId $$)  }
+    lowerIdTk    { Tk _ (TLowerId _) }
+    upperIdTk    { Tk _ (TUpperId _)  }
     intval        { Tk _ (TInt $$)  }
     floatval      { Tk _ (TFloat $$) }
     semicolon  { Tk _ TSemicolon }
@@ -132,19 +138,38 @@
 %left asterisk slash
 %%
 
+
 dbModule : maybeModuleName 
-           imports defs { Module $1 (reverse $2) ((reverse . getEntities) $3) 
+           imports defs {%
+           do
+               path <- getPath
+               let m =  Module $1  ((reverse . getEntities) $3) 
                                     ((reverse . getClasses) $3)
                                     ((reverse . getEnums) $3)
                                     ((reverse . getRoutes) $3)
-                                    ((reverse . getDefines) $3) }
+                                    ((reverse . getDefines) $3)
+               return $ mergeModules $ (path,m):$2 
+           }
 
+lowerId: lowerIdTk { tkString $1 }
+upperId: upperIdTk { tkString $1 }
+
 maybeModuleName : { Nothing }
                 | module upperId semicolon { Just $2 }
 imports : { [] }
-        | imports importStmt { $2 : $1 }
+        | importStmt imports { $1++ $2 }
 
-importStmt : import stringval semicolon { $2 }
+importStmt : import stringval semicolon {%  
+            do
+                parsed <- getParsed
+                if not ($2 `elem` parsed)
+                    then do
+                        ps <- getParserState
+                        (m,ps') <- liftIO $parseModule ps $2
+                        setParserState ps'
+                        return [($2,m)]
+                    else return []
+            }
 defs : { [] }
        | defs def  { $2 : $1 }
 def : routeDef     { RouteDef $1 }
@@ -153,101 +178,236 @@
       | enumDef       { EnumDef $1 }
       | defineDef     { DefineDef $1 }
 
-defineDef : define lowerId lparen maybeEmptyLowerIdList rparen equals defineContent semicolon { Define $2 (mkLoc $1) $4 $7 } 
+defineDef : define lowerIdTk lparen maybeEmptyLowerIdList rparen equals pushScope defineContent popScope semicolon {% 
+    do
+        l <- mkLoc $2 
+        let n = tkString $2
+        let d = Define n l $4 $8
+        declare l n (SDefine d) 
+        return d
+    } 
 
 maybeEmptyLowerIdList : { [] }
         | lowerIdList { (reverse $1) }
-lowerIdList : lowerId { [$1] }
-            | lowerIdList comma lowerId { $3 : $1 }
 
-defineContent : select selectField from upperId as lowerId 
-               joins maybeWhere rparen  
-               { DefineSubQuery (SelectQuery [$2] ($4,$6) (reverse $7) $8 [] (0,0)) }
+lowerIdList : lowerIdTk { [tkString $1] }
+            | lowerIdList comma lowerIdTk { (tkString $3) : $1 }
+
+defineContent : selectQuery
+               { DefineSubQuery $1 }
       
-enumDef : enum upperId equals enumValues semicolon 
-         { EnumType (mkLoc $1) $2 $4 }
+enumDef : enum upperIdTk equals pushScope enumValues popScope semicolon 
+         {% 
+    do
+        l <- mkLoc $2
+        let n = tkString $2
+        let e = EnumType l n $5
+        declare l n (SEnum e)
+        forM_ (nub $ enumValues e) $ \ev -> declare l (n ++ ev) SReserved
+        return e
+    }
 
-enumValues : upperId { [$1] }
-           | enumValues pipe upperId { $3 : $1 }
+uniqueUpperIdTk: upperIdTk {%
+    do
+        l <- mkLoc $1
+        declare l (tkString $1) SReserved
+        return $1 
+    }
+
+uniqueUpperId: uniqueUpperIdTk { tkString $1 }
+          
+enumValues : uniqueUpperId { [$1] }
+          | enumValues pipe uniqueUpperId { $3 : $1 }
     
-entityDef : entity upperId lbrace 
+entityDef : entity upperIdTk lbrace 
+            pushScope
             maybeInstances
             fields
             uniques
             maybeDeriving
             checks
-            rbrace { Entity (mkLoc $1) $2 $4 (reverse $5)
-                            (reverse $6) $7 (reverse $8) }
+            popScope
+            rbrace {% 
+    do
+        l <- mkLoc $2
+        let n = tkString $2
+        let e = Entity l n $5 (reverse $6) [] (reverse $7) $8 (reverse $9) 
+        declare l n (SEntity n)
+        return e
+    }
 
-routeDef : route pathPieces lbrace handlers rbrace { Route (mkLoc $1) (reverse $2) (reverse $4) }
+routeDef : 
+    route 
+    pathPieces 
+    lbrace 
+    pushScope
+    handlers 
+    popScope
+    rbrace {% 
+        mkLoc $1 >>= \l -> return $ Route l (reverse $2) (reverse $5) 
+    }
+
 pathPieces : slash pathPiece { [$2] }
            | pathPieces slash pathPiece { $3 : $1 }
 
-pathPiece : lowerId { PathText $1 } 
+pathPiece : lowerIdTk { PathText $ tkString $1 } 
           | hash entityId { PathId $2 }
 
 handlers : handlerdef  { [$1] }
          | handlers handlerdef { $2 : $1 }
 
-handlerdef : get handlerParamsBlock { Handler (mkLoc $1) GetHandler $2 }
-           | put handlerParamsBlock { Handler (mkLoc $1) PutHandler $2 }
-           | post handlerParamsBlock { Handler (mkLoc $1) PostHandler $2 }
-           | delete handlerParamsBlock { Handler (mkLoc $1) DeleteHandler $2 }
+handlerType: 
+    get {% 
+        do
+             l <- mkLoc $1 
+             declare l "get handler" SReserved
+             setCurrentHandlerType GetHandler
+             return $ Handler l GetHandler 
+    } 
+    | put {%
+        do 
+             l <- mkLoc $1
+             declare l "put handler" SReserved
+             setCurrentHandlerType PutHandler
+             return $ Handler l PutHandler
+    } 
+    | post {%
+        do
+            l <- mkLoc $1
+            declare l "post handler" SReserved
+            setCurrentHandlerType PostHandler
+            return $ Handler l PostHandler
+    } 
+    | delete {%
+        do 
+            l <- mkLoc $1
+            declare l "delete handler" SReserved
+            setCurrentHandlerType DeleteHandler
+            return $ Handler l DeleteHandler
+    }
 
-fieldRef : lowerId dot idField { FieldRefId $1 }
-          | lowerId dot lowerId { FieldRefNormal $1 $3 } 
-          | upperId dot upperId { FieldRefEnum $1 $3 }
+handlerdef : handlerType pushScope handlerParamsBlock popScope {% 
+        return $ $1 $3 
+    }
+
+fieldRef : 
+    lowerIdTk dot idField {%
+        do
+            l1 <- mkLoc $1
+            let s1 = tkString $1
+            withSymbol l1 s1 $ requireEntity $ \_ -> return ()
+            return $ FieldRefId s1
+    }
+    | lowerIdTk dot lowerIdTk {% 
+        do 
+            l1 <- mkLoc $1
+            let s1 = tkString $1
+            l3 <- mkLoc $3
+            let s3 = tkString $3
+            withSymbol l1 s1 $ requireEntityField l3 s3 $ \_ -> return () 
+            return $ FieldRefNormal s1 s3
+    }
+    | upperId dot upperId { FieldRefEnum $1 $3 }
+          | lowerIdTk dot lbrace lowerIdTk rbrace { FieldRefParamField (tkString $1) (tkString $4) }
           | pathParam { FieldRefPathParam $1 }
           | auth dot idField { FieldRefAuthId }
-          | auth dot lowerId { FieldRefAuth $3 }
+          | auth dot lowerIdTk { FieldRefAuth $ tkString $3 }
           | localParam { FieldRefLocalParam }
-          | request dot lowerId { FieldRefRequest $3 }
-          | lowerId { FieldRefNamedLocalParam $1 }
-  
+          | request dot lowerIdTk { FieldRefRequest $ tkString $3 }
+          | lowerIdTk { FieldRefNamedLocalParam (tkString $1) }
+ 
+declareFromEntity: upperIdTk as lowerIdTk {%
+        do
+            l1 <- mkLoc $1
+            l3 <- mkLoc $3
+            let (s1,s3) = (tkString $1, tkString $3)
+            declare l3 s3 (SEntity s1)
+            withSymbol l1 s1 $ requireEntity $ \_ -> return ()
+            return (s1,s3)
+    }
+selectQuery:
+    select 
+    selectFields 
+    from
+    declareFromEntity
+    joins 
+    maybeWhere 
+    maybeOrder 
+    maybeLimitOffset 
+    {%
+        do
+            let sfs = [ sf | (_,sf) <- $2 ]
+            return $ SelectQuery sfs $4 $5 $6 $7 $8
+    }
+ 
+
 handlerParamsBlock : lbrace handlerParams rbrace { (reverse $2) }
 
 handlerParams : { [] }
               | handlerParams handlerParam semicolon { $2 : $1 }
 handlerParam : public { Public }
-             |select selectFields from upperId as lowerId 
-               joins maybeWhere maybeOrder maybeLimitOffset 
-              { Select (SelectQuery $2 ($4,$6) (reverse $7) $8 $9 $10) }
+             | selectQuery
+                         { Select $1 }
              | update upperId identified by inputRef with inputJson { Update $2 $5 (Just $7) } 
-             | delete from upperId as lowerId { DeleteFrom $3 $5 Nothing }
-             | delete from upperId as lowerId where expr { DeleteFrom $3 $5 (Just $7) }
+             | delete pushScope from declareFromEntity maybeWhere popScope { let (en,vn) = $4 in DeleteFrom en vn $5 }
              | update upperId identified by inputRef { Update $2 $5 Nothing }
              | bindResult get upperId identified by inputRef { GetById $3 $6 $1 }
              | maybeBindResult insert upperId from inputJson { Insert $3 (Just $5) $1 }
              | maybeBindResult insert upperId { Insert $3 Nothing $1 }
              | defaultfiltersort { DefaultFilterSort }
-             | if param stringval equals localParam then joins where expr { IfFilter ($3 ,(reverse $7) ,$9, True) }
-             | if param stringval equals underscore then joins where expr { IfFilter ($3, (reverse $7), $9, False) }
+             | if param stringval equals localParam then pushScope joins where expr popScope { IfFilter ($3 ,$8 ,$10, True) }
+             | if param stringval equals underscore then pushScope joins where expr popScope { IfFilter ($3, $8, $10, False) }
              | return outputJson { Return $2 }
-             | require upperId as lowerId joins where expr { Require (SelectQuery [] ($2,$4) (reverse $5) (Just $7) [] (0,0)) }
-             | for lowerId in inputRef lbrace handlerParams rbrace { For $2 $4 $6 }
-             | lowerId  inputRefList  { Call $1 (reverse $2) }
+             | require pushScope declareFromEntity joins where expr popScope { Require (SelectQuery [] $3 $4 (Just $6) [] (0,0)) }
+             | for pushScope lowerIdTk in inputRef lbrace handlerParams rbrace popScope { For (tkString $3) $5 $7 }
+             | lowerIdTk  inputRefList  { Call (tkString $1) (reverse $2) }
 
 maybeBindResult: { Nothing }
                | bindResult { Just $1 }
 
-bindResult: lowerId larrow { $1 }
+bindResult: lowerIdTk larrow { tkString $1 }
 
 selectFields: selectField moreSelectFields { $1 : (reverse $2) }
 
 moreSelectFields: { [] }
                 | moreSelectFields comma selectField { $3 : $1 }
 
-selectField: lowerId dot asterisk { SelectAllFields $1 }                    
-           | lowerId dot idField maybeSelectAlias { SelectIdField $1 $4 }
-           | lowerId dot lowerId maybeSelectAlias { SelectField $1 $3 $4 }
-           | lowerId dot lbrace lowerId rbrace maybeSelectAlias { SelectParamField $1 $4 $6 }
-           | valexpr as lowerId { SelectValExpr $1 $3 }
+selectField: lowerIdTk dot asterisk {%
+        do
+            l1 <- mkLoc $1
+            return (l1, SelectAllFields $ tkString $1)
+    }
+    | lowerIdTk dot idField maybeSelectAlias {% 
+        do
+            l1 <- mkLoc $1
+            return (l1, SelectIdField (tkString $1) $4) 
+    }
+    | lowerIdTk dot lowerIdTk maybeSelectAlias {%
+        do
+            l1 <- mkLoc $1
+            return (l1, SelectField (tkString $1) (tkString $3) $4) 
+    }
+    | lowerIdTk dot lbrace lowerIdTk rbrace maybeSelectAlias {% 
+        do
+            l1 <- mkLoc $1
+            return (l1, SelectParamField (tkString $1) (tkString $4) $6)
+    }
+    | valexpr as lowerIdTk {% 
+        do
+            l3 <- mkLoc $3
+            return (l3, SelectValExpr $1 (tkString $3) )
+    }
            
        
 maybeSelectAlias: { Nothing }
-                | as lowerId { Just $2 }
+                | as lowerIdTk { Just $ tkString $2 }
 joins : { [] }
-      | joins jointype upperId as lowerId maybeJoinOn { (Join $2 $3 $5 $6):$1 }
+      | jointype declareFromEntity maybeJoinOn joins
+        {% 
+            do
+                let (en,vn) = $2
+                return $ (Join $1 en vn $3):$4
+        }
 
 maybeWhere : { Nothing }
            | where expr { Just $2 }
@@ -268,17 +428,17 @@
         |desc  { SortDesc }
  
 inputJson:  lbrace inputJsonFields rbrace { $2 }
-inputJsonField : lowerId equals inputRef { ($1, $3) }
+inputJsonField : lowerIdTk equals inputRef { (tkString $1, $3) }
 
 inputRefList:  { [] }
             | inputRefList inputRef  { $2 : $1 }
 
-inputRef: request dot lowerId { InputFieldNormal $3 }
-        | lowerId { InputFieldLocalParam $1 }
-        | lowerId dot lowerId { InputFieldLocalParamField $1 $3 }
+inputRef: request dot lowerIdTk { InputFieldNormal $ tkString $3 }
+        | lowerIdTk { InputFieldLocalParam (tkString $1) }
+        | lowerIdTk dot lowerIdTk { InputFieldLocalParamField (tkString $1) (tkString $3) }
         | pathParam { InputFieldPathParam $1 }
         | auth dot idField { InputFieldAuthId }
-        | auth dot lowerId { InputFieldAuth $3 }
+        | auth dot lowerIdTk { InputFieldAuth $ tkString $3 }
         | value { InputFieldConst $1 }
         | now lparen rparen { InputFieldNow }
 
@@ -292,9 +452,9 @@
 outputJsonFields: outputJsonField { [ $1 ] }
                 | outputJsonFields comma outputJsonField { $3:$1 }
 
-outputJsonField : lowerId equals outputRef { ($1,$3) }
+outputJsonField : lowerIdTk equals outputRef { (tkString $1,$3) }
 
-outputRef: lowerId { OutputFieldLocalParam $1 }
+outputRef: lowerIdTk { OutputFieldLocalParam $ tkString $1 }
 
 binop : equals { Eq }
       | ne { Ne }
@@ -328,13 +488,11 @@
         | random lparen rparen { RandomExpr }
         | floor lparen valexpr rparen { FloorExpr $3 }
         | ceiling lparen valexpr rparen { CeilingExpr $3 }
-        | extract lparen lowerId from valexpr rparen { 
-                ExtractExpr $3 $5  }
-        | lparen select selectField from upperId as lowerId 
-               joins maybeWhere rparen  
-                   { SubQueryExpr (SelectQuery [$3] ($5,$7) (reverse $8) $9 
-                                      [] (0,0)) }
-        | lowerId lparen maybeEmptyLowerIdList rparen { ApplyExpr $1 $3 }
+        | extract lparen lowerIdTk from valexpr rparen { 
+                ExtractExpr (tkString $3) $5  }
+        | lparen pushScope selectQuery popScope rparen
+                   { SubQueryExpr $3 }
+        | lowerIdTk lparen maybeEmptyLowerIdList rparen { ApplyExpr (tkString $1) $3 }
 
 valexprlist: valexpr { [$1] }        
            | valexprlist comma valexpr { $3 : $1 }
@@ -352,27 +510,81 @@
 maybeInstances : { [] }
                | instance of instances semicolon { (reverse $3) }
 
-instances : upperId { [$1] }
-            | instances comma upperId { $3 : $1 }
+instanceDef: uniqueUpperIdTk {%
+    do
+        l <- mkLoc $1
+        let n = tkString $1
+        withSymbol l n $ requireClass $ \c -> do
+            forM_ (classFields c) $ \f -> do
+                declare (fieldLoc f) (fieldName f) (SField f)
+        return n
+    }
+instances : instanceDef { [$1] }
+            | instances comma instanceDef { $3 : $1 }
 
-classDef : class upperId lbrace
-             fields
+classDef : class upperIdTk lbrace
+            pushScope
+            fields
             uniques
-            rbrace { Class (mkLoc $1) $2 (reverse $4) (reverse $5)  }
+            popScope
+            rbrace {% 
+            do
+                l <- mkLoc $2
+                let n = tkString $2
+                let c = Class l n (reverse $5) (reverse $6)  
+                declare l n (SClass c)
+                return c
+            }
 
+
+
+pushScope: {% pushScope }
+
+popScope: {% popScope }
+
 fields : { [] }
               | fields field semicolon { $2 : $1 }
  
-field : lowerId maybeMaybe fieldType fieldOptions fieldFlags { Field $2 (FieldInternal `elem` $5) $1 (NormalField $3 (reverse $4)) } 
-      | lowerId maybeMaybe entityId fieldFlags { Field $2 (FieldInternal `elem` $4) $1 (EntityField $3) }
-      | lowerId maybeMaybe upperId fieldFlags { Field $2 (FieldInternal `elem` $4) $1 (EnumField $3) }
+field : lowerIdTk maybeMaybe fieldType fieldOptions fieldFlags {%
+        do
+            l <- mkLoc $1
+            let n = tkString $1
+            let f = Field l $2 (FieldInternal `elem` $5) n (NormalField $3 (reverse $4)) 
+            declare l n (SField f)
+            return f
+        } 
+      | lowerIdTk maybeMaybe entityId fieldFlags {% 
+        do
+            l <- mkLoc $1
+            let n = tkString $1
+            let f = Field l $2 (FieldInternal `elem` $4) n (EntityField $3) 
+            declare l n (SField f)
+            return f}
+      | lowerIdTk maybeMaybe upperId fieldFlags {%
+        do  
+            l <- mkLoc $1
+            let n = tkString $1
+            let f = Field l $2 (FieldInternal `elem` $4) n (EnumField $3) 
+            declare l n (SField f)
+            return f
+            }
 
 fieldOptions : { [] }
-             | fieldOptionsList { $1 }
+             | pushScope fieldOptionsList popScope { $2 }
 fieldOptionsList : fieldOption { [$1] }
                  | fieldOptionsList  fieldOption { $2 : $1 }
-fieldOption : check lowerId { FieldCheck $2 }
-            | default value { FieldDefault $2 }
+fieldOption : check lowerId {%
+        do
+            l <- mkLoc $1
+            declare l ("check " ++ $2) SReserved
+            return $ FieldCheck $2 
+    }
+            | default value {%
+        do
+            l <- mkLoc $1
+            declare l "default value" SReserved
+            return $ FieldDefault $2 
+    }
 
 fieldFlags : { [] }
            | fieldFlagList { $1 }
@@ -390,7 +602,7 @@
       
 uniques : { [] }
         | uniques uniqueDef semicolon { $2 : $1 }
-uniqueDef :  unique upperId fieldIdList { Unique $2 (reverse $3) }
+uniqueDef :  unique uniqueUpperId fieldIdList { Unique $2 (reverse $3) }
 
 maybeDeriving : { [] }
              | deriving derives semicolon { (reverse $2) }
@@ -400,9 +612,17 @@
 checks : { [] }
         | check fieldIdList semicolon { reverse $2 }
 
-fieldIdList : lowerId { [$1] }
-            | fieldIdList comma lowerId { $3 : $1 }
+fieldId: lowerIdTk {%
+    do
+        l <- mkLoc $1
+        let n = tkString $1
+        withSymbol l n $ requireField $ \_ -> return ()
+        return n
+    }
 
+fieldIdList : fieldId { [$1] }
+            | fieldIdList comma fieldId { $3 : $1 }
+
 fieldType : word32 { FTWord32 }
           | word64{ FTWord64 }
           | int32{ FTInt32 }
@@ -451,24 +671,23 @@
 parseError (t:ts) = throw (ParseError $ "Parse error : unexpected " ++ show (tokenType t) ++ " at line " ++ show (tokenLineNum t) ++ " col " ++ show (tokenColNum t))
 parseError _ = throw (ParseError $ "Parse error : unexpected end of file")
 
-parseModule :: FilePath -> IO Module
-parseModule path = catch 
+parseModule :: ParserState -> FilePath -> IO (Module,ParserState)
+parseModule ps path = catch 
         (do
             s <- readFile path
-            return $! moduleDefs $! lexer s)
+            (m,ps') <- runParser path ps (parseModuleDefs $! lexer s)
+            return $! (m,ps'))
         (\(ParseError msg) -> do 
             hPutStrLn stderr $ path ++ ": " ++ msg
             exitWith (ExitFailure 1))
        
-
-parseModules :: [FilePath] -> [FilePath] -> IO [(FilePath,Module)]
-parseModules handled (path:paths)
-    | path `elem` handled = return []
-    | otherwise = do
-        mod <- parseModule path
-        rest <- parseModules (path:handled) (paths ++ modImports mod)
-        return ((path,mod):rest)
-parseModules _ [] = return []
-
-parse path = parseModules [] [path]
+parse path = do
+    (m,ps) <- parseModule initParserState path
+    let ast = expandMacros $ implementClasses m
+    errors <- postValidation ast ps
+    if errors == 0
+        then return $ Just ast
+        else do
+            hPutStrLn stderr $ show errors ++ " errors"
+            return $ Just ast -- Nothing
 }
diff --git a/YesodDsl/ParserState.hs b/YesodDsl/ParserState.hs
new file mode 100644
--- /dev/null
+++ b/YesodDsl/ParserState.hs
@@ -0,0 +1,199 @@
+module YesodDsl.ParserState (ParserMonad, initParserState, getParserState,
+    getPath, getParsed,
+    setParserState, runParser, pushScope, popScope, declare, SymType(..),
+    ParserState, mkLoc, parseErrorCount, withSymbol, 
+    requireClass, 
+    requireEntity,
+    requireEntityField,
+    requireField,
+    setCurrentHandlerType,
+    unsetCurrentHandlerType,
+    postValidation) where 
+import qualified Data.Map as Map
+import Control.Monad.State.Lazy
+import Control.Monad.Trans.Class
+import YesodDsl.AST 
+import YesodDsl.Lexer 
+import YesodDsl.ExpandMacros
+import YesodDsl.ClassImplementer
+import System.IO (FilePath)
+import qualified Data.List as L
+data SymType = SEnum EnumType
+             | SClass Class
+             | SEntity EntityName
+             | SDefine Define
+             | SField Field
+             | SUnique Unique
+             | SRoute Route
+             | SHandler Handler
+             | SParam
+             | SForParam InputFieldRef
+             | SReserved
+
+instance Show SymType where
+    show st = case st of
+        SEnum _  -> "enum"
+        SClass _   -> "class"
+        SEntity _  -> "entity"
+        SDefine _  -> "define"
+        SField _   -> "field"
+        SUnique _  -> "unique"
+        SRoute _  -> "route"
+        SHandler _ -> "handler"
+        SParam   -> "param"
+        SForParam _ -> "for-param"
+        SReserved -> "reserved"
+
+data Sym = Sym Int Location SymType
+
+type ParserMonad = StateT ParserState IO 
+
+type Syms = Map.Map String [Sym]
+
+type EntityValidation = (EntityName, Entity -> ParserMonad ())
+
+data ParserState = ParserState {
+    psSyms        :: Syms,
+    psScopeId     :: Int,
+    psPath        :: FilePath,
+    psParsed      :: [FilePath],
+    psErrors      :: Int,
+    psHandlerType :: Maybe HandlerType,
+    psEntityValidations :: [EntityValidation]
+}
+
+initParserState :: ParserState
+initParserState = ParserState {
+    psSyms = Map.empty,
+    psScopeId = 0,
+    psPath = "",
+    psParsed = [],
+    psErrors = 0,
+    psHandlerType = Nothing,
+    psEntityValidations = []
+}
+getParserState :: ParserMonad ParserState
+getParserState = get
+
+getPath :: ParserMonad FilePath
+getPath = gets psPath
+
+getParsed :: ParserMonad [FilePath]
+getParsed = gets psParsed
+
+setCurrentHandlerType :: HandlerType -> ParserMonad ()
+setCurrentHandlerType ht = modify $ \ps -> ps {
+        psHandlerType = Just ht
+    }
+unsetCurrentHandlerType :: ParserMonad ()
+unsetCurrentHandlerType = modify $ \ps -> ps {
+        psHandlerType = Nothing
+    }
+
+setParserState :: ParserState -> ParserMonad ()
+setParserState = put
+
+runEntityValidation :: Module -> EntityValidation -> ParserMonad ()
+runEntityValidation m (en,f) = 
+    case L.find (\e -> entityName e == en) $ modEntities m of
+        Just e -> f e
+        Nothing -> return ()
+
+postValidation :: Module -> ParserState -> IO Int
+postValidation m ps = do
+    ps' <- execStateT (mapM (runEntityValidation m) $
+                         psEntityValidations ps) $ ps
+    return $ psErrors ps'  
+
+
+runParser :: FilePath -> ParserState -> ParserMonad a -> IO (a,ParserState)
+runParser path ps m = do
+    (r,ps') <- runStateT m $ ps { psPath = path, psParsed = path:psParsed ps }
+    return (r, ps' { psPath = psPath ps} )
+
+pushScope :: ParserMonad ()
+pushScope = modify $ \ps -> ps {
+    psScopeId = psScopeId ps + 1
+}
+
+popScope :: ParserMonad ()
+popScope = modify $ \ps -> ps {
+    psSyms = Map.filter (not . null) $ 
+        Map.map (filter (\(Sym s _ _) -> s < psScopeId ps)) $ psSyms ps,
+    psScopeId = psScopeId ps - 1
+}
+
+pError :: Location -> String -> ParserMonad ()
+pError l e = do
+    return ()
+    -- lift $ putStrLn $ show l ++ ": " ++ e
+    -- modify $ \ps -> ps { psErrors = psErrors ps + 1 }
+
+declare :: Location -> String -> SymType -> ParserMonad ()
+declare l n t = do
+    ps <- get
+    let sym = [Sym (psScopeId ps) l t] 
+    case Map.lookup n (psSyms ps) of
+        Just ((Sym s l' _):_) -> if s == psScopeId ps
+            then do
+                pError l $ "'" ++ n 
+                    ++ "' already declared in " ++ show l'
+                return ()
+            else put $ ps { 
+                psSyms = Map.adjust (sym++) n (psSyms ps)
+            }
+        _ -> put $ ps {
+                psSyms = Map.insert n sym $ psSyms ps
+            }
+
+mkLoc :: Token -> ParserMonad Location
+mkLoc t = do
+    path <- gets psPath
+    return $ Loc path (tokenLineNum t) (tokenColNum t) 
+ 
+parseErrorCount :: ParserState -> Int
+parseErrorCount = psErrors
+  
+addEntityValidation :: EntityValidation -> ParserMonad ()
+addEntityValidation ev = do
+    modify $ \ps -> ps {
+        psEntityValidations = psEntityValidations ps ++ [ev]
+    }
+
+
+withSymbol :: Location -> String -> (Location -> Location -> SymType -> ParserMonad ()) -> ParserMonad ()
+withSymbol l n f = do
+    syms <- gets psSyms
+    case Map.lookup n syms >>= return . (filter notReserved) of
+        Just ((Sym _ l' st):_) -> f l l' st
+        _ -> pError l $ "Reference to an undeclared identifier '"
+                ++ n ++ "'"
+    where
+        notReserved (Sym _ _ SReserved) = False
+        notReserved _ = True        
+
+requireClass :: (Class -> ParserMonad ()) -> (Location -> Location -> SymType -> ParserMonad ())
+requireClass f = f'
+    where f' _ _ (SClass c) = f c
+          f' l1 l2 st = pError l1 $ "Reference to " ++ show st ++ " declared in " ++ show l2 ++ " (expected class)"
+
+requireEntity :: (Entity -> ParserMonad ()) -> (Location -> Location -> SymType -> ParserMonad ())
+requireEntity f = f'
+    where f' _ _ (SEntity en) = addEntityValidation (en, f)
+          f' l1 l2 st = pError l1 $ "Reference to " ++ show st ++ " declared in " ++ show l2 ++ " (expected entity)"
+
+requireEntityField :: Location -> FieldName -> ((Entity,Field) -> ParserMonad ()) -> (Location -> Location -> SymType -> ParserMonad ())
+requireEntityField l fn fun = fun'
+    where fun' _ _ (SEntity en) = addEntityValidation (en, \e -> 
+            case L.find (\f -> fieldName f == fn) $ entityFields e of
+              Just f -> fun (e,f)
+              Nothing -> pError l $ "Reference to undeclared field '" 
+                                ++ fn ++ "' of entity '" ++ entityName e ++ "'")
+          fun' l1 l2 st = pError l1 $ "Reference to " ++ show st ++ " declared in " ++ show l2 ++ " (expected entity)"
+
+
+
+requireField:: (Field -> ParserMonad ()) -> (Location -> Location -> SymType -> ParserMonad ())
+requireField f = f'
+    where f' _ _ (SField sf) = f sf
+          f' l1 l2 st = pError l1 $ "Reference to " ++ show st ++ " declared in " ++ show l2 ++ " (expected field)"
diff --git a/YesodDsl/Validation/Fields.hs b/YesodDsl/Validation/Fields.hs
--- a/YesodDsl/Validation/Fields.hs
+++ b/YesodDsl/Validation/Fields.hs
@@ -20,11 +20,11 @@
                           | e <- modEntities m, f <- entityFields e,
                                       func <- fieldChecks f ]
                          ++ [ (f,func, classFieldInfo c f) 
-                            | c <- modClasses m, f <- classFields c,
+                            | c <- modClasses m, f <- classFields c,
                                          func <- fieldChecks f])
     
         isClass en = (not . null) [ c | c <- modClasses m, className c == en]
-        fieldError (i, l, (Field False _ n (EntityField en)) )
+        fieldError (i, l, (Field _ False _ n (EntityField en)) )
             | isClass en = "Non-maybe reference to class " ++ en
                          ++ " is not allowed in " ++ i ++ "." ++ n
                          ++ " in " ++ show l ++ "\n"
diff --git a/codegen/class-entity-instance-field-entity.cg b/codegen/class-entity-instance-field-entity.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-entity-instance-field-entity.cg
@@ -0,0 +1,1 @@
+~{className c}Instance~{entityName e} (Entity _ e) -> ~{entityFieldName e f} e
diff --git a/codegen/class-entity-instance-field.cg b/codegen/class-entity-instance-field.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-entity-instance-field.cg
@@ -0,0 +1,2 @@
+    ~{classFieldName c f} x = case x of
+~{indent 8 $ concatMap caseEntity es}    
diff --git a/codegen/class-entity-instance-id.cg b/codegen/class-entity-instance-id.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-entity-instance-id.cg
@@ -0,0 +1,1 @@
+~{className c}Instance~{entityName e}Id ~{entityName e}Id
diff --git a/codegen/class-entity-instance.cg b/codegen/class-entity-instance.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-entity-instance.cg
@@ -0,0 +1,1 @@
+~{className c}Instance~{entityName e} (Entity ~{entityName e})
diff --git a/codegen/class-entity-instances.cg b/codegen/class-entity-instances.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-entity-instances.cg
@@ -0,0 +1,5 @@
+data ~{className c}Instance = ~{intercalate "    | " $ map entityInstance es}
+
+data ~{className c}InstanceId = ~{intercalate "    | " $ map entityInstanceId es}
+
+instance ~{className c} ~{className c}Instance where
diff --git a/codegen/class-field-type-field-name.cg b/codegen/class-field-type-field-name.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-field-type-field-name.cg
@@ -0,0 +1,1 @@
+~{upperFirst $ className c}~{upperFirst $ fieldName f}
diff --git a/codegen/class-field-type.cg b/codegen/class-field-type.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-field-type.cg
@@ -0,0 +1,1 @@
+data ~{className c}InstanceFieldName = ~{intercalate "    | " $ map (classFieldTypeName c) fs} 
diff --git a/codegen/class-select-entity-filter-field.cg b/codegen/class-select-entity-filter-field.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-entity-filter-field.cg
@@ -0,0 +1,1 @@
+~{className c}Instance~{upperFirst $ fieldName f}Filter op -> op $ e ^. ~{entityFieldTypeName e f}
diff --git a/codegen/class-select-entity-filter.cg b/codegen/class-select-entity-filter.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-entity-filter.cg
@@ -0,0 +1,4 @@
+    forM_ filters $ \exprs -> 
+        when (not . null $ exprs) $ where_ $ foldl1 (||.) $ map (\expr -> case expr of 
+~{indent 12 $ concatMap (filterField e) $ classFields c}
+        ) exprs
diff --git a/codegen/class-select-entity.cg b/codegen/class-select-entity.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-entity.cg
@@ -0,0 +1,4 @@
+result_~{entityName e} <- select $ from $ \e -> do
+    let _ = e ^. ~{entityName e}Id
+~{maybeFilter e}
+    return e
diff --git a/codegen/class-select-filter-data-type-field.cg b/codegen/class-select-filter-data-type-field.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-filter-data-type-field.cg
@@ -0,0 +1,1 @@
+~{className c}Instance~{upperFirst $ fieldName f}Filter (SqlExpr (Database.Esqueleto.Value (~{hsFieldType f})) -> SqlExpr (Database.Esqueleto.Value Bool))
diff --git a/codegen/class-select-filter-data-type.cg b/codegen/class-select-filter-data-type.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-filter-data-type.cg
@@ -0,0 +1,1 @@
+data ~{className c}InstanceFilterType = ~{intercalate "    | " $ map fieldFilterDataType $ classFields c}
diff --git a/codegen/class-select-filter-type.cg b/codegen/class-select-filter-type.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-filter-type.cg
@@ -0,0 +1,1 @@
+[[~{className c}InstanceFilterType]] -> 
diff --git a/codegen/class-select-result.cg b/codegen/class-select-result.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select-result.cg
@@ -0,0 +1,1 @@
+map ~{className c}Instance~{entityName e} result_~{entityName e}
diff --git a/codegen/class-select.cg b/codegen/class-select.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-select.cg
@@ -0,0 +1,8 @@
+select~{className c} :: forall (m :: * -> *). 
+    (MonadLogger m, MonadIO m, MonadThrow m, MonadBaseControl IO m) => 
+    ~{maybeFilterType} SqlPersistT m [~{className c}Instance]
+select~{className c} ~{maybeFilterParam} = do
+~{indent 4 $ concatMap selectEntity es}
+    return $ concat [
+~{indent 8 $ intercalate ", " $ map wrapResult es}
+        ]
diff --git a/codegen/class-update-data-type-field.cg b/codegen/class-update-data-type-field.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-update-data-type-field.cg
@@ -0,0 +1,1 @@
+~{className c}InstanceUpdate~{upperFirst $ fieldName f} (SqlExpr (Database.Esqueleto.Value (~{hsFieldType f})))
diff --git a/codegen/class-update-data-type.cg b/codegen/class-update-data-type.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-update-data-type.cg
@@ -0,0 +1,1 @@
+data ~{className c}InstanceUpdateType = ~{intercalate "    | " $ map fieldUpdateDataType $ classFields c}
diff --git a/codegen/class-update-entity-field.cg b/codegen/class-update-entity-field.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-update-entity-field.cg
@@ -0,0 +1,1 @@
+    ~{className c}InstanceUpdate~{upperFirst $ fieldName f} v -> ~{entityFieldTypeName e f} =. v
diff --git a/codegen/class-update-entity.cg b/codegen/class-update-entity.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-update-entity.cg
@@ -0,0 +1,8 @@
+update $ \e -> do
+    let _ = e ^. ~{entityName e}Id
+    set e $ map (\update -> case update of
+~{indent 12 $ concatMap (updateEntityField e) $ classFields c}
+        ) updates
+~{maybeFilter e}
+ 
+            
diff --git a/codegen/class-update.cg b/codegen/class-update.cg
new file mode 100644
--- /dev/null
+++ b/codegen/class-update.cg
@@ -0,0 +1,7 @@
+update~{className c} :: forall (m :: * -> *). 
+    (MonadLogger m, MonadIO m, MonadThrow m, MonadBaseControl IO m) => 
+    [[~{className c}InstanceFilterType]] -> [~{className c}InstanceUpdateType] -> SqlPersistT m ()
+update~{className c} filters updates = do
+~{indent 4 $ concatMap updateEntity es}
+    return ()
+
diff --git a/codegen/default-filter-field.cg b/codegen/default-filter-field.cg
--- a/codegen/default-filter-field.cg
+++ b/codegen/default-filter-field.cg
@@ -1,3 +1,3 @@
-                "~{fieldName f}" -> case (fromPathPiece $ filterJsonMsg_value fjm) of 
+                "~{fieldName f}" -> case (PP.fromPathPiece $ filterJsonMsg_value fjm) of 
                     (Just v) -> where_ $ defaultFilterOp (filterJsonMsg_comparison fjm) (~{vn} ~{projectField isMaybe} ~{entityFieldTypeName e f}) (~{makeJust maybeLevel "(val v)"})
                     _        -> return ()
diff --git a/codegen/default-filter-id-field.cg b/codegen/default-filter-id-field.cg
new file mode 100644
--- /dev/null
+++ b/codegen/default-filter-id-field.cg
@@ -0,0 +1,3 @@
+                "id" -> case (PP.fromPathPiece $ filterJsonMsg_value fjm) of 
+                    (Just v) -> where_ $ defaultFilterOp (filterJsonMsg_comparison fjm) (~{vn} ~{projectField False} ~{en}Id) (val v)
+                    _        -> return ()
diff --git a/codegen/dispatch.cg b/codegen/dispatch.cg
--- a/codegen/dispatch.cg
+++ b/codegen/dispatch.cg
@@ -23,7 +23,7 @@
 type ~{moduleName m}Route = Route ~{moduleName m}
  
 instance (YesodAuthPersist master,
-          ~{moduleName m}Validation master,
+          ~{moduleName m}Interface master,
           KeyEntity (AuthId master) ~ User,
           YesodPersistBackend master ~ SqlPersistT) => YesodSubDispatch ~{moduleName m} (HandlerT master IO) where
     yesodSubDispatch = $(mkYesodSubDispatch resources~{moduleName m})
diff --git a/codegen/entity-class-field-wrapper-wrap-instance.cg b/codegen/entity-class-field-wrapper-wrap-instance.cg
new file mode 100644
--- /dev/null
+++ b/codegen/entity-class-field-wrapper-wrap-instance.cg
@@ -0,0 +1,1 @@
+~{lowerFirst $ entityName e}~{entityName e2}~{upperFirst (fieldName f)} e >>= (return . ~{className c}Instance~{entityName e2}Id)
diff --git a/codegen/entity-class-field-wrapper.cg b/codegen/entity-class-field-wrapper.cg
new file mode 100644
--- /dev/null
+++ b/codegen/entity-class-field-wrapper.cg
@@ -0,0 +1,5 @@
+~{entityFieldName e f} :: ~{entityName e} -> Maybe (~{className c}InstanceId)
+~{entityFieldName e f} e = listToMaybe $ catMaybes [
+~{indent 8 $ intercalate ", " $ map (wrapInstance c f) $ instancesOf m c}
+    ]
+
diff --git a/codegen/enum.cg b/codegen/enum.cg
--- a/codegen/enum.cg
+++ b/codegen/enum.cg
@@ -15,7 +15,7 @@
 instance A.ToJSON ~{enumName e} where
 ~{toJSONs}
 
-instance PathPiece ~{enumName e} where
+instance PP.PathPiece ~{enumName e} where
 ~{fromPathPieces}
     fromPathPiece _ = Nothing
 ~{toPathPieces}
diff --git a/codegen/enums-header.cg b/codegen/enums-header.cg
--- a/codegen/enums-header.cg
+++ b/codegen/enums-header.cg
@@ -1,8 +1,8 @@
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE OverloadedStrings #-}
 module Handler.~{moduleName m}.Enums where
+import qualified Handler.~{moduleName m}.PathPieces as PP
 import Database.Persist.TH
 import qualified Data.Aeson as A
 import Prelude
-import Web.PathPieces
 import Control.Monad (mzero)
diff --git a/codegen/handler-header.cg b/codegen/handler-header.cg
--- a/codegen/handler-header.cg
+++ b/codegen/handler-header.cg
@@ -1,4 +1,4 @@
-~{hsHandlerMethod ht}~{hsRouteName (routePath r)} :: forall master. (~{moduleName m}Validation master, 
+~{hsHandlerMethod ht}~{hsRouteName (routePath r)} :: forall master. (~{moduleName m}Interface master, 
     YesodAuthPersist master,
     KeyEntity (AuthId master) ~ User,
     YesodPersistBackend master ~ SqlPersistT)
diff --git a/codegen/header.cg b/codegen/header.cg
--- a/codegen/header.cg
+++ b/codegen/header.cg
@@ -16,7 +16,10 @@
 module Handler.~{moduleName m}.Internal where
 import Handler.~{moduleName m}.Enums
 import Handler.~{moduleName m}.Esqueleto
+import qualified Handler.~{moduleName m}.PathPieces as PP
 import Prelude
+import Control.Monad (forM_, when)
+import Control.Monad.Catch (MonadThrow)
 import Database.Esqueleto
 import Database.Esqueleto.Internal.Sql (unsafeSqlBinOp, unsafeSqlExtractSubField, UnsafeSqlFunctionArgument)
 import qualified Database.Persist as P
@@ -109,72 +112,9 @@
 extractSubField :: UnsafeSqlFunctionArgument a => TLB.Builder -> a -> SqlExpr (Database.Esqueleto.Value Double)
 extractSubField = unsafeSqlExtractSubField
 
-safeRead :: forall a. Read a => Text -> Maybe a
-safeRead s = case (reads $ T.unpack s) of
-   [(v,_)] -> Just v
-   _ -> Nothing
-
-instance PathPiece Int32 where
-    fromPathPiece s = 
-        case Data.Text.Read.decimal s of
-            Right (i, _) -> Just i
-            Left _ -> Nothing
-    toPathPiece = T.pack . show
-
-instance PathPiece Word32 where
-    fromPathPiece s =
-        case Data.Text.Read.decimal s of
-            Right (i, _) -> Just i
-            Left _ -> Nothing
-
-    toPathPiece = T.pack . show
-
-instance PathPiece Word64 where
-    fromPathPiece s = 
-        case Data.Text.Read.decimal s of
-            Right (i, _) -> Just i
-            Left _ -> Nothing
-
-    toPathPiece = T.pack . show
-
-instance PathPiece Double where
-    fromPathPiece s = 
-        case Data.Text.Read.double s of
-            Right (i, _) -> Just i
-            Left _ -> Nothing
-    toPathPiece = T.pack . show
-
-instance PathPiece Bool where
-    fromPathPiece "true" = Just True
-    fromPathPiece "false" = Just False
-    fromPathPiece "True" = Just True
-    fromPathPiece "False" = Just False
-    fromPathPiece  _ = Nothing
-    toPathPiece = T.pack . show
-
-instance PathPiece TimeOfDay where
-    fromPathPiece = safeRead
-    toPathPiece = T.pack . show
-
-instance PathPiece UTCTime where
-    fromPathPiece = safeRead
-    toPathPiece = T.pack . show
-
-instance PathPiece ZonedTime where
-    fromPathPiece = safeRead
-    toPathPiece = T.pack . show
-
-instance (PathPiece a, Show a) => PathPiece [a] where
-    fromPathPiece s = do
-        parts <- safeRead s
-        values <- mapM fromPathPiece parts
-        return values
-    toPathPiece = T.pack . show
-            
-
 getDefaultFilter maybeGetParam defaultFilterJson p = do
     f <- maybe maybeGetParam Just getFilter
-    fromPathPiece f
+    PP.fromPathPiece f
     where 
         getFilter = do            
             j <- defaultFilterJson
diff --git a/codegen/interface-header.cg b/codegen/interface-header.cg
new file mode 100644
--- /dev/null
+++ b/codegen/interface-header.cg
@@ -0,0 +1,15 @@
+checkResult :: forall (m :: * -> *). (Monad m) => Text -> m Bool -> m (Maybe Text)
+checkResult msg f = do
+   result <- f
+   return $ if result then Nothing else (Just msg)
+
+class Validatable a where
+    validate :: forall master b. (P.PersistMonadBackend (b (HandlerT master IO)) ~ P.PersistEntityBackend a,
+                 b ~ YesodPersistBackend master,
+                 P.PersistQuery (b (HandlerT master IO)),
+                 P.PersistUnique (b (HandlerT master IO)),
+                 YesodPersist master,
+                 ~{moduleName m}Interface master) 
+             => a -> HandlerT master IO [Text]
+
+class Yesod master => ~{moduleName m}Interface master where
diff --git a/codegen/offset-limit-param.cg b/codegen/offset-limit-param.cg
--- a/codegen/offset-limit-param.cg
+++ b/codegen/offset-limit-param.cg
@@ -1,4 +1,4 @@
     defaultOffsetParam <- lookupGetParam "start"
     defaultLimitParam <- lookupGetParam "limit"
-    let defaultOffset = (maybe Nothing fromPathPiece defaultOffsetParam) :: Maybe Int64
-    let defaultLimit = (maybe Nothing fromPathPiece defaultLimitParam) :: Maybe Int64
+    let defaultOffset = (maybe Nothing PP.fromPathPiece defaultOffsetParam) :: Maybe Int64
+    let defaultLimit = (maybe Nothing PP.fromPathPiece defaultLimitParam) :: Maybe Int64
diff --git a/codegen/path-pieces.cg b/codegen/path-pieces.cg
new file mode 100644
--- /dev/null
+++ b/codegen/path-pieces.cg
@@ -0,0 +1,126 @@
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+module Handler.~{moduleName m}.PathPieces where
+import qualified Web.PathPieces as PP
+import Database.Persist.Types
+import Database.Persist.Sql
+import Prelude
+import Data.Time (TimeOfDay, UTCTime, ZonedTime)
+import Data.Int (Int64, Int32)
+import Data.Word (Word32,Word64)
+import Data.Maybe
+import qualified Data.Text as T
+import qualified Data.Text.Lazy as L
+import qualified Data.Text.Read
+import Data.Time (Day)
+import Control.Exception (assert)
+
+safeRead :: forall a. Read a => T.Text -> Maybe a
+safeRead s = case (reads $ T.unpack s) of
+   [(v,_)] -> Just v
+   _ -> Nothing
+
+class PathPiece s where
+    fromPathPiece :: T.Text -> Maybe s
+    toPathPiece :: s -> T.Text
+
+instance PathPiece String where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece T.Text where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece L.Text where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece Integer where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece Int where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece Bool where
+    fromPathPiece "true" = Just True
+    fromPathPiece "false" = Just False
+    fromPathPiece "True" = Just True
+    fromPathPiece "False" = Just False
+    fromPathPiece  _ = Nothing
+    toPathPiece = T.pack . show
+
+instance PathPiece Double where
+    fromPathPiece s = 
+        case Data.Text.Read.double s of
+            Right (i, _) -> Just i
+            Left _ -> Nothing
+    toPathPiece = T.pack . show
+
+instance PathPiece Int32 where
+    fromPathPiece s = 
+        case Data.Text.Read.decimal s of
+            Right (i, _) -> Just i
+            Left _ -> Nothing
+    toPathPiece = T.pack . show
+
+instance PathPiece Int64 where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece Word32 where
+    fromPathPiece s =
+        case Data.Text.Read.decimal s of
+            Right (i, _) -> Just i
+            Left _ -> Nothing
+
+    toPathPiece = T.pack . show
+
+instance PathPiece Word64 where
+    fromPathPiece s =
+        case Data.Text.Read.decimal s of
+            Right (i, _) -> Just i
+            Left _ -> Nothing
+
+    toPathPiece = T.pack . show
+
+instance PathPiece Day where
+    fromPathPiece  = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece TimeOfDay where
+    fromPathPiece = safeRead
+    toPathPiece = T.pack . show
+
+instance PathPiece UTCTime where
+    fromPathPiece = safeRead
+    toPathPiece = T.pack . show
+
+instance PathPiece ZonedTime where
+    fromPathPiece = safeRead
+    toPathPiece = T.pack . show
+
+instance (PathPiece a, PP.PathPiece (Maybe a)) => PathPiece (Maybe a) where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance (PathPiece a, Show a) => PathPiece [a] where
+    fromPathPiece s = do
+        parts <- safeRead s
+        values <- mapM fromPathPiece parts
+        return values
+    toPathPiece = T.pack . show
+
+instance PathPiece (KeyBackend SqlBackend entity) where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
+
+instance PathPiece PersistValue where
+    fromPathPiece = PP.fromPathPiece
+    toPathPiece = PP.toPathPiece
diff --git a/codegen/route-header.cg b/codegen/route-header.cg
--- a/codegen/route-header.cg
+++ b/codegen/route-header.cg
@@ -17,6 +17,7 @@
 import Handler.~{moduleName m}.Enums
 import Handler.~{moduleName m}.Esqueleto
 import Handler.~{moduleName m}.Internal
+import qualified Handler.~{moduleName m}.PathPieces as PP
 import Prelude
 import Database.Esqueleto
 import Database.Esqueleto.Internal.Sql (unsafeSqlBinOp)
diff --git a/codegen/validation-header.cg b/codegen/validation-header.cg
deleted file mode 100644
--- a/codegen/validation-header.cg
+++ /dev/null
@@ -1,15 +0,0 @@
-checkResult :: forall (m :: * -> *). (Monad m) => Text -> m Bool -> m (Maybe Text)
-checkResult msg f = do
-   result <- f
-   return $ if result then Nothing else (Just msg)
-
-class Validatable a where
-    validate :: forall master b. (P.PersistMonadBackend (b (HandlerT master IO)) ~ P.PersistEntityBackend a,
-                 b ~ YesodPersistBackend master,
-                 P.PersistQuery (b (HandlerT master IO)),
-                 P.PersistUnique (b (HandlerT master IO)),
-                 YesodPersist master,
-                 ~{moduleName m}Validation master) 
-             => a -> HandlerT master IO [Text]
-
-class Yesod master => ~{moduleName m}Validation master where
diff --git a/dist/build/YesodDsl/Lexer.hs b/dist/build/YesodDsl/Lexer.hs
--- a/dist/build/YesodDsl/Lexer.hs
+++ b/dist/build/YesodDsl/Lexer.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE CPP,MagicHash #-}
 {-# LINE 1 "YesodDsl/Lexer.x" #-}
 
-module YesodDsl.Lexer (lexer, tokenType, tokenLineNum, tokenColNum, Token(..), TokenType(..) ) where
+module YesodDsl.Lexer (lexer, tokenType, tokenLineNum, tokenColNum, Token(..), TokenType(..),tkString ) where
 
 #if __GLASGOW_HASKELL__ >= 603
 #include "ghcconfig.h"
@@ -297,6 +297,12 @@
            | TFloor
            | TCeiling
     deriving (Show)
+
+tkString :: Token -> String
+tkString (Tk _ (TLowerId s)) = s
+tkString (Tk _ (TUpperId s)) = s
+tkString (Tk _ (TString s)) = s
+tkString _ = ""
 
 stripQuotes s = take ((length s) -2) (tail s)
 
diff --git a/dist/build/YesodDsl/Parser.hs b/dist/build/YesodDsl/Parser.hs
--- a/dist/build/YesodDsl/Parser.hs
+++ b/dist/build/YesodDsl/Parser.hs
@@ -1,2656 +1,2914 @@
 {-# OPTIONS_GHC -w #-}
 {-# OPTIONS -fglasgow-exts -cpp #-}
 module YesodDsl.Parser (parse) where
-import YesodDsl.Lexer
-import YesodDsl.AST
-import YesodDsl.ModuleMerger
-import System.IO
-import Data.Maybe
-import Data.Typeable
-import Prelude hiding (catch) 
-import Control.Exception hiding (Handler)
-import System.Exit
-import qualified Data.Array as Happy_Data_Array
-import qualified GHC.Exts as Happy_GHC_Exts
-
--- parser produced by Happy Version 1.19.3
-
-newtype HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn4 :: t4 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn4 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn4 #-}
-happyOut4 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t4
-happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut4 #-}
-happyIn5 :: t5 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn5 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn5 #-}
-happyOut5 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t5
-happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut5 #-}
-happyIn6 :: t6 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t6
-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: t7 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t7
-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: t8 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t8
-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: t9 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t9
-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: t10 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t10
-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: t11 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t11
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: t12 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t12
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: t13 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t13
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: t14 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t14
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: t15 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t15
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: t16 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t16
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: t17 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t17
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: t18 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t18
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: t19 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t19
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: t20 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t20
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: t21 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t21
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: t22 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t22
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: t23 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t23
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: t24 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t24
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: t25 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t25
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: t26 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t26
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: t27 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t27
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: t28 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t28
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: t29 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t29
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: t30 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t30
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: t31 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t31
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: t32 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t32
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: t33 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t33
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: t34 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t34
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: t35 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t35
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: t36 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t36
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: t37 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t37
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: t38 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t38
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: t39 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t39
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: t40 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t40
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: t41 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t41
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: t42 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t42
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: t43 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t43
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: t44 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t44
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: t45 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t45
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: t46 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t46
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: t47 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t47
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: t48 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t48
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: t49 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t49
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: t50 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t50
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: t51 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t51
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: t52 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t52
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: t53 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t53
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: t54 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t54
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: t55 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t55
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: t56 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t56
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: t57 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t57
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: t58 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t58
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: t59 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t59
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: t60 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t60
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: t61 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t61
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: t62 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t62
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: t63 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t63
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: t64 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t64
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: t65 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t65
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: t66 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t66
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: t67 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t67
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: t68 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t68
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: t69 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t69
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: t70 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t70
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: t71 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t71
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: t72 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t72
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: t73 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t73
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: t74 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t74
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: t75 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t75
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: t76 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> t76
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76)
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\xdf\x02\xdf\x02\x00\x00\xd3\x02\x9f\x02\xce\x02\xd0\x02\x00\x00\xfe\xff\xc3\x02\x00\x00\xcc\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x02\xc9\x02\xc8\x02\xbc\x02\xc7\x02\xc2\x02\xd5\x00\x03\x00\xc0\x02\xbe\x02\xbf\x02\x00\x00\xc5\x02\x9d\x02\x00\x00\x00\x00\x00\x00\x87\x02\x95\x01\x03\x00\xc4\x02\xaf\x02\xad\x02\x00\x00\x00\x00\xe8\x01\x00\x00\xbb\x02\xbb\x02\xbb\x02\xbb\x02\x00\x00\xc1\x02\x00\x00\x9b\x02\x76\x00\x00\x00\xbd\x02\x00\x00\xba\x02\xb9\x02\xb6\x02\xcd\x00\x9c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x02\xb7\x02\x86\x02\x00\x00\x91\x01\xa7\x00\x00\x00\xb0\x02\xb5\x02\x00\x00\x00\x00\x20\x00\x91\x00\x00\x00\x00\x00\x00\x00\xb4\x02\xb3\x02\xb2\x02\xb1\x02\x00\x00\x0b\x00\x55\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x02\xab\x02\x75\x02\x9a\x02\x53\x02\x00\x00\x88\x02\x74\x02\x00\x00\x45\x01\xa5\x02\x00\x00\x99\x02\xa4\x02\xa3\x02\x9e\x02\x45\x01\x00\x00\x6d\x02\xf5\xff\x00\x00\xe5\x00\x97\x02\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x02\x8a\x02\x95\x02\x94\x02\x8e\x02\x8c\x02\x8b\x02\x00\x00\x68\x02\x5c\x02\x00\x00\x98\x02\x52\x02\x63\x02\x00\x00\x93\x02\x85\x02\x57\x00\x00\x00\x92\x02\x91\x02\x00\x00\x00\x00\x36\x02\x00\x00\x00\x00\x00\x00\x36\x02\x0b\x00\x00\x00\x90\x02\x0f\x00\x84\x02\x00\x00\x78\x00\x00\x00\x83\x02\x8f\x02\x00\x00\x69\x00\x00\x00\x00\x00\x8d\x02\x89\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x47\x02\x00\x00\x00\x00\x80\x02\x00\x00\x77\x02\x78\x02\x72\x02\x81\x02\x46\x02\x6f\x02\x82\x02\x42\x02\x6e\x02\x6c\x02\x00\x00\x7c\x02\x7f\x02\x57\x00\x2c\x01\x2c\x01\x67\x02\x2c\x01\x7e\x02\x07\x00\x7d\x02\xe0\x01\xbd\x00\x13\x01\x7b\x02\x7a\x02\x23\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02\x76\x02\x35\x02\x00\x00\x44\x01\xff\xff\x73\x02\x00\x00\xff\xff\x60\x02\x00\x00\x41\x02\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x02\x44\x01\xed\x01\x00\x00\xdc\x01\xd1\x01\x61\x02\x00\x00\x71\x02\x70\x02\x00\x00\x57\x00\x2e\x02\xa1\x00\x6b\x02\xb1\xff\x04\x00\x58\x02\x6a\x02\x69\x02\x25\x02\x57\x02\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x02\x3d\x02\x24\x02\x00\x00\x64\x02\x1a\x02\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x88\x00\x00\x00\x00\x00\x62\x02\x00\x00\x00\x00\x5f\x02\x4c\x02\x00\x00\x5d\x02\x00\x00\x22\x02\x00\x00\x21\x02\x8b\x01\x44\x01\x82\x01\x5b\x02\x23\x02\x20\x02\x1f\x02\x1e\x02\x1d\x02\x16\x00\x45\x02\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x51\x02\x57\x00\x00\x00\x50\x02\xe6\x01\xdf\x01\xe4\x01\x2b\x01\xfd\xff\x16\x00\xd5\x01\x00\x00\xe4\x01\x00\x00\x1c\x02\x1b\x02\x19\x02\x00\x00\x12\x02\x00\x00\x00\x00\x4f\x02\x00\x00\xd5\x01\x3a\x02\x16\x00\x00\x00\x4d\x02\x00\x00\x00\x00\x00\x00\x16\x00\x16\x00\x05\x02\xe4\x01\x8b\x00\xc2\x01\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x02\x00\x00\x00\x00\x16\x00\x16\x00\x00\x00\x00\x00\xe4\x01\xe4\x01\x00\x00\x44\x01\x00\x00\x16\x02\x01\x02\xe4\x01\xe4\x01\x09\x02\xd5\x01\xe4\x01\x00\x00\x33\x02\x00\x00\x16\x00\x45\x00\x00\x00\x44\x02\x10\x02\x86\x01\x2f\x02\x00\x00\x2d\x02\xd0\x01\x00\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\xb5\x01\x4a\x02\x48\x02\x00\x00\x00\x00\x00\x00\xa7\x01\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x02\x00\x00\x00\x00\x00\x00\x39\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x02\x11\x02\x0c\x02\x00\x00\x00\x00\x00\x00\x11\x01\x34\x02\x9e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x31\x02\x00\x00\x27\x02\x26\x02\x15\x02\x0b\x02\x00\x00\x15\x00\xeb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x01\x11\x00\x00\x00\xd7\x01\xc6\x01\x00\x00\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\x00\x00\x2a\x02\xbb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\xaa\x01\xa5\x01\x00\x00\x02\x02\xf2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x01\x00\x00\x00\x00\x00\x00\xbe\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x00\x00\x00\x00\x00\x9c\x01\x00\x00\x00\x00\x00\x00\xcf\x01\x00\x00\x00\x00\x99\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x00\x00\xae\x01\x00\x00\x00\x00\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x01\x00\x00\x00\x00\x00\x00\xf0\x00\x7c\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x46\x01\x42\x01\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x83\x01\x00\x00\xac\x01\x00\x00\x56\x01\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x01\x84\x01\x00\x00\x00\x00\x78\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x00\x00\x5d\x01\x5d\x01\x00\x00\x58\x01\x40\x01\x3d\x01\x00\x00\x08\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x98\x00\xf6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x01\x1e\x01\x00\x00\x00\x00\x00\x00\x16\x01\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x01\x28\x01\x00\x00\x00\x00\x0a\x01\x0a\x01\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x01\x06\x01\xf7\x00\x52\x01\xec\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\xff\x00\x00\xd6\x00\xd0\x00\xd0\x00\x00\x00\xa8\x00\x3b\x01\x17\x01\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\x00\x00\x02\x01\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x14\x00\xd1\x00\x00\x00\x00\x00\xa8\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x89\x00\xe5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xcc\x00\x00\x00\x00\x00\x65\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\xfd\xff\x00\x00\xfb\xff\x00\x00\x00\x00\x00\x00\xf8\xff\xfa\xff\xfe\xff\x00\x00\xfc\xff\x00\x00\xf7\xff\xf2\xff\xf3\xff\xf5\xff\xf6\xff\xf4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x66\xff\x61\xff\xe6\xff\xe4\xff\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\xef\xff\xee\xff\xe5\xff\x00\x00\xe2\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xff\x4b\xff\x61\xff\x00\x00\x00\x00\xea\xff\x00\x00\xeb\xff\x00\x00\x4b\xff\x00\x00\x00\x00\x35\xff\xdd\xff\xd2\xff\xde\xff\xdf\xff\xe0\xff\xe1\xff\xe7\xff\x00\x00\x00\x00\x00\x00\xed\xff\xc0\xff\x00\x00\x34\xff\x00\x00\x00\x00\x62\xff\x60\xff\x48\xff\x00\x00\x64\xff\xe9\xff\x65\xff\x00\x00\x44\xff\x00\x00\x00\x00\x4a\xff\x5c\xff\x56\xff\x40\xff\x3f\xff\x3e\xff\x3d\xff\x3c\xff\x3b\xff\x3a\xff\x39\xff\x38\xff\x37\xff\x36\xff\x56\xff\x00\x00\x00\x00\xbf\xff\xa2\xff\xd3\xff\x00\x00\x00\x00\xd0\xff\x00\x00\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xff\x00\x00\x00\x00\x79\xff\xd4\xff\x00\x00\x50\xff\x4f\xff\x00\x00\x51\xff\xd9\xff\xd6\xff\x4e\xff\x4d\xff\x4c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xff\x00\x00\x00\x00\xc4\xff\x95\xff\x00\x00\x00\x00\xbc\xff\x00\x00\x00\x00\xc1\xff\xbe\xff\x00\x00\x00\x00\xd1\xff\x5e\xff\x55\xff\x54\xff\x52\xff\x5d\xff\x56\xff\x5b\xff\x5a\xff\x00\x00\x00\x00\x49\xff\x42\xff\x00\x00\x46\xff\x00\x00\x00\x00\x63\xff\x00\x00\xe8\xff\x47\xff\x00\x00\x00\x00\x57\xff\x58\xff\x59\xff\x5f\xff\x53\xff\xc8\xff\x00\x00\xa1\xff\x9a\xff\x9f\xff\x9d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xff\x00\x00\x00\x00\x00\x00\x94\xff\x93\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\x00\x00\xf0\xff\x00\x00\x00\x00\x7b\xff\x7f\xff\x7e\xff\x7d\xff\x7c\xff\x00\x00\x00\x00\x00\x00\xb6\xff\x77\xff\xdb\xff\x00\x00\xba\xff\xdc\xff\x00\x00\xda\xff\x00\x00\x00\x00\x7a\xff\xd5\xff\xd7\xff\xd8\xff\x00\x00\x6f\xff\x00\x00\x75\xff\x00\x00\x00\x00\x00\x00\xb3\xff\x00\x00\x00\x00\x96\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xff\x45\xff\x43\xff\xc9\xff\x00\x00\x00\x00\x9e\xff\xa0\xff\x99\xff\x9b\xff\x9c\xff\x00\x00\x00\x00\xcd\xff\xbb\xff\x00\x00\xcb\xff\x92\xff\x91\xff\x90\xff\x00\x00\xd2\xff\x73\xff\x74\xff\x76\xff\x00\x00\x00\x00\xdb\xff\xdc\xff\x00\x00\x70\xff\xb9\xff\x00\x00\x00\x00\xb8\xff\x00\x00\xb3\xff\xb5\xff\xb4\xff\x00\x00\x00\x00\x6e\xff\xc0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xff\x00\x00\xb3\xff\xb3\xff\xca\xff\x98\xff\x00\x00\x00\x00\x00\x00\xa4\xff\x00\x00\x00\x00\x00\x00\xcc\xff\x00\x00\x00\x00\x00\x00\xb1\xff\xce\xff\xc3\xff\x6a\xff\x00\x00\x00\x00\x00\x00\x6b\xff\x00\x00\xc2\xff\x72\xff\x00\x00\xb7\xff\xb1\xff\x00\x00\x00\x00\xb3\xff\x00\x00\x69\xff\x68\xff\x67\xff\x00\x00\x00\x00\xaf\xff\x82\xff\x00\x00\x00\x00\x00\x00\x8f\xff\x8e\xff\x8d\xff\x8c\xff\x8b\xff\x8a\xff\x89\xff\x88\xff\x00\x00\x86\xff\x87\xff\x00\x00\x00\x00\x97\xff\xa3\xff\xc6\xff\xc5\xff\x85\xff\x80\xff\x81\xff\xad\xff\x00\x00\x83\xff\x84\xff\x6d\xff\xb1\xff\xb0\xff\xec\xff\x00\x00\xb2\xff\x00\x00\x00\x00\xcf\xff\x00\x00\xab\xff\x00\x00\xae\xff\xa9\xff\xd4\xff\x6c\xff\x71\xff\x00\x00\xa7\xff\xa6\xff\xa5\xff\xac\xff\x00\x00\xaa\xff\xa8\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x03\x00\x1d\x00\x05\x00\x06\x00\x07\x00\x11\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x27\x00\x5b\x00\x0a\x00\x0a\x00\x0a\x00\x1d\x00\x0a\x00\x0f\x00\x12\x00\x09\x00\x1d\x00\x21\x00\x66\x00\x12\x00\x34\x00\x1d\x00\x0c\x00\x0d\x00\x27\x00\x1f\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x40\x00\x12\x00\x12\x00\x34\x00\x08\x00\x34\x00\x35\x00\x36\x00\x34\x00\x0a\x00\x31\x00\x27\x00\x2f\x00\x22\x00\x31\x00\x1d\x00\x27\x00\x2f\x00\x40\x00\x31\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x40\x00\x1b\x00\x4a\x00\x41\x00\x40\x00\x2f\x00\x2f\x00\x31\x00\x31\x00\x40\x00\x31\x00\x40\x00\x4a\x00\x39\x00\x23\x00\x1d\x00\x40\x00\x39\x00\x0a\x00\x0b\x00\x22\x00\x41\x00\x40\x00\x40\x00\x58\x00\x41\x00\x34\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x59\x00\x59\x00\x62\x00\x59\x00\x0a\x00\x57\x00\x0c\x00\x0d\x00\x67\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x5c\x00\x5d\x00\x5e\x00\x58\x00\x40\x00\x12\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x56\x00\x0e\x00\x62\x00\x22\x00\x04\x00\x1c\x00\x59\x00\x27\x00\x1f\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x0e\x00\x20\x00\x0e\x00\x58\x00\x1f\x00\x12\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x31\x00\x32\x00\x62\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x40\x00\x1f\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x58\x00\x40\x00\x0e\x00\x5b\x00\x12\x00\x17\x00\x18\x00\x5f\x00\x1d\x00\x2f\x00\x62\x00\x31\x00\x1e\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x58\x00\x1f\x00\x22\x00\x0b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x40\x00\x61\x00\x62\x00\x05\x00\x06\x00\x33\x00\x25\x00\x1d\x00\x0a\x00\x28\x00\x0c\x00\x0d\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x1f\x00\x12\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x08\x00\x2e\x00\x1d\x00\x30\x00\x12\x00\x1d\x00\x12\x00\x22\x00\x20\x00\x12\x00\x18\x00\x58\x00\x1a\x00\x30\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x31\x00\x1c\x00\x62\x00\x1c\x00\x37\x00\x21\x00\x22\x00\x1e\x00\x1b\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x21\x00\x40\x00\x31\x00\x58\x00\x31\x00\x25\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x5a\x00\x1d\x00\x62\x00\x34\x00\x20\x00\x1c\x00\x40\x00\x1c\x00\x40\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x15\x00\x16\x00\x17\x00\x58\x00\x1c\x00\x12\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x42\x00\x43\x00\x62\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x10\x00\x11\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x12\x00\x12\x00\x24\x00\x12\x00\x12\x00\x3d\x00\x3e\x00\x3f\x00\x1d\x00\x2f\x00\x14\x00\x31\x00\x1a\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x30\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x40\x00\x1b\x00\x19\x00\x1a\x00\x2f\x00\x31\x00\x31\x00\x1d\x00\x31\x00\x31\x00\x21\x00\x12\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x1c\x00\x12\x00\x11\x00\x40\x00\x40\x00\x12\x00\x40\x00\x40\x00\x34\x00\x31\x00\x07\x00\x08\x00\x34\x00\x35\x00\x36\x00\x1d\x00\x24\x00\x12\x00\x21\x00\x12\x00\x22\x00\x3d\x00\x2c\x00\x2f\x00\x58\x00\x31\x00\x2d\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x31\x00\x1c\x00\x62\x00\x4b\x00\x31\x00\x34\x00\x35\x00\x36\x00\x40\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x2f\x00\x40\x00\x31\x00\x58\x00\x31\x00\x40\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x0a\x00\x30\x00\x62\x00\x2a\x00\x2b\x00\x2c\x00\x40\x00\x1b\x00\x40\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x12\x00\x0a\x00\x11\x00\x58\x00\x1c\x00\x1b\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x07\x00\x08\x00\x62\x00\x46\x00\x1e\x00\x03\x00\x04\x00\x21\x00\x1c\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x30\x00\x32\x00\x00\x00\x01\x00\x2f\x00\x3c\x00\x31\x00\x40\x00\x39\x00\x3a\x00\x3f\x00\x12\x00\x34\x00\x35\x00\x36\x00\x40\x00\x32\x00\x2f\x00\x29\x00\x1a\x00\x19\x00\x40\x00\x30\x00\x39\x00\x3a\x00\x37\x00\x38\x00\x39\x00\x4d\x00\x4e\x00\x40\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x53\x00\x54\x00\x19\x00\x1a\x00\x31\x00\x4d\x00\x4e\x00\x1e\x00\x12\x00\x11\x00\x21\x00\x26\x00\x63\x00\x64\x00\x17\x00\x18\x00\x1a\x00\x68\x00\x46\x00\x40\x00\x11\x00\x44\x00\x1e\x00\x45\x00\x11\x00\x21\x00\x31\x00\x63\x00\x64\x00\x34\x00\x35\x00\x36\x00\x68\x00\x1e\x00\x17\x00\x18\x00\x21\x00\x1e\x00\x3d\x00\x31\x00\x21\x00\x47\x00\x09\x00\x1c\x00\x34\x00\x35\x00\x36\x00\x3d\x00\x3e\x00\x3f\x00\x1e\x00\x1f\x00\x4b\x00\x48\x00\x40\x00\x34\x00\x35\x00\x36\x00\x14\x00\x34\x00\x35\x00\x36\x00\x2f\x00\x43\x00\x42\x00\x45\x00\x46\x00\x47\x00\x48\x00\x13\x00\x37\x00\x38\x00\x39\x00\x43\x00\x38\x00\x45\x00\x46\x00\x47\x00\x48\x00\x13\x00\x43\x00\x55\x00\x45\x00\x46\x00\x47\x00\x48\x00\x3d\x00\x3e\x00\x3f\x00\x36\x00\x43\x00\x55\x00\x45\x00\x46\x00\x47\x00\x48\x00\x13\x00\x13\x00\x55\x00\x3a\x00\x3b\x00\x3c\x00\x15\x00\x16\x00\x17\x00\x11\x00\x0f\x00\x38\x00\x55\x00\x35\x00\x0b\x00\x0f\x00\x0e\x00\x02\x00\x01\x00\x0c\x00\x20\x00\x1f\x00\x3f\x00\x0c\x00\x1e\x00\x49\x00\x52\x00\x3e\x00\x3d\x00\x51\x00\x0a\x00\x1e\x00\x0a\x00\x0a\x00\x42\x00\x4a\x00\x42\x00\x42\x00\x42\x00\x1b\x00\x10\x00\x44\x00\x44\x00\x44\x00\x42\x00\x0b\x00\x0a\x00\x1c\x00\x0a\x00\x50\x00\x4a\x00\x4a\x00\x0b\x00\x0a\x00\x0a\x00\x33\x00\x33\x00\x1b\x00\x0a\x00\x0a\x00\x0a\x00\x1e\x00\x52\x00\x4a\x00\x55\x00\x0a\x00\x0a\x00\x1b\x00\x0a\x00\x1e\x00\x4a\x00\x41\x00\x0b\x00\x41\x00\x0a\x00\x0a\x00\x1e\x00\x0b\x00\x0a\x00\x0a\x00\x0a\x00\x1c\x00\x1f\x00\x10\x00\x0b\x00\x1f\x00\x41\x00\x4a\x00\x10\x00\x20\x00\x0a\x00\x52\x00\x1d\x00\x4f\x00\x20\x00\x0b\x00\x0a\x00\x0a\x00\x65\x00\x0b\x00\x0b\x00\x0b\x00\x1c\x00\x20\x00\x4f\x00\x0a\x00\x1f\x00\x41\x00\x3d\x00\x4a\x00\x22\x00\x1d\x00\x1d\x00\x20\x00\x1d\x00\x0e\x00\x0a\x00\x41\x00\x0b\x00\x0b\x00\x1d\x00\x1d\x00\x60\x00\x1b\x00\x41\x00\x20\x00\x20\x00\x30\x00\x0e\x00\x65\x00\x0a\x00\x09\x00\x0b\x00\x0e\x00\x0b\x00\x0b\x00\x4c\x00\x0a\x00\x0a\x00\x0e\x00\x0b\x00\x40\x00\x10\x00\x0b\x00\x2f\x00\x2e\x00\x0a\x00\x1f\x00\x1e\x00\x0a\x00\x10\x00\x0b\x00\x0a\x00\x02\x00\x0b\x00\x0b\x00\x0b\x00\x1b\x00\x3c\x00\x3b\x00\x1b\x00\x0e\x00\x1b\x00\x0e\x00\x21\x00\x0b\x00\x1d\x00\x01\x00\x5a\x00\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x13\x00\x82\x01\x14\x00\x15\x00\x16\x00\xdb\x00\xd5\x00\x7e\x00\x7f\x00\x80\x00\x74\x01\x12\x01\x23\x00\x10\x01\x22\x01\x58\x01\xef\x00\x24\x00\x78\x00\xa6\x00\x61\x01\xdc\x00\x13\x01\x78\x00\x31\x01\x49\x01\x7f\x00\x80\x00\x3d\x01\xb5\xff\x82\x00\xd5\x00\x7e\x00\x7f\x00\x80\x00\xbb\x00\x78\x00\x78\x00\x31\x01\x4e\x00\xdd\x00\xde\x00\xdf\x00\x31\x01\xe5\x00\x4a\x01\x16\x01\x8d\x01\x82\x00\x47\x01\x49\x01\xf6\x00\x75\x01\xbb\x00\x47\x01\x82\x00\xd5\x00\x7e\x00\x7f\x00\x80\x00\xd6\x00\xe6\x00\xe0\x00\xb5\xff\x7b\x00\x76\x01\x7c\x01\x47\x01\x47\x01\x7b\x00\x4a\x01\xbb\x00\x27\x01\x3b\x00\x90\x01\x81\x00\xbb\x00\x3b\x00\x8d\x01\x7e\x00\x82\x00\x50\x00\x7b\x00\x7b\x00\x83\x00\x3c\x00\xe7\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x11\x01\x23\x01\x89\x00\xf0\x00\xbd\x00\xa7\x00\x7f\x00\x80\x00\x17\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x85\x00\x86\x00\x87\x00\x83\x00\xd6\x00\x78\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x58\x00\x09\x01\x89\x00\x82\x00\x38\x00\x43\x01\xe8\x00\xba\x00\x44\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x39\x00\x93\x01\xb1\x00\x83\x00\xb3\x00\x78\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\xf1\x00\xf2\x00\x89\x00\xd5\x00\x7e\x00\x7f\x00\x80\x00\xbb\x00\xb2\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x83\x00\x7b\x00\x55\x00\x84\x00\x89\x01\x60\x01\x61\x01\x88\x00\x81\x00\x7d\x01\x89\x00\x47\x01\x7a\x01\x82\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\xbe\x00\x56\x00\x96\x01\x5c\x00\x85\x00\x86\x00\x87\x00\xbf\x00\x7b\x00\xc0\x00\xc1\x00\x0c\x00\x0d\x00\x83\x01\x3e\x01\x81\x00\x0e\x00\x3f\x01\x0f\x00\x10\x00\x82\x00\xd5\x00\x7e\x00\x7f\x00\x80\x00\x86\x01\x78\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x4e\x00\x65\x01\x81\x00\xd9\x00\x78\x00\xd8\x00\x78\x00\x82\x00\xec\x00\x89\x01\x94\x00\x83\x00\x95\x00\xd9\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x78\x01\x4f\x00\x89\x00\x7f\x01\x11\x00\x8a\x01\x8b\x01\x7a\x01\x25\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x26\x00\x7b\x00\x7a\x00\x83\x00\x2e\x01\x73\x01\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x68\x00\xd8\x00\x89\x00\x31\x01\xd9\x00\x44\x01\x7b\x00\x45\x01\x7b\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x68\x00\x69\x00\x6a\x00\x83\x00\x4a\x01\x78\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x4c\x00\x56\x00\x89\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x2b\x00\x2c\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x78\x00\x78\x00\x4b\x01\x78\x00\x78\x00\xb6\x00\x9e\x00\x9f\x00\x81\x00\x80\x01\x30\x01\x47\x01\x14\x01\x82\x00\xd5\x00\x7e\x00\x7f\x00\x80\x00\xd9\x00\x67\x01\xdb\x00\x68\x01\x69\x01\x6a\x01\x6b\x01\x6c\x01\x7b\x00\x56\x01\x6d\x01\x6e\x01\x62\x01\x2f\x01\x47\x01\x81\x00\xe3\x00\x7a\x00\xdc\x00\x78\x00\x82\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x57\x01\x78\x00\xdb\x00\x7b\x00\x7b\x00\x78\x00\x7b\x00\x7b\x00\x31\x01\x6f\x01\xe8\x00\x28\x00\xdd\x00\xde\x00\xdf\x00\x81\x00\x09\x01\x78\x00\xdc\x00\x78\x00\x82\x00\x70\x01\x17\x01\x63\x01\x83\x00\x64\x01\x18\x01\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\xf4\x00\x1a\x01\x89\x00\x71\x01\xf5\x00\xdd\x00\xde\x00\xdf\x00\x7b\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x46\x01\x7b\x00\x47\x01\x83\x00\xd3\x00\x7b\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x6c\x00\xd9\x00\x89\x00\xc6\x00\xc7\x00\xc8\x00\x7b\x00\x25\x01\x7b\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x78\x00\x6c\x00\xdb\x00\x83\x00\x54\x01\x28\x01\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x27\x00\x28\x00\x89\x00\xae\x00\x55\x01\x07\x00\x08\x00\xdc\x00\x6d\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\xd9\x00\x6e\x00\x04\x00\x02\x00\x4c\x01\xb5\x00\x47\x01\xb3\x00\x6f\x00\x70\x00\xb7\x00\x78\x00\xdd\x00\xde\x00\xdf\x00\x71\x00\x6e\x00\x2e\x00\x91\x00\xea\x00\xc3\x00\x7b\x00\xd9\x00\x6f\x00\x70\x00\x2f\x00\x30\x00\x31\x00\x72\x00\x73\x00\x71\x00\x67\x01\xdb\x00\x68\x01\x69\x01\x6a\x01\x6b\x01\x6c\x01\x92\x01\x93\x01\x6d\x01\x6e\x01\x7a\x00\x72\x00\x73\x00\xed\x00\x78\x00\xdb\x00\xdc\x00\x98\x00\x74\x00\x75\x00\x60\x01\x61\x01\x79\x00\x76\x00\xa7\x00\x7b\x00\xdb\x00\xa9\x00\x1d\x01\xab\x00\xdb\x00\xdc\x00\x6f\x01\x74\x00\x75\x00\xdd\x00\xde\x00\xdf\x00\x76\x00\x1e\x01\x60\x01\x61\x01\xdc\x00\xed\x00\x70\x01\x7a\x00\xdc\x00\x5a\x00\x76\x00\x45\x00\xdd\x00\xde\x00\xdf\x00\x9d\x00\x9e\x00\x9f\x00\x1f\x01\x20\x01\x71\x01\x4a\x00\x7b\x00\xdd\x00\xde\x00\xdf\x00\x49\x00\xdd\x00\xde\x00\xdf\x00\x2e\x00\x33\x01\x4c\x00\x34\x01\x35\x01\x36\x01\x37\x01\x3e\x00\x2f\x00\x30\x00\x31\x00\x33\x01\x3a\x00\x34\x01\x35\x01\x36\x01\x37\x01\x40\x00\x33\x01\x5a\x01\x34\x01\x35\x01\x36\x01\x37\x01\xa1\x00\x9e\x00\x9f\x00\x51\x00\x33\x01\x72\x01\x34\x01\x35\x01\x36\x01\x37\x01\x41\x00\x42\x00\x73\x01\xa2\x00\xa3\x00\xa4\x00\x68\x00\x69\x00\x6a\x00\x43\x00\x2a\x00\x32\x00\x38\x01\x33\x00\x35\x00\x21\x00\x18\x00\x06\x00\x02\x00\x96\x01\xec\x00\x90\x01\x95\x01\x89\x01\x8f\x01\x85\x01\x86\x01\x88\x01\x78\x01\x7c\x01\x7f\x01\x82\x01\x5b\x01\x41\x01\x5d\x01\x5c\x01\x5e\x01\x5f\x01\x4e\x01\x0b\x01\x42\x01\x4f\x01\x50\x01\x51\x01\x52\x01\x53\x01\x2b\x01\x2c\x01\x2d\x01\x39\x01\x56\x01\x27\x01\x2e\x01\x3a\x01\x41\x01\x3c\x01\x3d\x01\x0b\x01\x0d\x01\x0e\x01\x14\x01\x0f\x01\x0c\x01\x16\x01\x3b\x01\xca\x00\x1a\x01\x1c\x01\x28\x01\x25\x01\x2a\x01\x21\x01\xe2\x00\x24\x01\xe3\x00\x2a\x00\xf4\x00\xea\x00\xee\x00\xf1\x00\xf8\x00\xfb\x00\xfa\x00\xf9\x00\xfd\x00\xfe\x00\x06\x01\xff\x00\x00\x01\x01\x01\x07\x01\xfc\x00\x02\x01\x05\x01\x03\x01\x08\x01\xa9\x00\xb5\x00\xa1\x00\xb9\x00\xba\x00\xc3\x00\xb0\x00\x04\x01\xc6\x00\xca\x00\xb3\x00\xc5\x00\xcc\x00\xcb\x00\xc2\x00\xcd\x00\xce\x00\xd2\x00\xcf\x00\x8f\x00\x90\x00\xe1\x00\x91\x00\x94\x00\xd0\x00\xd1\x00\x9a\x00\x93\x00\x97\x00\xd3\x00\xd7\x00\x98\x00\x9d\x00\xa1\x00\xa9\x00\xad\x00\xab\x00\x5a\x00\xae\x00\x59\x00\x9c\x00\x49\x00\x3e\x00\x50\x00\x53\x00\x78\x00\x48\x00\x54\x00\x9b\x00\x4c\x00\x3e\x00\x46\x00\x47\x00\x2a\x00\x1f\x00\x37\x00\x18\x00\x0a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x3a\x00\x35\x00\x20\x00\x1e\x00\x21\x00\x0b\x00\x1a\x00\x06\x00\x27\x00\x04\x00\x32\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = Happy_Data_Array.array (1, 203) [
-	(1 , happyReduce_1),
-	(2 , happyReduce_2),
-	(3 , happyReduce_3),
-	(4 , happyReduce_4),
-	(5 , happyReduce_5),
-	(6 , happyReduce_6),
-	(7 , happyReduce_7),
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163),
-	(164 , happyReduce_164),
-	(165 , happyReduce_165),
-	(166 , happyReduce_166),
-	(167 , happyReduce_167),
-	(168 , happyReduce_168),
-	(169 , happyReduce_169),
-	(170 , happyReduce_170),
-	(171 , happyReduce_171),
-	(172 , happyReduce_172),
-	(173 , happyReduce_173),
-	(174 , happyReduce_174),
-	(175 , happyReduce_175),
-	(176 , happyReduce_176),
-	(177 , happyReduce_177),
-	(178 , happyReduce_178),
-	(179 , happyReduce_179),
-	(180 , happyReduce_180),
-	(181 , happyReduce_181),
-	(182 , happyReduce_182),
-	(183 , happyReduce_183),
-	(184 , happyReduce_184),
-	(185 , happyReduce_185),
-	(186 , happyReduce_186),
-	(187 , happyReduce_187),
-	(188 , happyReduce_188),
-	(189 , happyReduce_189),
-	(190 , happyReduce_190),
-	(191 , happyReduce_191),
-	(192 , happyReduce_192),
-	(193 , happyReduce_193),
-	(194 , happyReduce_194),
-	(195 , happyReduce_195),
-	(196 , happyReduce_196),
-	(197 , happyReduce_197),
-	(198 , happyReduce_198),
-	(199 , happyReduce_199),
-	(200 , happyReduce_200),
-	(201 , happyReduce_201),
-	(202 , happyReduce_202),
-	(203 , happyReduce_203)
-	]
-
-happy_n_terms = 111 :: Int
-happy_n_nonterms = 73 :: Int
-
-happyReduce_1 = happySpecReduce_3  0# happyReduction_1
-happyReduction_1 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut5 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	case happyOut8 happy_x_3 of { happy_var_3 -> 
-	happyIn4
-		 (Module happy_var_1 (reverse happy_var_2) ((reverse . getEntities) happy_var_3) 
-                                    ((reverse . getClasses) happy_var_3)
-                                    ((reverse . getEnums) happy_var_3)
-                                    ((reverse . getRoutes) happy_var_3)
-                                    ((reverse . getDefines) happy_var_3)
-	)}}}
-
-happyReduce_2 = happySpecReduce_0  1# happyReduction_2
-happyReduction_2  =  happyIn5
-		 (Nothing
-	)
-
-happyReduce_3 = happySpecReduce_3  1# happyReduction_3
-happyReduction_3 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	happyIn5
-		 (Just happy_var_2
-	)}
-
-happyReduce_4 = happySpecReduce_0  2# happyReduction_4
-happyReduction_4  =  happyIn6
-		 ([]
-	)
-
-happyReduce_5 = happySpecReduce_2  2# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut6 happy_x_1 of { happy_var_1 -> 
-	case happyOut7 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_6 = happySpecReduce_3  3# happyReduction_6
-happyReduction_6 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TString happy_var_2)) -> 
-	happyIn7
-		 (happy_var_2
-	)}
-
-happyReduce_7 = happySpecReduce_0  4# happyReduction_7
-happyReduction_7  =  happyIn8
-		 ([]
-	)
-
-happyReduce_8 = happySpecReduce_2  4# happyReduction_8
-happyReduction_8 happy_x_2
-	happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	case happyOut9 happy_x_2 of { happy_var_2 -> 
-	happyIn8
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_9 = happySpecReduce_1  5# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	happyIn9
-		 (RouteDef happy_var_1
-	)}
-
-happyReduce_10 = happySpecReduce_1  5# happyReduction_10
-happyReduction_10 happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	happyIn9
-		 (EntityDef happy_var_1
-	)}
-
-happyReduce_11 = happySpecReduce_1  5# happyReduction_11
-happyReduction_11 happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	happyIn9
-		 (ClassDef happy_var_1
-	)}
-
-happyReduce_12 = happySpecReduce_1  5# happyReduction_12
-happyReduction_12 happy_x_1
-	 =  case happyOut14 happy_x_1 of { happy_var_1 -> 
-	happyIn9
-		 (EnumDef happy_var_1
-	)}
-
-happyReduce_13 = happySpecReduce_1  5# happyReduction_13
-happyReduction_13 happy_x_1
-	 =  case happyOut10 happy_x_1 of { happy_var_1 -> 
-	happyIn9
-		 (DefineDef happy_var_1
-	)}
-
-happyReduce_14 = happyReduce 8# 6# happyReduction_14
-happyReduction_14 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Tk _ (TLowerId happy_var_2)) -> 
-	case happyOut11 happy_x_4 of { happy_var_4 -> 
-	case happyOut13 happy_x_7 of { happy_var_7 -> 
-	happyIn10
-		 (Define happy_var_2 (mkLoc happy_var_1) happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}
-
-happyReduce_15 = happySpecReduce_0  7# happyReduction_15
-happyReduction_15  =  happyIn11
-		 ([]
-	)
-
-happyReduce_16 = happySpecReduce_1  7# happyReduction_16
-happyReduction_16 happy_x_1
-	 =  case happyOut12 happy_x_1 of { happy_var_1 -> 
-	happyIn11
-		 ((reverse happy_var_1)
-	)}
-
-happyReduce_17 = happySpecReduce_1  8# happyReduction_17
-happyReduction_17 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn12
-		 ([happy_var_1]
-	)}
-
-happyReduce_18 = happySpecReduce_3  8# happyReduction_18
-happyReduction_18 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut12 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn12
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_19 = happyReduce 9# 9# happyReduction_19
-happyReduction_19 (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 happyOut30 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_4 of { (Tk _ (TUpperId happy_var_4)) -> 
-	case happyOutTok happy_x_6 of { (Tk _ (TLowerId happy_var_6)) -> 
-	case happyOut32 happy_x_7 of { happy_var_7 -> 
-	case happyOut33 happy_x_8 of { happy_var_8 -> 
-	happyIn13
-		 (DefineSubQuery (SelectQuery [happy_var_2] (happy_var_4,happy_var_6) (reverse happy_var_7) happy_var_8 [] (0,0))
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_20 = happyReduce 5# 10# happyReduction_20
-happyReduction_20 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOut15 happy_x_4 of { happy_var_4 -> 
-	happyIn14
-		 (EnumType (mkLoc happy_var_1) happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_21 = happySpecReduce_1  11# happyReduction_21
-happyReduction_21 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TUpperId happy_var_1)) -> 
-	happyIn15
-		 ([happy_var_1]
-	)}
-
-happyReduce_22 = happySpecReduce_3  11# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	happyIn15
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_23 = happyReduce 9# 12# happyReduction_23
-happyReduction_23 (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 happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOut57 happy_x_4 of { happy_var_4 -> 
-	case happyOut60 happy_x_5 of { happy_var_5 -> 
-	case happyOut69 happy_x_6 of { happy_var_6 -> 
-	case happyOut71 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn16
-		 (Entity (mkLoc happy_var_1) happy_var_2 happy_var_4 (reverse happy_var_5)
-                            (reverse happy_var_6) happy_var_7 (reverse happy_var_8)
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_24 = happyReduce 5# 13# happyReduction_24
-happyReduction_24 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut18 happy_x_2 of { happy_var_2 -> 
-	case happyOut20 happy_x_4 of { happy_var_4 -> 
-	happyIn17
-		 (Route (mkLoc happy_var_1) (reverse happy_var_2) (reverse happy_var_4)
-	) `HappyStk` happyRest}}}
-
-happyReduce_25 = happySpecReduce_2  14# happyReduction_25
-happyReduction_25 happy_x_2
-	happy_x_1
-	 =  case happyOut19 happy_x_2 of { happy_var_2 -> 
-	happyIn18
-		 ([happy_var_2]
-	)}
-
-happyReduce_26 = happySpecReduce_3  14# happyReduction_26
-happyReduction_26 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_27 = happySpecReduce_1  15# happyReduction_27
-happyReduction_27 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn19
-		 (PathText happy_var_1
-	)}
-
-happyReduce_28 = happySpecReduce_2  15# happyReduction_28
-happyReduction_28 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TEntityId happy_var_2)) -> 
-	happyIn19
-		 (PathId happy_var_2
-	)}
-
-happyReduce_29 = happySpecReduce_1  16# happyReduction_29
-happyReduction_29 happy_x_1
-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> 
-	happyIn20
-		 ([happy_var_1]
-	)}
-
-happyReduce_30 = happySpecReduce_2  16# happyReduction_30
-happyReduction_30 happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	case happyOut21 happy_x_2 of { happy_var_2 -> 
-	happyIn20
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_31 = happySpecReduce_2  17# happyReduction_31
-happyReduction_31 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn21
-		 (Handler (mkLoc happy_var_1) GetHandler happy_var_2
-	)}}
-
-happyReduce_32 = happySpecReduce_2  17# happyReduction_32
-happyReduction_32 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn21
-		 (Handler (mkLoc happy_var_1) PutHandler happy_var_2
-	)}}
-
-happyReduce_33 = happySpecReduce_2  17# happyReduction_33
-happyReduction_33 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn21
-		 (Handler (mkLoc happy_var_1) PostHandler happy_var_2
-	)}}
-
-happyReduce_34 = happySpecReduce_2  17# happyReduction_34
-happyReduction_34 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn21
-		 (Handler (mkLoc happy_var_1) DeleteHandler happy_var_2
-	)}}
-
-happyReduce_35 = happySpecReduce_3  18# happyReduction_35
-happyReduction_35 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn22
-		 (FieldRefId happy_var_1
-	)}
-
-happyReduce_36 = happySpecReduce_3  18# happyReduction_36
-happyReduction_36 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn22
-		 (FieldRefNormal happy_var_1 happy_var_3
-	)}}
-
-happyReduce_37 = happySpecReduce_3  18# happyReduction_37
-happyReduction_37 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TUpperId happy_var_1)) -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	happyIn22
-		 (FieldRefEnum happy_var_1 happy_var_3
-	)}}
-
-happyReduce_38 = happySpecReduce_1  18# happyReduction_38
-happyReduction_38 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TPathParam happy_var_1)) -> 
-	happyIn22
-		 (FieldRefPathParam happy_var_1
-	)}
-
-happyReduce_39 = happySpecReduce_3  18# happyReduction_39
-happyReduction_39 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn22
-		 (FieldRefAuthId
-	)
-
-happyReduce_40 = happySpecReduce_3  18# happyReduction_40
-happyReduction_40 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn22
-		 (FieldRefAuth happy_var_3
-	)}
-
-happyReduce_41 = happySpecReduce_1  18# happyReduction_41
-happyReduction_41 happy_x_1
-	 =  happyIn22
-		 (FieldRefLocalParam
-	)
-
-happyReduce_42 = happySpecReduce_3  18# happyReduction_42
-happyReduction_42 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn22
-		 (FieldRefRequest happy_var_3
-	)}
-
-happyReduce_43 = happySpecReduce_1  18# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn22
-		 (FieldRefNamedLocalParam happy_var_1
-	)}
-
-happyReduce_44 = happySpecReduce_3  19# happyReduction_44
-happyReduction_44 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut24 happy_x_2 of { happy_var_2 -> 
-	happyIn23
-		 ((reverse happy_var_2)
-	)}
-
-happyReduce_45 = happySpecReduce_0  20# happyReduction_45
-happyReduction_45  =  happyIn24
-		 ([]
-	)
-
-happyReduce_46 = happySpecReduce_3  20# happyReduction_46
-happyReduction_46 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn24
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_47 = happySpecReduce_1  21# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  happyIn25
-		 (Public
-	)
-
-happyReduce_48 = happyReduce 10# 21# happyReduction_48
-happyReduction_48 (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 happyOut28 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_4 of { (Tk _ (TUpperId happy_var_4)) -> 
-	case happyOutTok happy_x_6 of { (Tk _ (TLowerId happy_var_6)) -> 
-	case happyOut32 happy_x_7 of { happy_var_7 -> 
-	case happyOut33 happy_x_8 of { happy_var_8 -> 
-	case happyOut34 happy_x_9 of { happy_var_9 -> 
-	case happyOut35 happy_x_10 of { happy_var_10 -> 
-	happyIn25
-		 (Select (SelectQuery happy_var_2 (happy_var_4,happy_var_6) (reverse happy_var_7) happy_var_8 happy_var_9 happy_var_10)
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_49 = happyReduce 7# 21# happyReduction_49
-happyReduction_49 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOut43 happy_x_5 of { happy_var_5 -> 
-	case happyOut40 happy_x_7 of { happy_var_7 -> 
-	happyIn25
-		 (Update happy_var_2 happy_var_5 (Just happy_var_7)
-	) `HappyStk` happyRest}}}
-
-happyReduce_50 = happyReduce 5# 21# happyReduction_50
-happyReduction_50 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	case happyOutTok happy_x_5 of { (Tk _ (TLowerId happy_var_5)) -> 
-	happyIn25
-		 (DeleteFrom happy_var_3 happy_var_5 Nothing
-	) `HappyStk` happyRest}}
-
-happyReduce_51 = happyReduce 7# 21# happyReduction_51
-happyReduction_51 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	case happyOutTok happy_x_5 of { (Tk _ (TLowerId happy_var_5)) -> 
-	case happyOut51 happy_x_7 of { happy_var_7 -> 
-	happyIn25
-		 (DeleteFrom happy_var_3 happy_var_5 (Just happy_var_7)
-	) `HappyStk` happyRest}}}
-
-happyReduce_52 = happyReduce 5# 21# happyReduction_52
-happyReduction_52 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOut43 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 (Update happy_var_2 happy_var_5 Nothing
-	) `HappyStk` happyRest}}
-
-happyReduce_53 = happyReduce 6# 21# happyReduction_53
-happyReduction_53 (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 happyOut27 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	case happyOut43 happy_x_6 of { happy_var_6 -> 
-	happyIn25
-		 (GetById happy_var_3 happy_var_6 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_54 = happyReduce 5# 21# happyReduction_54
-happyReduction_54 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut26 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	case happyOut40 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 (Insert happy_var_3 (Just happy_var_5) happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_55 = happySpecReduce_3  21# happyReduction_55
-happyReduction_55 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	happyIn25
-		 (Insert happy_var_3 Nothing happy_var_1
-	)}}
-
-happyReduce_56 = happySpecReduce_1  21# happyReduction_56
-happyReduction_56 happy_x_1
-	 =  happyIn25
-		 (DefaultFilterSort
-	)
-
-happyReduce_57 = happyReduce 9# 21# happyReduction_57
-happyReduction_57 (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 happyOutTok happy_x_3 of { (Tk _ (TString happy_var_3)) -> 
-	case happyOut32 happy_x_7 of { happy_var_7 -> 
-	case happyOut51 happy_x_9 of { happy_var_9 -> 
-	happyIn25
-		 (IfFilter (happy_var_3 ,(reverse happy_var_7) ,happy_var_9, True)
-	) `HappyStk` happyRest}}}
-
-happyReduce_58 = happyReduce 9# 21# happyReduction_58
-happyReduction_58 (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 happyOutTok happy_x_3 of { (Tk _ (TString happy_var_3)) -> 
-	case happyOut32 happy_x_7 of { happy_var_7 -> 
-	case happyOut51 happy_x_9 of { happy_var_9 -> 
-	happyIn25
-		 (IfFilter (happy_var_3, (reverse happy_var_7), happy_var_9, False)
-	) `HappyStk` happyRest}}}
-
-happyReduce_59 = happySpecReduce_2  21# happyReduction_59
-happyReduction_59 happy_x_2
-	happy_x_1
-	 =  case happyOut45 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 (Return happy_var_2
-	)}
-
-happyReduce_60 = happyReduce 7# 21# happyReduction_60
-happyReduction_60 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOutTok happy_x_4 of { (Tk _ (TLowerId happy_var_4)) -> 
-	case happyOut32 happy_x_5 of { happy_var_5 -> 
-	case happyOut51 happy_x_7 of { happy_var_7 -> 
-	happyIn25
-		 (Require (SelectQuery [] (happy_var_2,happy_var_4) (reverse happy_var_5) (Just happy_var_7) [] (0,0))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_61 = happyReduce 7# 21# happyReduction_61
-happyReduction_61 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (Tk _ (TLowerId happy_var_2)) -> 
-	case happyOut43 happy_x_4 of { happy_var_4 -> 
-	case happyOut24 happy_x_6 of { happy_var_6 -> 
-	happyIn25
-		 (For happy_var_2 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}
-
-happyReduce_62 = happySpecReduce_2  21# happyReduction_62
-happyReduction_62 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 (Call happy_var_1 (reverse happy_var_2)
-	)}}
-
-happyReduce_63 = happySpecReduce_0  22# happyReduction_63
-happyReduction_63  =  happyIn26
-		 (Nothing
-	)
-
-happyReduce_64 = happySpecReduce_1  22# happyReduction_64
-happyReduction_64 happy_x_1
-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
-	happyIn26
-		 (Just happy_var_1
-	)}
-
-happyReduce_65 = happySpecReduce_2  23# happyReduction_65
-happyReduction_65 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn27
-		 (happy_var_1
-	)}
-
-happyReduce_66 = happySpecReduce_2  24# happyReduction_66
-happyReduction_66 happy_x_2
-	happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn28
-		 (happy_var_1 : (reverse happy_var_2)
-	)}}
-
-happyReduce_67 = happySpecReduce_0  25# happyReduction_67
-happyReduction_67  =  happyIn29
-		 ([]
-	)
-
-happyReduce_68 = happySpecReduce_3  25# happyReduction_68
-happyReduction_68 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut30 happy_x_3 of { happy_var_3 -> 
-	happyIn29
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_69 = happySpecReduce_3  26# happyReduction_69
-happyReduction_69 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn30
-		 (SelectAllFields happy_var_1
-	)}
-
-happyReduce_70 = happyReduce 4# 26# happyReduction_70
-happyReduction_70 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn30
-		 (SelectIdField happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_71 = happyReduce 4# 26# happyReduction_71
-happyReduction_71 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn30
-		 (SelectField happy_var_1 happy_var_3 happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_72 = happyReduce 6# 26# happyReduction_72
-happyReduction_72 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOutTok happy_x_4 of { (Tk _ (TLowerId happy_var_4)) -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	happyIn30
-		 (SelectParamField happy_var_1 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}
-
-happyReduce_73 = happySpecReduce_3  26# happyReduction_73
-happyReduction_73 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn30
-		 (SelectValExpr happy_var_1 happy_var_3
-	)}}
-
-happyReduce_74 = happySpecReduce_0  27# happyReduction_74
-happyReduction_74  =  happyIn31
-		 (Nothing
-	)
-
-happyReduce_75 = happySpecReduce_2  27# happyReduction_75
-happyReduction_75 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TLowerId happy_var_2)) -> 
-	happyIn31
-		 (Just happy_var_2
-	)}
-
-happyReduce_76 = happySpecReduce_0  28# happyReduction_76
-happyReduction_76  =  happyIn32
-		 ([]
-	)
-
-happyReduce_77 = happyReduce 6# 28# happyReduction_77
-happyReduction_77 (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 happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut56 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	case happyOutTok happy_x_5 of { (Tk _ (TLowerId happy_var_5)) -> 
-	case happyOut55 happy_x_6 of { happy_var_6 -> 
-	happyIn32
-		 ((Join happy_var_2 happy_var_3 happy_var_5 happy_var_6):happy_var_1
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_78 = happySpecReduce_0  29# happyReduction_78
-happyReduction_78  =  happyIn33
-		 (Nothing
-	)
-
-happyReduce_79 = happySpecReduce_2  29# happyReduction_79
-happyReduction_79 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
-	happyIn33
-		 (Just happy_var_2
-	)}
-
-happyReduce_80 = happySpecReduce_0  30# happyReduction_80
-happyReduction_80  =  happyIn34
-		 ([]
-	)
-
-happyReduce_81 = happySpecReduce_3  30# happyReduction_81
-happyReduction_81 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn34
-		 ((reverse happy_var_3)
-	)}
-
-happyReduce_82 = happySpecReduce_0  31# happyReduction_82
-happyReduction_82  =  happyIn35
-		 ((10000,0)
-	)
-
-happyReduce_83 = happySpecReduce_3  31# happyReduction_83
-happyReduction_83 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TInt happy_var_2)) -> 
-	case happyOut36 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 ((happy_var_2,happy_var_3)
-	)}}
-
-happyReduce_84 = happySpecReduce_0  32# happyReduction_84
-happyReduction_84  =  happyIn36
-		 (0
-	)
-
-happyReduce_85 = happySpecReduce_2  32# happyReduction_85
-happyReduction_85 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TInt happy_var_2)) -> 
-	happyIn36
-		 (happy_var_2
-	)}
-
-happyReduce_86 = happySpecReduce_1  33# happyReduction_86
-happyReduction_86 happy_x_1
-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_87 = happySpecReduce_3  33# happyReduction_87
-happyReduction_87 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_88 = happySpecReduce_2  34# happyReduction_88
-happyReduction_88 happy_x_2
-	happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut39 happy_x_2 of { happy_var_2 -> 
-	happyIn38
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_89 = happySpecReduce_1  35# happyReduction_89
-happyReduction_89 happy_x_1
-	 =  happyIn39
-		 (SortAsc
-	)
-
-happyReduce_90 = happySpecReduce_1  35# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  happyIn39
-		 (SortDesc
-	)
-
-happyReduce_91 = happySpecReduce_3  36# happyReduction_91
-happyReduction_91 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut44 happy_x_2 of { happy_var_2 -> 
-	happyIn40
-		 (happy_var_2
-	)}
-
-happyReduce_92 = happySpecReduce_3  37# happyReduction_92
-happyReduction_92 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut43 happy_x_3 of { happy_var_3 -> 
-	happyIn41
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_93 = happySpecReduce_0  38# happyReduction_93
-happyReduction_93  =  happyIn42
-		 ([]
-	)
-
-happyReduce_94 = happySpecReduce_2  38# happyReduction_94
-happyReduction_94 happy_x_2
-	happy_x_1
-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
-	case happyOut43 happy_x_2 of { happy_var_2 -> 
-	happyIn42
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_95 = happySpecReduce_3  39# happyReduction_95
-happyReduction_95 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn43
-		 (InputFieldNormal happy_var_3
-	)}
-
-happyReduce_96 = happySpecReduce_1  39# happyReduction_96
-happyReduction_96 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn43
-		 (InputFieldLocalParam happy_var_1
-	)}
-
-happyReduce_97 = happySpecReduce_3  39# happyReduction_97
-happyReduction_97 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn43
-		 (InputFieldLocalParamField happy_var_1 happy_var_3
-	)}}
-
-happyReduce_98 = happySpecReduce_1  39# happyReduction_98
-happyReduction_98 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TPathParam happy_var_1)) -> 
-	happyIn43
-		 (InputFieldPathParam happy_var_1
-	)}
-
-happyReduce_99 = happySpecReduce_3  39# happyReduction_99
-happyReduction_99 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn43
-		 (InputFieldAuthId
-	)
-
-happyReduce_100 = happySpecReduce_3  39# happyReduction_100
-happyReduction_100 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn43
-		 (InputFieldAuth happy_var_3
-	)}
-
-happyReduce_101 = happySpecReduce_1  39# happyReduction_101
-happyReduction_101 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (InputFieldConst happy_var_1
-	)}
-
-happyReduce_102 = happySpecReduce_3  39# happyReduction_102
-happyReduction_102 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn43
-		 (InputFieldNow
-	)
-
-happyReduce_103 = happySpecReduce_1  40# happyReduction_103
-happyReduction_103 happy_x_1
-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> 
-	happyIn44
-		 ([happy_var_1]
-	)}
-
-happyReduce_104 = happySpecReduce_3  40# happyReduction_104
-happyReduction_104 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	case happyOut41 happy_x_3 of { happy_var_3 -> 
-	happyIn44
-		 (happy_var_3:happy_var_1
-	)}}
-
-happyReduce_105 = happySpecReduce_3  41# happyReduction_105
-happyReduction_105 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut46 happy_x_2 of { happy_var_2 -> 
-	happyIn45
-		 (happy_var_2
-	)}
-
-happyReduce_106 = happySpecReduce_0  42# happyReduction_106
-happyReduction_106  =  happyIn46
-		 ([]
-	)
-
-happyReduce_107 = happySpecReduce_1  42# happyReduction_107
-happyReduction_107 happy_x_1
-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> 
-	happyIn46
-		 (happy_var_1
-	)}
-
-happyReduce_108 = happySpecReduce_1  43# happyReduction_108
-happyReduction_108 happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	happyIn47
-		 ([ happy_var_1 ]
-	)}
-
-happyReduce_109 = happySpecReduce_3  43# happyReduction_109
-happyReduction_109 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	happyIn47
-		 (happy_var_3:happy_var_1
-	)}}
-
-happyReduce_110 = happySpecReduce_3  44# happyReduction_110
-happyReduction_110 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn48
-		 ((happy_var_1,happy_var_3)
-	)}}
-
-happyReduce_111 = happySpecReduce_1  45# happyReduction_111
-happyReduction_111 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn49
-		 (OutputFieldLocalParam happy_var_1
-	)}
-
-happyReduce_112 = happySpecReduce_1  46# happyReduction_112
-happyReduction_112 happy_x_1
-	 =  happyIn50
-		 (Eq
-	)
-
-happyReduce_113 = happySpecReduce_1  46# happyReduction_113
-happyReduction_113 happy_x_1
-	 =  happyIn50
-		 (Ne
-	)
-
-happyReduce_114 = happySpecReduce_1  46# happyReduction_114
-happyReduction_114 happy_x_1
-	 =  happyIn50
-		 (Lt
-	)
-
-happyReduce_115 = happySpecReduce_1  46# happyReduction_115
-happyReduction_115 happy_x_1
-	 =  happyIn50
-		 (Gt
-	)
-
-happyReduce_116 = happySpecReduce_1  46# happyReduction_116
-happyReduction_116 happy_x_1
-	 =  happyIn50
-		 (Le
-	)
-
-happyReduce_117 = happySpecReduce_1  46# happyReduction_117
-happyReduction_117 happy_x_1
-	 =  happyIn50
-		 (Ge
-	)
-
-happyReduce_118 = happySpecReduce_1  46# happyReduction_118
-happyReduction_118 happy_x_1
-	 =  happyIn50
-		 (Like
-	)
-
-happyReduce_119 = happySpecReduce_1  46# happyReduction_119
-happyReduction_119 happy_x_1
-	 =  happyIn50
-		 (Ilike
-	)
-
-happyReduce_120 = happySpecReduce_1  46# happyReduction_120
-happyReduction_120 happy_x_1
-	 =  happyIn50
-		 (Is
-	)
-
-happyReduce_121 = happySpecReduce_1  46# happyReduction_121
-happyReduction_121 happy_x_1
-	 =  happyIn50
-		 (In
-	)
-
-happyReduce_122 = happySpecReduce_2  46# happyReduction_122
-happyReduction_122 happy_x_2
-	happy_x_1
-	 =  happyIn50
-		 (NotIn
-	)
-
-happyReduce_123 = happySpecReduce_3  47# happyReduction_123
-happyReduction_123 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut51 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (AndExpr happy_var_1 happy_var_3
-	)}}
-
-happyReduce_124 = happySpecReduce_3  47# happyReduction_124
-happyReduction_124 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut51 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (OrExpr happy_var_1 happy_var_3
-	)}}
-
-happyReduce_125 = happySpecReduce_2  47# happyReduction_125
-happyReduction_125 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (NotExpr happy_var_2
-	)}
-
-happyReduce_126 = happySpecReduce_3  47# happyReduction_126
-happyReduction_126 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (happy_var_2
-	)}
-
-happyReduce_127 = happySpecReduce_3  47# happyReduction_127
-happyReduction_127 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (BinOpExpr happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_128 = happySpecReduce_1  48# happyReduction_128
-happyReduction_128 happy_x_1
-	 =  happyIn52
-		 (Div
-	)
-
-happyReduce_129 = happySpecReduce_1  48# happyReduction_129
-happyReduction_129 happy_x_1
-	 =  happyIn52
-		 (Mul
-	)
-
-happyReduce_130 = happySpecReduce_1  48# happyReduction_130
-happyReduction_130 happy_x_1
-	 =  happyIn52
-		 (Add
-	)
-
-happyReduce_131 = happySpecReduce_1  48# happyReduction_131
-happyReduction_131 happy_x_1
-	 =  happyIn52
-		 (Sub
-	)
-
-happyReduce_132 = happySpecReduce_1  48# happyReduction_132
-happyReduction_132 happy_x_1
-	 =  happyIn52
-		 (Concat
-	)
-
-happyReduce_133 = happySpecReduce_3  49# happyReduction_133
-happyReduction_133 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (happy_var_2
-	)}
-
-happyReduce_134 = happySpecReduce_1  49# happyReduction_134
-happyReduction_134 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (ConstExpr happy_var_1
-	)}
-
-happyReduce_135 = happySpecReduce_1  49# happyReduction_135
-happyReduction_135 happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 (FieldExpr happy_var_1
-	)}
-
-happyReduce_136 = happySpecReduce_3  49# happyReduction_136
-happyReduction_136 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	case happyOut52 happy_x_2 of { happy_var_2 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (ValBinOpExpr happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_137 = happyReduce 4# 49# happyReduction_137
-happyReduction_137 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut54 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (ConcatManyExpr (reverse happy_var_3)
-	) `HappyStk` happyRest}
-
-happyReduce_138 = happySpecReduce_3  49# happyReduction_138
-happyReduction_138 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn53
-		 (RandomExpr
-	)
-
-happyReduce_139 = happyReduce 4# 49# happyReduction_139
-happyReduction_139 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (FloorExpr happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_140 = happyReduce 4# 49# happyReduction_140
-happyReduction_140 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (CeilingExpr happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_141 = happyReduce 6# 49# happyReduction_141
-happyReduction_141 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	case happyOut53 happy_x_5 of { happy_var_5 -> 
-	happyIn53
-		 (ExtractExpr happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_142 = happyReduce 10# 49# happyReduction_142
-happyReduction_142 (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 happyOut30 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_5 of { (Tk _ (TUpperId happy_var_5)) -> 
-	case happyOutTok happy_x_7 of { (Tk _ (TLowerId happy_var_7)) -> 
-	case happyOut32 happy_x_8 of { happy_var_8 -> 
-	case happyOut33 happy_x_9 of { happy_var_9 -> 
-	happyIn53
-		 (SubQueryExpr (SelectQuery [happy_var_3] (happy_var_5,happy_var_7) (reverse happy_var_8) happy_var_9 
-                                      [] (0,0))
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_143 = happyReduce 4# 49# happyReduction_143
-happyReduction_143 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (ApplyExpr happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_144 = happySpecReduce_1  50# happyReduction_144
-happyReduction_144 happy_x_1
-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
-	happyIn54
-		 ([happy_var_1]
-	)}
-
-happyReduce_145 = happySpecReduce_3  50# happyReduction_145
-happyReduction_145 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn54
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_146 = happySpecReduce_0  51# happyReduction_146
-happyReduction_146  =  happyIn55
-		 (Nothing
-	)
-
-happyReduce_147 = happySpecReduce_2  51# happyReduction_147
-happyReduction_147 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
-	happyIn55
-		 (Just happy_var_2
-	)}
-
-happyReduce_148 = happySpecReduce_2  52# happyReduction_148
-happyReduction_148 happy_x_2
-	happy_x_1
-	 =  happyIn56
-		 (InnerJoin
-	)
-
-happyReduce_149 = happySpecReduce_2  52# happyReduction_149
-happyReduction_149 happy_x_2
-	happy_x_1
-	 =  happyIn56
-		 (CrossJoin
-	)
-
-happyReduce_150 = happySpecReduce_3  52# happyReduction_150
-happyReduction_150 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn56
-		 (LeftOuterJoin
-	)
-
-happyReduce_151 = happySpecReduce_3  52# happyReduction_151
-happyReduction_151 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn56
-		 (RightOuterJoin
-	)
-
-happyReduce_152 = happySpecReduce_3  52# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  happyIn56
-		 (FullOuterJoin
-	)
-
-happyReduce_153 = happySpecReduce_0  53# happyReduction_153
-happyReduction_153  =  happyIn57
-		 ([]
-	)
-
-happyReduce_154 = happyReduce 4# 53# happyReduction_154
-happyReduction_154 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut58 happy_x_3 of { happy_var_3 -> 
-	happyIn57
-		 ((reverse happy_var_3)
-	) `HappyStk` happyRest}
-
-happyReduce_155 = happySpecReduce_1  54# happyReduction_155
-happyReduction_155 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TUpperId happy_var_1)) -> 
-	happyIn58
-		 ([happy_var_1]
-	)}
-
-happyReduce_156 = happySpecReduce_3  54# happyReduction_156
-happyReduction_156 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	happyIn58
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_157 = happyReduce 6# 55# happyReduction_157
-happyReduction_157 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOut60 happy_x_4 of { happy_var_4 -> 
-	case happyOut69 happy_x_5 of { happy_var_5 -> 
-	happyIn59
-		 (Class (mkLoc happy_var_1) happy_var_2 (reverse happy_var_4) (reverse happy_var_5)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_158 = happySpecReduce_0  56# happyReduction_158
-happyReduction_158  =  happyIn60
-		 ([]
-	)
-
-happyReduce_159 = happySpecReduce_3  56# happyReduction_159
-happyReduction_159 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> 
-	case happyOut61 happy_x_2 of { happy_var_2 -> 
-	happyIn60
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_160 = happyReduce 5# 57# happyReduction_160
-happyReduction_160 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut76 happy_x_2 of { happy_var_2 -> 
-	case happyOut75 happy_x_3 of { happy_var_3 -> 
-	case happyOut62 happy_x_4 of { happy_var_4 -> 
-	case happyOut65 happy_x_5 of { happy_var_5 -> 
-	happyIn61
-		 (Field happy_var_2 (FieldInternal `elem` happy_var_5) happy_var_1 (NormalField happy_var_3 (reverse happy_var_4))
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_161 = happyReduce 4# 57# happyReduction_161
-happyReduction_161 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut76 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TEntityId happy_var_3)) -> 
-	case happyOut65 happy_x_4 of { happy_var_4 -> 
-	happyIn61
-		 (Field happy_var_2 (FieldInternal `elem` happy_var_4) happy_var_1 (EntityField happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_162 = happyReduce 4# 57# happyReduction_162
-happyReduction_162 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	case happyOut76 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	case happyOut65 happy_x_4 of { happy_var_4 -> 
-	happyIn61
-		 (Field happy_var_2 (FieldInternal `elem` happy_var_4) happy_var_1 (EnumField happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_163 = happySpecReduce_0  58# happyReduction_163
-happyReduction_163  =  happyIn62
-		 ([]
-	)
-
-happyReduce_164 = happySpecReduce_1  58# happyReduction_164
-happyReduction_164 happy_x_1
-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
-	happyIn62
-		 (happy_var_1
-	)}
-
-happyReduce_165 = happySpecReduce_1  59# happyReduction_165
-happyReduction_165 happy_x_1
-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 ([happy_var_1]
-	)}
-
-happyReduce_166 = happySpecReduce_2  59# happyReduction_166
-happyReduction_166 happy_x_2
-	happy_x_1
-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
-	case happyOut64 happy_x_2 of { happy_var_2 -> 
-	happyIn63
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_167 = happySpecReduce_2  60# happyReduction_167
-happyReduction_167 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TLowerId happy_var_2)) -> 
-	happyIn64
-		 (FieldCheck happy_var_2
-	)}
-
-happyReduce_168 = happySpecReduce_2  60# happyReduction_168
-happyReduction_168 happy_x_2
-	happy_x_1
-	 =  case happyOut68 happy_x_2 of { happy_var_2 -> 
-	happyIn64
-		 (FieldDefault happy_var_2
-	)}
-
-happyReduce_169 = happySpecReduce_0  61# happyReduction_169
-happyReduction_169  =  happyIn65
-		 ([]
-	)
-
-happyReduce_170 = happySpecReduce_1  61# happyReduction_170
-happyReduction_170 happy_x_1
-	 =  case happyOut66 happy_x_1 of { happy_var_1 -> 
-	happyIn65
-		 (happy_var_1
-	)}
-
-happyReduce_171 = happySpecReduce_1  62# happyReduction_171
-happyReduction_171 happy_x_1
-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 ([happy_var_1]
-	)}
-
-happyReduce_172 = happySpecReduce_2  62# happyReduction_172
-happyReduction_172 happy_x_2
-	happy_x_1
-	 =  case happyOut66 happy_x_1 of { happy_var_1 -> 
-	case happyOut67 happy_x_2 of { happy_var_2 -> 
-	happyIn66
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_173 = happySpecReduce_1  63# happyReduction_173
-happyReduction_173 happy_x_1
-	 =  happyIn67
-		 (FieldInternal
-	)
-
-happyReduce_174 = happySpecReduce_1  64# happyReduction_174
-happyReduction_174 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TString happy_var_1)) -> 
-	happyIn68
-		 (StringValue happy_var_1
-	)}
-
-happyReduce_175 = happySpecReduce_1  64# happyReduction_175
-happyReduction_175 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TInt happy_var_1)) -> 
-	happyIn68
-		 (IntValue happy_var_1
-	)}
-
-happyReduce_176 = happySpecReduce_1  64# happyReduction_176
-happyReduction_176 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TFloat happy_var_1)) -> 
-	happyIn68
-		 (FloatValue happy_var_1
-	)}
-
-happyReduce_177 = happySpecReduce_1  64# happyReduction_177
-happyReduction_177 happy_x_1
-	 =  happyIn68
-		 (BoolValue True
-	)
-
-happyReduce_178 = happySpecReduce_1  64# happyReduction_178
-happyReduction_178 happy_x_1
-	 =  happyIn68
-		 (BoolValue False
-	)
-
-happyReduce_179 = happySpecReduce_1  64# happyReduction_179
-happyReduction_179 happy_x_1
-	 =  happyIn68
-		 (NothingValue
-	)
-
-happyReduce_180 = happySpecReduce_0  65# happyReduction_180
-happyReduction_180  =  happyIn69
-		 ([]
-	)
-
-happyReduce_181 = happySpecReduce_3  65# happyReduction_181
-happyReduction_181 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut69 happy_x_1 of { happy_var_1 -> 
-	case happyOut70 happy_x_2 of { happy_var_2 -> 
-	happyIn69
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_182 = happySpecReduce_3  66# happyReduction_182
-happyReduction_182 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (Tk _ (TUpperId happy_var_2)) -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (Unique happy_var_2 (reverse happy_var_3)
-	)}}
-
-happyReduce_183 = happySpecReduce_0  67# happyReduction_183
-happyReduction_183  =  happyIn71
-		 ([]
-	)
-
-happyReduce_184 = happySpecReduce_3  67# happyReduction_184
-happyReduction_184 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut72 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 ((reverse happy_var_2)
-	)}
-
-happyReduce_185 = happySpecReduce_1  68# happyReduction_185
-happyReduction_185 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TUpperId happy_var_1)) -> 
-	happyIn72
-		 ([happy_var_1]
-	)}
-
-happyReduce_186 = happySpecReduce_3  68# happyReduction_186
-happyReduction_186 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut72 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TUpperId happy_var_3)) -> 
-	happyIn72
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_187 = happySpecReduce_0  69# happyReduction_187
-happyReduction_187  =  happyIn73
-		 ([]
-	)
-
-happyReduce_188 = happySpecReduce_3  69# happyReduction_188
-happyReduction_188 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	happyIn73
-		 (reverse happy_var_2
-	)}
-
-happyReduce_189 = happySpecReduce_1  70# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Tk _ (TLowerId happy_var_1)) -> 
-	happyIn74
-		 ([happy_var_1]
-	)}
-
-happyReduce_190 = happySpecReduce_3  70# happyReduction_190
-happyReduction_190 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (Tk _ (TLowerId happy_var_3)) -> 
-	happyIn74
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_191 = happySpecReduce_1  71# happyReduction_191
-happyReduction_191 happy_x_1
-	 =  happyIn75
-		 (FTWord32
-	)
-
-happyReduce_192 = happySpecReduce_1  71# happyReduction_192
-happyReduction_192 happy_x_1
-	 =  happyIn75
-		 (FTWord64
-	)
-
-happyReduce_193 = happySpecReduce_1  71# happyReduction_193
-happyReduction_193 happy_x_1
-	 =  happyIn75
-		 (FTInt32
-	)
-
-happyReduce_194 = happySpecReduce_1  71# happyReduction_194
-happyReduction_194 happy_x_1
-	 =  happyIn75
-		 (FTInt64
-	)
-
-happyReduce_195 = happySpecReduce_1  71# happyReduction_195
-happyReduction_195 happy_x_1
-	 =  happyIn75
-		 (FTText
-	)
-
-happyReduce_196 = happySpecReduce_1  71# happyReduction_196
-happyReduction_196 happy_x_1
-	 =  happyIn75
-		 (FTBool
-	)
-
-happyReduce_197 = happySpecReduce_1  71# happyReduction_197
-happyReduction_197 happy_x_1
-	 =  happyIn75
-		 (FTDouble
-	)
-
-happyReduce_198 = happySpecReduce_1  71# happyReduction_198
-happyReduction_198 happy_x_1
-	 =  happyIn75
-		 (FTTimeOfDay
-	)
-
-happyReduce_199 = happySpecReduce_1  71# happyReduction_199
-happyReduction_199 happy_x_1
-	 =  happyIn75
-		 (FTDay
-	)
-
-happyReduce_200 = happySpecReduce_1  71# happyReduction_200
-happyReduction_200 happy_x_1
-	 =  happyIn75
-		 (FTUTCTime
-	)
-
-happyReduce_201 = happySpecReduce_1  71# happyReduction_201
-happyReduction_201 happy_x_1
-	 =  happyIn75
-		 (FTZonedTime
-	)
-
-happyReduce_202 = happySpecReduce_0  72# happyReduction_202
-happyReduction_202  =  happyIn76
-		 (False
-	)
-
-happyReduce_203 = happySpecReduce_1  72# happyReduction_203
-happyReduction_203 happy_x_1
-	 =  happyIn76
-		 (True
-	)
-
-happyNewToken action sts stk [] =
-	happyDoAction 110# notHappyAtAll action sts stk []
-
-happyNewToken action sts stk (tk:tks) =
-	let cont i = happyDoAction i tk action sts stk tks in
-	case tk of {
-	Tk _ TModule -> cont 1#;
-	Tk _ TImport -> cont 2#;
-	Tk _ TEnum -> cont 3#;
-	Tk _ TPipe -> cont 4#;
-	Tk _ TEntity -> cont 5#;
-	Tk _ TClass -> cont 6#;
-	Tk _ TRoute -> cont 7#;
-	Tk _ TUnique -> cont 8#;
-	Tk _ TCheck -> cont 9#;
-	Tk _ (TLowerId happy_dollar_dollar) -> cont 10#;
-	Tk _ (TUpperId happy_dollar_dollar) -> cont 11#;
-	Tk _ (TInt happy_dollar_dollar) -> cont 12#;
-	Tk _ (TFloat happy_dollar_dollar) -> cont 13#;
-	Tk _ TSemicolon -> cont 14#;
-	Tk _ THash -> cont 15#;
-	Tk _ TEquals -> cont 16#;
-	Tk _ TConcatOp -> cont 17#;
-	Tk _ TNe -> cont 18#;
-	Tk _ TLt -> cont 19#;
-	Tk _ TGt -> cont 20#;
-	Tk _ TLe -> cont 21#;
-	Tk _ TGe -> cont 22#;
-	Tk _ TAnd -> cont 23#;
-	Tk _ TOr -> cont 24#;
-	Tk _ TLike -> cont 25#;
-	Tk _ TIlike -> cont 26#;
-	Tk _ TLBrace -> cont 27#;
-	Tk _ TRBrace -> cont 28#;
-	Tk _ TLParen -> cont 29#;
-	Tk _ TRParen -> cont 30#;
-	Tk _ TComma -> cont 31#;
-	Tk _ TDot -> cont 32#;
-	Tk _ TSlash -> cont 33#;
-	Tk _ (TString happy_dollar_dollar) -> cont 34#;
-	Tk _ TWord32 -> cont 35#;
-	Tk _ TWord64 -> cont 36#;
-	Tk _ TInt32 -> cont 37#;
-	Tk _ TInt64 -> cont 38#;
-	Tk _ TText -> cont 39#;
-	Tk _ TBool -> cont 40#;
-	Tk _ TDouble -> cont 41#;
-	Tk _ TTimeOfDay -> cont 42#;
-	Tk _ TDay -> cont 43#;
-	Tk _ TUTCTime -> cont 44#;
-	Tk _ TZonedTime -> cont 45#;
-	Tk _ TMaybe -> cont 46#;
-	Tk _ TGet -> cont 47#;
-	Tk _ TParam -> cont 48#;
-	Tk _ TNot -> cont 49#;
-	Tk _ TIf -> cont 50#;
-	Tk _ TThen -> cont 51#;
-	Tk _ TAsterisk -> cont 52#;
-	Tk _ TPlus -> cont 53#;
-	Tk _ TMinus -> cont 54#;
-	Tk _ TPut -> cont 55#;
-	Tk _ TPost -> cont 56#;
-	Tk _ TDelete -> cont 57#;
-	Tk _ TPublic -> cont 58#;
-	Tk _ TInstance -> cont 59#;
-	Tk _ TOf -> cont 60#;
-	Tk _ TIn -> cont 61#;
-	Tk _ TLimit -> cont 62#;
-	Tk _ TOffset -> cont 63#;
-	Tk _ TSelect -> cont 64#;
-	Tk _ TFrom -> cont 65#;
-	Tk _ TJoin -> cont 66#;
-	Tk _ TInner -> cont 67#;
-	Tk _ TOuter -> cont 68#;
-	Tk _ TLeft -> cont 69#;
-	Tk _ TRight -> cont 70#;
-	Tk _ TFull -> cont 71#;
-	Tk _ TCross -> cont 72#;
-	Tk _ TOn -> cont 73#;
-	Tk _ TAs -> cont 74#;
-	Tk _ TIs -> cont 75#;
-	Tk _ TInsert -> cont 76#;
-	Tk _ TUpdate -> cont 77#;
-	Tk _ TDefaultFilterSort -> cont 78#;
-	Tk _ TIdentified -> cont 79#;
-	Tk _ TWith -> cont 80#;
-	Tk _ TOrder -> cont 81#;
-	Tk _ TBy -> cont 82#;
-	Tk _ TAsc -> cont 83#;
-	Tk _ TDesc -> cont 84#;
-	Tk _ TWhere -> cont 85#;
-	Tk _ TDeriving -> cont 86#;
-	Tk _ TDefault -> cont 87#;
-	Tk _ (TPathParam happy_dollar_dollar) -> cont 88#;
-	Tk _ TId -> cont 89#;
-	Tk _ (TEntityId happy_dollar_dollar) -> cont 90#;
-	Tk _ TLocalParam -> cont 91#;
-	Tk _ TTrue -> cont 92#;
-	Tk _ TFalse -> cont 93#;
-	Tk _ TNothing -> cont 94#;
-	Tk _ TRequest -> cont 95#;
-	Tk _ TLArrow -> cont 96#;
-	Tk _ TNow -> cont 97#;
-	Tk _ TAuth -> cont 98#;
-	Tk _ TReturn -> cont 99#;
-	Tk _ TRequire -> cont 100#;
-	Tk _ TInternal -> cont 101#;
-	Tk _ TUnderScore -> cont 102#;
-	Tk _ TDefine -> cont 103#;
-	Tk _ TFor -> cont 104#;
-	Tk _ TExtract -> cont 105#;
-	Tk _ TConcat -> cont 106#;
-	Tk _ TRandom -> cont 107#;
-	Tk _ TFloor -> cont 108#;
-	Tk _ TCeiling -> cont 109#;
-	_ -> happyError' (tk:tks)
-	}
-
-happyError_ 110# tk tks = happyError' 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 . parseError
-
-moduleDefs tks = happyRunIdentity happySomeParser where
-  happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut4 x))
-
-happySeq = happyDontSeq
-
-
-data ModDef = EntityDef Entity
-           | ClassDef Class
-           | EnumDef EnumType
-           | RouteDef Route
-           | DefineDef Define
-           deriving (Show)
-
-data FieldFlag = FieldInternal deriving (Eq)
-getEntities :: [ModDef] -> [Entity]
-getEntities defs = mapMaybe (\d -> case d of (EntityDef e) -> Just e ; _ -> Nothing) defs
-
-getClasses :: [ModDef] -> [Class]
-getClasses defs = mapMaybe (\d -> case d of (ClassDef c) -> Just c; _ -> Nothing) defs
-
-getEnums :: [ModDef] -> [EnumType]
-getEnums defs = mapMaybe (\d -> case d of (EnumDef e) -> Just e; _ -> Nothing) defs
-
-getRoutes :: [ModDef] -> [Route]
-getRoutes defs = mapMaybe (\d -> case d of (RouteDef e) -> Just e; _ -> Nothing) defs
-
-getDefines :: [ModDef] -> [Define]
-getDefines defs = mapMaybe (\d -> case d of (DefineDef e) -> Just e; _ -> Nothing) defs
-
-
-data ParseError = ParseError String deriving (Show, Typeable)
-instance Exception ParseError
-
-parseError :: [Token] -> a
-parseError (t:ts) = throw (ParseError $ "Parse error : unexpected " ++ show (tokenType t) ++ " at line " ++ show (tokenLineNum t) ++ " col " ++ show (tokenColNum t))
-parseError _ = throw (ParseError $ "Parse error : unexpected end of file")
-
-parseModule :: FilePath -> IO Module
-parseModule path = catch 
-        (do
-            s <- readFile path
-            return $! moduleDefs $! lexer s)
-        (\(ParseError msg) -> do 
-            hPutStrLn stderr $ path ++ ": " ++ msg
-            exitWith (ExitFailure 1))
-       
-
-parseModules :: [FilePath] -> [FilePath] -> IO [(FilePath,Module)]
-parseModules handled (path:paths)
-    | path `elem` handled = return []
-    | otherwise = do
-        mod <- parseModule path
-        rest <- parseModules (path:handled) (paths ++ modImports mod)
-        return ((path,mod):rest)
-parseModules _ [] = return []
-
-parse path = parseModules [] [path]
+import YesodDsl.ParserState
+import YesodDsl.Lexer
+import YesodDsl.AST
+import YesodDsl.ModuleMerger
+import YesodDsl.ClassImplementer
+import YesodDsl.ExpandMacros
+import System.IO
+import Data.Maybe
+import Data.Typeable
+import Prelude hiding (catch) 
+import Control.Exception hiding (Handler)
+import System.Exit
+import Control.Monad.IO.Class
+import Control.Monad
+import Data.List
+import qualified Data.Array as Happy_Data_Array
+import qualified GHC.Exts as Happy_GHC_Exts
+
+-- parser produced by Happy Version 1.19.3
+
+newtype HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn4 :: t4 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn4 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn4 #-}
+happyOut4 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t4
+happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut4 #-}
+happyIn5 :: t5 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn5 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn5 #-}
+happyOut5 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t5
+happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut5 #-}
+happyIn6 :: t6 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t6
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: t7 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t7
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: t8 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t8
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: t9 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t9
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: t10 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t10
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: t11 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t11
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: t12 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t12
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: t13 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t13
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: t14 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t14
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: t15 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t15
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: t16 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t16
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: t17 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t17
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: t18 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t18
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: t19 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t19
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: t20 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t20
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: t21 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t21
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: t22 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t22
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: t23 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t23
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: t24 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t24
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: t25 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t25
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: t26 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t26
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: t27 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t27
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: t28 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t28
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: t29 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t29
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: t30 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t30
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: t31 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t31
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: t32 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t32
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: t33 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t33
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: t34 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t34
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: t35 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t35
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: t36 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t36
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: t37 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t37
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: t38 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t38
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: t39 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t39
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: t40 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t40
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: t41 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t41
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: t42 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t42
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: t43 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t43
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: t44 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t44
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: t45 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t45
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: t46 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t46
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: t47 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t47
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: t48 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t48
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: t49 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t49
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: t50 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t50
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: t51 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t51
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: t52 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t52
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: t53 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t53
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: t54 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t54
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: t55 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t55
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: t56 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t56
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: t57 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t57
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: t58 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t58
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: t59 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t59
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: t60 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t60
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: t61 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t61
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: t62 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t62
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: t63 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t63
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: t64 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t64
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: t65 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t65
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: t66 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t66
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: t67 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t67
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: t68 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t68
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: t69 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t69
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: t70 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t70
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: t71 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t71
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: t72 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t72
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: t73 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t73
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: t74 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t74
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: t75 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t75
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: t76 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t76
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: t77 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t77
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: t78 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t78
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: t79 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t79
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: t80 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t80
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: t81 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t81
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyIn82 :: t82 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn82 #-}
+happyOut82 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t82
+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut82 #-}
+happyIn83 :: t83 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn83 #-}
+happyOut83 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t83
+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut83 #-}
+happyIn84 :: t84 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn84 #-}
+happyOut84 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t84
+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut84 #-}
+happyIn85 :: t85 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn85 #-}
+happyOut85 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t85
+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut85 #-}
+happyIn86 :: t86 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn86 #-}
+happyOut86 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t86
+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut86 #-}
+happyIn87 :: t87 -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn87 #-}
+happyOut87 :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> t87
+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut87 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\xb6\x02\xb6\x02\xb4\x02\xaa\x02\x4c\x02\xa6\x02\x00\x00\x00\x00\xb0\x02\x91\x02\xa3\x02\x00\x00\xfe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x02\x9f\x02\x9e\x02\x8a\x02\x9a\x02\x00\x00\x8b\x02\xf5\xff\x15\x01\x95\x02\x92\x02\x97\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x02\x00\x00\x15\x01\x99\x02\x88\x02\x83\x02\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x73\x02\x96\x02\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x70\x02\x94\x02\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x02\x8f\x02\x00\x00\x00\x00\x81\x02\x00\x00\x7f\x02\x8c\x02\x90\x02\x59\x02\x8e\x02\x8d\x02\x87\x02\x89\x02\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x82\x00\x1c\x00\x00\x00\x77\x02\x82\x02\x86\x02\x00\x00\x00\x00\x00\x00\x00\x00\x52\x02\x00\x00\x00\x00\xa1\x00\xde\x00\x00\x00\x85\x02\x00\x00\x00\x00\x26\x02\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x02\x00\x00\x7d\x02\x7c\x02\x79\x02\x00\x00\x78\x00\x00\x00\x76\x02\x00\x00\x00\x00\x25\x02\x00\x00\x00\x00\x26\x00\x25\x02\x00\x00\x00\x00\x6f\x02\x00\x00\x00\x00\x71\x02\x4a\x02\x54\x02\x21\x02\x00\x00\x4e\x02\x00\x00\x00\x00\x72\x02\x00\x00\x6e\x02\x00\x00\x00\x00\x6d\x02\x00\x00\x39\x02\x00\x00\x6a\x01\x00\x00\x8e\x01\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x02\x66\x02\x65\x02\x5f\x02\x5e\x02\x5b\x02\x5a\x02\x6b\x02\x00\x00\x88\x00\x88\x00\x57\x02\x88\x00\x6a\x02\x1e\x00\x69\x02\xa2\x01\x36\x02\x8a\x01\x68\x02\x09\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x02\x51\x02\x64\x02\x63\x02\x61\x02\x62\x02\x00\x00\x60\x02\x1d\x02\x28\x02\x45\x02\x57\x00\x00\x00\x5d\x02\x5d\x02\x00\x00\x5c\x02\x00\x00\x26\x00\x00\x00\x56\x02\x0f\x00\x00\x00\x17\x00\x48\x02\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x02\x13\x02\x00\x00\x00\x00\x43\x02\x00\x00\x3d\x02\x42\x02\x3c\x02\x47\x02\x49\x02\x0f\x02\x3e\x02\x3a\x02\x00\x00\x46\x02\x7f\x01\x0e\x02\x18\x02\x00\x00\x7f\x01\x2f\x00\x00\x00\x9e\x01\x84\x00\x44\x02\x00\x00\x84\x00\x35\x02\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x02\x9e\x01\xda\x01\x00\x00\x9b\x01\x97\x01\x00\x00\x00\x00\x00\x00\x16\x00\x16\x00\x2d\x02\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x3f\x02\x2c\x02\x00\x00\x00\x00\x09\x02\x3b\x02\x03\x02\x0d\x02\x0c\x02\x0b\x02\x01\x02\x57\x00\x38\x02\xf8\x01\x37\x02\x34\x02\x00\x00\x57\x00\xf7\x01\x69\x00\x07\x00\x22\x02\x33\x02\x30\x02\xf5\x01\x20\x02\x00\x00\x2f\x02\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x02\xfd\x01\x00\x00\xfd\xff\xf4\x01\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x1b\x02\x00\x00\xf3\x01\xf2\x01\xf0\x01\x00\x00\xef\x01\xee\x01\x84\x00\x00\x00\x17\x02\x00\x00\x7c\x01\x9e\x01\x00\x00\x00\x00\x00\x00\xf1\x01\xea\x01\x7f\x01\xfd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xde\x01\x70\x01\xfd\xff\xfd\xff\x16\x02\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x1e\x02\x57\x00\x00\x00\x23\x02\x7f\x01\x7f\x01\xfd\xff\xfd\xff\x00\x00\xde\x01\x25\x01\x5e\x01\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x01\x00\x00\x00\x00\x00\x00\x9e\x00\xde\x01\x00\x00\x45\x00\x00\x00\x1f\x02\xed\x01\xa0\x01\x0a\x02\x00\x00\x02\x02\x00\x00\x00\x00\x9e\x01\x00\x00\xd9\x01\xd9\x01\xd5\x01\xcc\x01\x00\x00\x00\x00\xfd\xff\xfd\xff\x00\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x02\x00\x00\x00\x00\xd9\x01\xd9\x01\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x95\x01\x1c\x02\xd6\x01\x1a\x02\x00\x00\x00\x00\x00\x00\x15\x02\xb9\x01\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x02\x00\x00\x00\x00\x00\x00\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\xe8\x01\xe7\x01\xe5\x01\x00\x00\x00\x00\x00\x00\xe3\x01\x05\x02\x99\x01\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xe2\x01\xe1\x01\xdc\x01\x00\x00\x00\x00\xdd\x01\x00\x00\xd4\x01\x00\x00\x89\x00\xf6\xff\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x01\x00\x00\xfa\x01\x00\x00\x00\x00\x00\x00\x81\x00\xc2\x01\x95\x00\x66\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x31\x01\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x59\x01\x00\x00\x00\x00\xd1\x01\xf6\x01\xb1\x00\xce\x01\x00\x00\xbe\x00\xc0\x01\x00\x00\x10\x01\x00\x00\x00\x00\x9f\x01\xd5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x01\x00\x00\x3e\x00\xc1\x01\x30\x00\x00\x00\x00\x00\xcb\x01\xd6\x00\x00\x00\x00\x00\xc5\x01\x00\x00\x00\x00\x9c\x00\x81\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\xca\x01\x00\x00\x07\x02\x00\x00\xdb\x01\xc8\x01\xc7\x01\x00\x00\x00\x00\x00\x00\xe4\x01\xcf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x01\x3e\x01\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xcf\x01\xec\x01\x00\x00\x4a\x00\x00\x00\x3d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x01\x00\x02\x00\x00\xe6\x01\x00\x00\xae\x01\x00\x00\x00\x00\x00\x00\xea\xff\x00\x00\xff\x01\xfe\x01\x00\x00\xaf\x01\x00\x00\x85\x00\x00\x00\xfc\x01\xb2\x01\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x13\x01\x00\x00\xc3\x01\xd0\x01\x00\x00\x00\x00\xcd\x01\x00\x00\x00\x00\x94\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\xab\x01\xab\x01\x00\x00\x00\x00\x00\x00\x20\x01\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x01\xb6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\x00\x00\x00\x00\x86\x01\x69\x01\x00\x00\xe1\xff\x73\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x33\x01\xdf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x1a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x01\x48\x01\x2c\x01\x00\x00\x00\x00\x00\x00\x07\x01\x07\x01\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x4d\x00\x12\x01\x00\x00\x00\x00\x00\x00\xfb\x00\xd1\x00\xb8\x00\x87\x00\x11\x01\xdc\x00\x00\x00\x00\x00\xbb\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\xad\x00\xfa\xff\xef\xff\x03\x01\x02\x01\x00\x00\x00\x00\x00\x00\xb8\x00\x1b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x43\x01\x00\x00\x00\x00\x8b\x00\x9f\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\xa4\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xd6\xff\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\xfb\xff\x00\x00\xf9\xff\x00\x00\x00\x00\x00\x00\xfc\xff\xf6\xff\xf9\xff\x00\x00\x00\x00\xf8\xff\xfe\xff\xfa\xff\xf5\xff\xf0\xff\xf1\xff\xf3\xff\xf4\xff\xf2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xff\x59\xff\x59\xff\xe2\xff\xe0\xff\x00\x00\x59\xff\x00\x00\xee\xff\x00\x00\xed\xff\xec\xff\xe1\xff\x00\x00\xdf\xff\x57\xff\x5f\xff\x00\x00\xe7\xff\xe6\xff\x58\xff\xe8\xff\x57\xff\x00\x00\x41\xff\x58\xff\x59\xff\xde\xff\xdc\xff\xdb\xff\xda\xff\xd9\xff\x00\x00\x00\x00\x59\xff\xeb\xff\x00\x00\xdd\xff\x00\x00\x00\x00\x58\xff\x2a\xff\x00\x00\x41\xff\x00\x00\x00\x00\xe5\xff\xe9\xff\x3e\xff\x5d\xff\x5c\xff\x00\x00\x00\x00\x29\xff\x00\x00\x00\x00\x00\x00\x56\xff\xe3\xff\x58\xff\xca\xff\x00\x00\x58\xff\xea\xff\x00\x00\xb9\xff\xd8\xff\x00\x00\x40\xff\x5a\xff\x4c\xff\x59\xff\x35\xff\x34\xff\x33\xff\x32\xff\x31\xff\x30\xff\x2f\xff\x2e\xff\x2d\xff\x2c\xff\x2b\xff\x4c\xff\x5e\xff\x00\x00\x3a\xff\x00\x00\x3c\xff\x00\x00\x58\xff\x00\x00\x5b\xff\x54\xff\x4b\xff\x4a\xff\x48\xff\x00\x00\x4c\xff\x53\xff\x37\xff\x3f\xff\x38\xff\xc7\xff\x00\x00\x00\x00\xb8\xff\x9b\xff\xcb\xff\x00\x00\x59\xff\xc8\xff\x00\x00\xc0\xff\x00\x00\x59\xff\x59\xff\x00\x00\x71\xff\x00\x00\xb5\xff\x00\x00\x72\xff\xce\xff\x46\xff\x45\xff\x59\xff\x47\xff\xd3\xff\xd0\xff\x44\xff\x43\xff\x42\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xee\xff\x00\x00\x00\x00\x74\xff\x78\xff\x77\xff\x76\xff\x75\xff\x00\x00\xb6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xff\x8e\xff\x00\x00\x00\x00\x00\x00\xba\xff\xb7\xff\x00\x00\x00\x00\xc9\xff\x00\x00\x55\xff\x58\xff\x50\xff\x00\x00\x00\x00\x49\xff\x00\x00\x00\x00\x3d\xff\x00\x00\x3b\xff\xe4\xff\x39\xff\x4d\xff\x4e\xff\xfd\xff\x51\xff\x4f\xff\x36\xff\xc1\xff\x00\x00\x9a\xff\x93\xff\x98\xff\x96\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x8c\xff\x00\x00\xac\xff\x00\x00\x00\x00\xd5\xff\xac\xff\x00\x00\xaf\xff\x70\xff\xd6\xff\x00\x00\xb3\xff\xd7\xff\x00\x00\x00\x00\x58\xff\x73\xff\xcf\xff\xd1\xff\xd2\xff\x00\x00\x68\xff\x00\x00\x6e\xff\x00\x00\x00\x00\x6c\xff\x6d\xff\x6f\xff\x00\x00\x00\x00\x00\x00\xd6\xff\x00\x00\xd7\xff\x69\xff\xb2\xff\x00\x00\x00\x00\xb1\xff\xb4\xff\xaa\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\xaa\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\x00\x00\x97\xff\x99\xff\x92\xff\x94\xff\x95\xff\x00\x00\x00\x00\x58\xff\x00\x00\xc4\xff\x8b\xff\x8a\xff\x89\xff\x00\x00\xcd\xff\x00\x00\x63\xff\x00\x00\x00\x00\x00\x00\x64\xff\x66\xff\xa8\xff\xd4\xff\xad\xff\x00\x00\x6a\xff\x00\x00\x67\xff\x6b\xff\xd4\xff\xb0\xff\xa6\xff\x00\x00\xac\xff\x00\x00\x62\xff\x61\xff\x60\xff\xca\xff\x58\xff\x00\x00\x59\xff\x00\x00\x00\x00\xa9\xff\xc5\xff\x59\xff\x59\xff\xc3\xff\x91\xff\x00\x00\x00\x00\x00\x00\x9d\xff\x00\x00\xac\xff\xac\xff\x00\x00\x00\x00\xc6\xff\x7b\xff\x00\x00\x00\x00\x00\x00\x88\xff\x87\xff\x86\xff\x85\xff\x84\xff\x83\xff\x82\xff\x81\xff\x00\x00\x7f\xff\x80\xff\xbc\xff\xb9\xff\x65\xff\xab\xff\x00\x00\xcc\xff\x00\x00\xa4\xff\x00\x00\xa7\xff\xa2\xff\xce\xff\x58\xff\x7e\xff\x79\xff\x7a\xff\x7c\xff\x7d\xff\x00\x00\x00\x00\x90\xff\x9c\xff\x00\x00\x00\x00\xbb\xff\x00\x00\xa0\xff\x9f\xff\x9e\xff\xa5\xff\x00\x00\xa3\xff\xa1\xff\x58\xff\x58\xff\xbf\xff\xbe\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x03\x00\x2e\x00\x05\x00\x06\x00\x07\x00\x0e\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x15\x00\x16\x00\x2e\x00\x02\x00\x2e\x00\x1b\x00\x0a\x00\x23\x00\x0a\x00\x2e\x00\x40\x00\x21\x00\x41\x00\x2e\x00\x44\x00\x1d\x00\x0c\x00\x0d\x00\x23\x00\x4a\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x1b\x00\x0e\x00\x41\x00\x0b\x00\x0a\x00\x4a\x00\x3b\x00\x4a\x00\x08\x00\x0a\x00\x31\x00\x09\x00\x4a\x00\x22\x00\x02\x00\x1d\x00\x4a\x00\x3b\x00\x1f\x00\x41\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x34\x00\x1b\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x37\x00\x0d\x00\x1d\x00\x07\x00\x08\x00\x0a\x00\x0b\x00\x22\x00\x0c\x00\x09\x00\x0a\x00\x58\x00\x10\x00\x11\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x65\x00\x52\x00\x62\x00\x59\x00\x0a\x00\x59\x00\x0c\x00\x0d\x00\x67\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x5c\x00\x5d\x00\x5e\x00\x58\x00\x02\x00\x23\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x5a\x00\x59\x00\x62\x00\x22\x00\x56\x00\x3d\x00\x59\x00\x57\x00\x4e\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x17\x00\x3f\x00\x0e\x00\x58\x00\x3b\x00\x02\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x41\x00\x0e\x00\x62\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x29\x00\x1f\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x58\x00\x17\x00\x23\x00\x5b\x00\x1f\x00\x0d\x00\x1f\x00\x5f\x00\x1d\x00\x02\x00\x62\x00\x0a\x00\x43\x00\x22\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x58\x00\x23\x00\x4b\x00\x27\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x3b\x00\x61\x00\x62\x00\x1c\x00\x17\x00\x0b\x00\x36\x00\x1d\x00\x38\x00\x02\x00\x02\x00\x41\x00\x22\x00\x5b\x00\x41\x00\x41\x00\x40\x00\x3b\x00\x2a\x00\x19\x00\x46\x00\x43\x00\x4c\x00\x4a\x00\x66\x00\x32\x00\x4a\x00\x3d\x00\x3e\x00\x4b\x00\x17\x00\x17\x00\x39\x00\x3a\x00\x2c\x00\x36\x00\x02\x00\x38\x00\x1f\x00\x40\x00\x21\x00\x58\x00\x45\x00\x46\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x0a\x00\x40\x00\x62\x00\x4d\x00\x4e\x00\x35\x00\x4a\x00\x37\x00\x17\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x38\x00\x38\x00\x39\x00\x58\x00\x1c\x00\x40\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x63\x00\x64\x00\x62\x00\x02\x00\x02\x00\x68\x00\x2b\x00\x4a\x00\x4a\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x36\x00\x32\x00\x38\x00\x41\x00\x02\x00\x02\x00\x02\x00\x1b\x00\x39\x00\x3a\x00\x17\x00\x17\x00\x02\x00\x02\x00\x02\x00\x40\x00\x0a\x00\x02\x00\x02\x00\x02\x00\x4a\x00\x0f\x00\x2f\x00\x50\x00\x51\x00\x17\x00\x17\x00\x17\x00\x4d\x00\x4e\x00\x37\x00\x38\x00\x39\x00\x17\x00\x17\x00\x17\x00\x26\x00\x21\x00\x17\x00\x17\x00\x17\x00\x36\x00\x36\x00\x38\x00\x38\x00\x17\x00\x18\x00\x37\x00\x02\x00\x02\x00\x63\x00\x64\x00\x1e\x00\x02\x00\x02\x00\x68\x00\x36\x00\x36\x00\x38\x00\x38\x00\x38\x00\x4a\x00\x4a\x00\x22\x00\x36\x00\x36\x00\x38\x00\x38\x00\x38\x00\x17\x00\x17\x00\x38\x00\x38\x00\x38\x00\x17\x00\x17\x00\x4a\x00\x4a\x00\x4a\x00\x40\x00\x2c\x00\x50\x00\x51\x00\x2f\x00\x4a\x00\x4a\x00\x4a\x00\x0d\x00\x0e\x00\x4a\x00\x4a\x00\x4a\x00\x28\x00\x29\x00\x25\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x38\x00\x38\x00\x19\x00\x1a\x00\x3a\x00\x38\x00\x11\x00\x1e\x00\x4c\x00\x4d\x00\x21\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x4a\x00\x4a\x00\x19\x00\x1a\x00\x21\x00\x4a\x00\x11\x00\x41\x00\x31\x00\x2b\x00\x21\x00\x34\x00\x35\x00\x36\x00\x00\x00\x1c\x00\x24\x00\x03\x00\x1f\x00\x1e\x00\x3d\x00\x33\x00\x21\x00\x34\x00\x35\x00\x36\x00\x31\x00\x09\x00\x0a\x00\x34\x00\x35\x00\x36\x00\x1d\x00\x11\x00\x4b\x00\x20\x00\x1d\x00\x11\x00\x3d\x00\x20\x00\x11\x00\x34\x00\x35\x00\x36\x00\x11\x00\x4a\x00\x1e\x00\x0d\x00\x0e\x00\x21\x00\x1e\x00\x34\x00\x4b\x00\x21\x00\x04\x00\x05\x00\x21\x00\x1e\x00\x24\x00\x43\x00\x21\x00\x45\x00\x46\x00\x47\x00\x48\x00\x47\x00\x48\x00\x49\x00\x34\x00\x35\x00\x36\x00\x18\x00\x34\x00\x35\x00\x36\x00\x34\x00\x35\x00\x36\x00\x41\x00\x34\x00\x35\x00\x36\x00\x19\x00\x04\x00\x05\x00\x1c\x00\x1d\x00\x1e\x00\x31\x00\x32\x00\x33\x00\x37\x00\x47\x00\x48\x00\x49\x00\x47\x00\x48\x00\x49\x00\x0d\x00\x0e\x00\x0f\x00\x14\x00\x15\x00\x16\x00\x22\x00\x17\x00\x18\x00\x22\x00\x53\x00\x54\x00\x17\x00\x18\x00\x18\x00\x1e\x00\x1f\x00\x37\x00\x02\x00\x4a\x00\x01\x00\x18\x00\x50\x00\x02\x00\x02\x00\x02\x00\x18\x00\x20\x00\x19\x00\x37\x00\x40\x00\x40\x00\x02\x00\x40\x00\x30\x00\x41\x00\x2d\x00\x49\x00\x41\x00\x4f\x00\x1b\x00\x41\x00\x40\x00\x1a\x00\x53\x00\x42\x00\x40\x00\x13\x00\x13\x00\x12\x00\x06\x00\x02\x00\x3c\x00\x41\x00\x03\x00\x0c\x00\x55\x00\x20\x00\x40\x00\x42\x00\x40\x00\x3d\x00\x40\x00\x40\x00\x1f\x00\x55\x00\x0c\x00\x3f\x00\x0a\x00\x10\x00\x3e\x00\x33\x00\x1b\x00\x42\x00\x1c\x00\x42\x00\x42\x00\x1b\x00\x33\x00\x49\x00\x0a\x00\x0a\x00\x1b\x00\x52\x00\x0a\x00\x0a\x00\x51\x00\x1e\x00\x0a\x00\x0a\x00\x42\x00\x50\x00\x42\x00\x0b\x00\x52\x00\x1c\x00\x0a\x00\x0a\x00\x1e\x00\x55\x00\x55\x00\x0a\x00\x44\x00\x44\x00\x44\x00\x41\x00\x1e\x00\x0b\x00\x3d\x00\x10\x00\x10\x00\x4a\x00\x1f\x00\x1c\x00\x0b\x00\x20\x00\x20\x00\x55\x00\x1d\x00\x0a\x00\x52\x00\x4f\x00\x20\x00\x1c\x00\x41\x00\x0a\x00\x22\x00\x0b\x00\x41\x00\x0a\x00\x0a\x00\x4f\x00\x0b\x00\x0b\x00\x0b\x00\x1f\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x1e\x00\x40\x00\x1d\x00\x1d\x00\x0e\x00\x41\x00\x1d\x00\x1d\x00\x0b\x00\x30\x00\x0e\x00\x0a\x00\x60\x00\x1d\x00\x2f\x00\x0b\x00\x09\x00\x20\x00\x2e\x00\x0b\x00\x1b\x00\x65\x00\x65\x00\x20\x00\x20\x00\x1f\x00\x0a\x00\x0e\x00\x0b\x00\x40\x00\x1c\x00\x0b\x00\x0e\x00\x4c\x00\x0a\x00\x08\x00\x0b\x00\x0e\x00\x1c\x00\x1b\x00\x0a\x00\x0a\x00\x10\x00\x04\x00\x0b\x00\x1f\x00\x0a\x00\x0a\x00\x5a\x00\x1e\x00\x10\x00\x1d\x00\x0b\x00\x0b\x00\x21\x00\x3c\x00\x1b\x00\x3b\x00\x0b\x00\x1b\x00\x0e\x00\x02\x00\x22\x00\x0e\x00\x0b\x00\x02\x00\x01\x00\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\x15\x00\x96\x01\x16\x00\x17\x00\x18\x00\x52\xff\xb8\x00\x07\x00\x9d\x00\x9e\x00\x3a\x00\x45\x00\x66\x01\x66\x00\x3e\x01\x27\x00\x39\x01\x93\x01\xfd\x00\x44\x01\x81\x00\x28\x00\xa4\x01\xe6\x00\x82\x00\x60\x01\x9d\x00\x9e\x00\x94\x01\xe7\x00\xa0\x00\xb8\x00\x07\x00\x9d\x00\x9e\x00\xfe\x00\xde\x00\xa5\x01\x07\x00\x06\x01\xe7\x00\x1d\x01\xe7\x00\x59\x00\x14\x01\x61\x01\xd5\x00\xe7\x00\xa0\x00\x78\x00\x9f\x00\xe7\x00\x1d\x01\xd1\x00\x46\x00\xa0\x00\x9c\x00\x07\x00\x9d\x00\x9e\x00\xff\x00\x15\x01\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\xba\x00\x51\x00\x9f\x00\x0e\x00\x0f\x00\x8d\x01\x07\x00\xa0\x00\x10\x00\x00\x01\x2a\x00\xa1\x00\x11\x00\x12\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\x52\xff\x67\x00\xa7\x00\x3a\x01\xe9\x00\x00\x01\x9d\x00\x9e\x00\x19\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xa3\x00\xa4\x00\xa5\x00\xa1\x00\x95\x00\x84\x01\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\x74\x00\x07\x01\xa7\x00\xa0\x00\x78\x00\x7c\x00\x16\x01\xd6\x00\x79\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\x89\x01\x13\x00\xda\x00\xa1\x00\x1d\x01\x95\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\x99\x01\x75\x00\xa7\x00\xb8\x00\x07\x00\x9d\x00\x9e\x00\xa1\x01\xdb\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xa1\x00\x96\x00\x1c\x01\xa2\x00\x76\x00\x51\x00\xae\xff\xa6\x00\x9f\x00\x95\x00\xa7\x00\x8c\x00\x47\x00\xa0\x00\x9c\x00\x07\x00\x9d\x00\x9e\x00\xea\x00\x25\x01\x50\x00\x9e\x01\xa3\x00\xa4\x00\xa5\x00\xeb\x00\x1d\x01\xec\x00\xed\x00\x8e\x01\x96\x00\x5e\x00\x73\x01\x9f\x00\x74\x01\x95\x00\x95\x00\x56\x00\xa0\x00\x3b\x01\xae\xff\xe1\x00\xb6\x00\x1d\x01\x9b\x01\x5f\x00\xe2\x00\x47\x00\x57\x00\x19\x01\x3c\x01\x8e\x00\x9a\x00\x52\x00\x53\x00\x48\x00\x96\x00\x96\x00\x8f\x00\x90\x00\x95\x01\xa2\x01\x95\x00\x5e\x01\x97\x00\x61\x00\x98\x00\xa1\x00\xd2\x00\xd3\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\x8c\x00\x6d\x01\xa7\x00\x91\x00\x92\x00\x75\x01\x9a\x00\xba\x00\x96\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\x99\x00\x08\x01\x09\x01\xa1\x00\x8d\x00\x6e\x01\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\x93\x00\x94\x00\xa7\x00\x95\x00\x95\x00\x95\x00\x71\x01\x9a\x00\x9a\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xa3\x01\x8e\x00\x5e\x01\x81\x01\x95\x00\x95\x00\x95\x00\x82\x01\x8f\x00\x90\x00\x96\x00\x96\x00\x95\x00\x95\x00\x95\x00\x61\x00\x25\x00\x95\x00\x95\x00\x95\x00\x9a\x00\x26\x00\x3d\x00\x84\x00\xd7\x00\x96\x00\x96\x00\x96\x00\x91\x00\x92\x00\x3e\x00\x3f\x00\x40\x00\x96\x00\x96\x00\x96\x00\x86\x01\x1b\x01\x96\x00\x96\x00\x96\x00\x91\x01\x92\x01\x5e\x01\x5e\x01\x70\x01\x71\x01\xba\x00\x95\x00\x95\x00\x93\x00\x94\x00\x91\x01\x95\x00\x95\x00\x95\x00\x72\x01\x83\x01\x5e\x01\x5e\x01\x99\x00\x9a\x00\x9a\x00\x54\x01\x5d\x01\x62\x01\x5e\x01\x5e\x01\x8f\x01\x96\x00\x96\x00\xb5\x00\x50\x01\x51\x01\x96\x00\x89\x01\x9a\x00\x9a\x00\x9a\x00\xb6\x00\x67\x01\x84\x00\x85\x00\x68\x01\x9a\x00\x9a\x00\x9a\x00\x32\x00\x63\x00\x9a\x00\x9a\x00\x9a\x00\x8a\x01\x8b\x01\x55\x01\x77\x01\xbc\x00\x78\x01\x79\x01\x7a\x01\x7b\x01\x7c\x01\xfb\x00\x0b\x01\x7d\x01\x7e\x01\x57\x01\x0c\x01\xbc\x00\x04\x01\x57\x00\x76\x00\xbd\x00\x77\x01\xbc\x00\x78\x01\x79\x01\x7a\x01\x7b\x01\x7c\x01\x9a\x00\x9a\x00\x7d\x01\x7e\x01\xbd\x00\x9a\x00\xbc\x00\x63\x01\x7f\x01\x32\x01\xbd\x00\xbe\x00\xbf\x00\xc0\x00\x04\x00\x6c\x01\x3c\x01\x02\x00\x6d\x01\x53\x01\x80\x01\x3f\x01\xbd\x00\xbe\x00\xbf\x00\xc0\x00\x7f\x01\x29\x00\x2a\x00\xbe\x00\xbf\x00\xc0\x00\xb9\x00\xbc\x00\x81\x01\x02\x01\xb9\x00\xbc\x00\x80\x01\xba\x00\xbc\x00\xbe\x00\xbf\x00\xc0\x00\xbc\x00\xc1\x00\x0e\x01\x32\x00\x4e\x00\xbd\x00\x0f\x01\x40\x01\x81\x01\xbd\x00\x0b\x00\x08\x00\xbd\x00\x04\x01\x4b\x01\x1f\x01\xbd\x00\x20\x01\x21\x01\x22\x01\x23\x01\xd1\x00\x7e\x00\x7f\x00\xbe\x00\xbf\x00\xc0\x00\x4a\x01\xbe\x00\xbf\x00\xc0\x00\xbe\x00\xbf\x00\xc0\x00\x12\x01\xbe\x00\xbf\x00\xc0\x00\x87\x00\x07\x00\x08\x00\x88\x00\x89\x00\x8a\x00\xf0\x00\xf1\x00\xf2\x00\xba\x00\x7d\x00\x7e\x00\x7f\x00\x83\x00\x7e\x00\x7f\x00\x32\x00\x33\x00\x34\x00\x39\x00\x3a\x00\x3b\x00\x17\x01\x70\x01\x71\x01\x1a\x01\x9d\x01\x9e\x01\x70\x01\x71\x01\x2a\x01\x10\x01\x11\x01\xba\x00\xdb\x00\xde\x00\xdf\x00\xf4\x00\xe3\x00\xe4\x00\xe5\x00\xf7\x00\xf8\x00\xc1\x00\x02\x01\xba\x00\xc4\x00\xc5\x00\xc8\x00\xc9\x00\xc6\x00\xd8\x00\xcb\x00\xd6\x00\xac\x00\x7a\x00\x61\x00\x62\x00\x5d\x00\x5b\x00\x54\x00\x4b\x00\x44\x00\x2c\x00\x23\x00\x1b\x00\x0c\x00\x05\x00\x36\x00\x4c\x00\x02\x00\xa1\x01\x98\x01\x02\x01\x2d\x00\x38\x00\x2f\x00\x8f\x01\x30\x00\x31\x00\x9b\x01\x99\x01\x89\x01\xa0\x01\x6a\x01\x6b\x01\x88\x01\x65\x01\x34\x01\x5a\x01\x54\x01\x5b\x01\x5c\x01\x5d\x01\x66\x01\x59\x01\x6a\x01\x36\x01\x34\x01\x86\x01\x37\x01\xf4\x00\x57\x01\x38\x01\x42\x01\x44\x01\x46\x01\x62\x01\x4a\x01\xf6\x00\x35\x01\x4d\x01\x4e\x01\x4f\x01\x50\x01\x3e\x01\x43\x01\x1a\x01\x47\x01\x48\x01\x49\x01\x12\x01\x17\x01\xf6\x00\x24\x01\x27\x01\x2c\x01\x25\x01\x28\x01\x29\x01\x07\x00\x2d\x01\x2f\x01\x3e\x01\x2e\x01\xe1\x00\x2a\x01\x31\x01\x30\x01\xdd\x00\x32\x01\x87\x00\xee\x00\x07\x00\xef\x00\xf4\x00\xf7\x00\xf0\x00\xf6\x00\x07\x00\xf6\x00\xfa\x00\xfb\x00\x2c\x00\x05\x01\x08\x01\x0b\x01\x61\x00\xaf\x00\xb0\x00\xae\x00\xc3\x00\xb1\x00\xb2\x00\x07\x00\xcb\x00\xd0\x00\x87\x00\xcd\x00\xb3\x00\xce\x00\x07\x00\x7c\x00\xb4\x00\x56\x00\x36\x00\xc8\x00\x81\x00\x81\x00\xb5\x00\xc4\x00\xd1\x00\x87\x00\x65\x00\x36\x00\x61\x00\x66\x00\x36\x00\x50\x00\xcf\x00\x4a\x00\x59\x00\x36\x00\x5a\x00\x5b\x00\x5d\x00\x44\x00\x4a\x00\x43\x00\x4e\x00\x36\x00\x41\x00\x2c\x00\x1b\x00\x2f\x00\x42\x00\x21\x00\x29\x00\x1e\x00\x1f\x00\x1d\x00\x4b\x00\x22\x00\x38\x00\x20\x00\x23\x00\x1a\x00\x0a\x00\x0b\x00\x0e\x00\x07\x00\x0a\x00\x04\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyReduceArr = Happy_Data_Array.array (1, 214) [
+	(1 , happyReduce_1),
+	(2 , happyReduce_2),
+	(3 , happyReduce_3),
+	(4 , happyReduce_4),
+	(5 , happyReduce_5),
+	(6 , happyReduce_6),
+	(7 , happyReduce_7),
+	(8 , happyReduce_8),
+	(9 , happyReduce_9),
+	(10 , happyReduce_10),
+	(11 , happyReduce_11),
+	(12 , happyReduce_12),
+	(13 , happyReduce_13),
+	(14 , happyReduce_14),
+	(15 , happyReduce_15),
+	(16 , happyReduce_16),
+	(17 , happyReduce_17),
+	(18 , happyReduce_18),
+	(19 , happyReduce_19),
+	(20 , happyReduce_20),
+	(21 , happyReduce_21),
+	(22 , happyReduce_22),
+	(23 , happyReduce_23),
+	(24 , happyReduce_24),
+	(25 , happyReduce_25),
+	(26 , happyReduce_26),
+	(27 , happyReduce_27),
+	(28 , happyReduce_28),
+	(29 , happyReduce_29),
+	(30 , happyReduce_30),
+	(31 , happyReduce_31),
+	(32 , happyReduce_32),
+	(33 , happyReduce_33),
+	(34 , happyReduce_34),
+	(35 , happyReduce_35),
+	(36 , happyReduce_36),
+	(37 , happyReduce_37),
+	(38 , happyReduce_38),
+	(39 , happyReduce_39),
+	(40 , happyReduce_40),
+	(41 , happyReduce_41),
+	(42 , happyReduce_42),
+	(43 , happyReduce_43),
+	(44 , happyReduce_44),
+	(45 , happyReduce_45),
+	(46 , happyReduce_46),
+	(47 , happyReduce_47),
+	(48 , happyReduce_48),
+	(49 , happyReduce_49),
+	(50 , happyReduce_50),
+	(51 , happyReduce_51),
+	(52 , happyReduce_52),
+	(53 , happyReduce_53),
+	(54 , happyReduce_54),
+	(55 , happyReduce_55),
+	(56 , happyReduce_56),
+	(57 , happyReduce_57),
+	(58 , happyReduce_58),
+	(59 , happyReduce_59),
+	(60 , happyReduce_60),
+	(61 , happyReduce_61),
+	(62 , happyReduce_62),
+	(63 , happyReduce_63),
+	(64 , happyReduce_64),
+	(65 , happyReduce_65),
+	(66 , happyReduce_66),
+	(67 , happyReduce_67),
+	(68 , happyReduce_68),
+	(69 , happyReduce_69),
+	(70 , happyReduce_70),
+	(71 , happyReduce_71),
+	(72 , happyReduce_72),
+	(73 , happyReduce_73),
+	(74 , happyReduce_74),
+	(75 , happyReduce_75),
+	(76 , happyReduce_76),
+	(77 , happyReduce_77),
+	(78 , happyReduce_78),
+	(79 , happyReduce_79),
+	(80 , happyReduce_80),
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83),
+	(84 , happyReduce_84),
+	(85 , happyReduce_85),
+	(86 , happyReduce_86),
+	(87 , happyReduce_87),
+	(88 , happyReduce_88),
+	(89 , happyReduce_89),
+	(90 , happyReduce_90),
+	(91 , happyReduce_91),
+	(92 , happyReduce_92),
+	(93 , happyReduce_93),
+	(94 , happyReduce_94),
+	(95 , happyReduce_95),
+	(96 , happyReduce_96),
+	(97 , happyReduce_97),
+	(98 , happyReduce_98),
+	(99 , happyReduce_99),
+	(100 , happyReduce_100),
+	(101 , happyReduce_101),
+	(102 , happyReduce_102),
+	(103 , happyReduce_103),
+	(104 , happyReduce_104),
+	(105 , happyReduce_105),
+	(106 , happyReduce_106),
+	(107 , happyReduce_107),
+	(108 , happyReduce_108),
+	(109 , happyReduce_109),
+	(110 , happyReduce_110),
+	(111 , happyReduce_111),
+	(112 , happyReduce_112),
+	(113 , happyReduce_113),
+	(114 , happyReduce_114),
+	(115 , happyReduce_115),
+	(116 , happyReduce_116),
+	(117 , happyReduce_117),
+	(118 , happyReduce_118),
+	(119 , happyReduce_119),
+	(120 , happyReduce_120),
+	(121 , happyReduce_121),
+	(122 , happyReduce_122),
+	(123 , happyReduce_123),
+	(124 , happyReduce_124),
+	(125 , happyReduce_125),
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163),
+	(164 , happyReduce_164),
+	(165 , happyReduce_165),
+	(166 , happyReduce_166),
+	(167 , happyReduce_167),
+	(168 , happyReduce_168),
+	(169 , happyReduce_169),
+	(170 , happyReduce_170),
+	(171 , happyReduce_171),
+	(172 , happyReduce_172),
+	(173 , happyReduce_173),
+	(174 , happyReduce_174),
+	(175 , happyReduce_175),
+	(176 , happyReduce_176),
+	(177 , happyReduce_177),
+	(178 , happyReduce_178),
+	(179 , happyReduce_179),
+	(180 , happyReduce_180),
+	(181 , happyReduce_181),
+	(182 , happyReduce_182),
+	(183 , happyReduce_183),
+	(184 , happyReduce_184),
+	(185 , happyReduce_185),
+	(186 , happyReduce_186),
+	(187 , happyReduce_187),
+	(188 , happyReduce_188),
+	(189 , happyReduce_189),
+	(190 , happyReduce_190),
+	(191 , happyReduce_191),
+	(192 , happyReduce_192),
+	(193 , happyReduce_193),
+	(194 , happyReduce_194),
+	(195 , happyReduce_195),
+	(196 , happyReduce_196),
+	(197 , happyReduce_197),
+	(198 , happyReduce_198),
+	(199 , happyReduce_199),
+	(200 , happyReduce_200),
+	(201 , happyReduce_201),
+	(202 , happyReduce_202),
+	(203 , happyReduce_203),
+	(204 , happyReduce_204),
+	(205 , happyReduce_205),
+	(206 , happyReduce_206),
+	(207 , happyReduce_207),
+	(208 , happyReduce_208),
+	(209 , happyReduce_209),
+	(210 , happyReduce_210),
+	(211 , happyReduce_211),
+	(212 , happyReduce_212),
+	(213 , happyReduce_213),
+	(214 , happyReduce_214)
+	]
+
+happy_n_terms = 111 :: Int
+happy_n_nonterms = 84 :: Int
+
+happyReduce_1 = happyMonadReduce 3# 0# happyReduction_1
+happyReduction_1 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut8 happy_x_2 of { happy_var_2 -> 
+	case happyOut10 happy_x_3 of { happy_var_3 -> 
+	(
+           do
+               path <- getPath
+               let m =  Module happy_var_1  ((reverse . getEntities) happy_var_3) 
+                                    ((reverse . getClasses) happy_var_3)
+                                    ((reverse . getEnums) happy_var_3)
+                                    ((reverse . getRoutes) happy_var_3)
+                                    ((reverse . getDefines) happy_var_3)
+               return $ mergeModules $ (path,m):happy_var_2)}}}
+	) (\r -> happyReturn (happyIn4 r))
+
+happyReduce_2 = happySpecReduce_1  1# happyReduction_2
+happyReduction_2 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn5
+		 (tkString happy_var_1
+	)}
+
+happyReduce_3 = happySpecReduce_1  2# happyReduction_3
+happyReduction_3 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn6
+		 (tkString happy_var_1
+	)}
+
+happyReduce_4 = happySpecReduce_0  3# happyReduction_4
+happyReduction_4  =  happyIn7
+		 (Nothing
+	)
+
+happyReduce_5 = happySpecReduce_3  3# happyReduction_5
+happyReduction_5 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn7
+		 (Just happy_var_2
+	)}
+
+happyReduce_6 = happySpecReduce_0  4# happyReduction_6
+happyReduction_6  =  happyIn8
+		 ([]
+	)
+
+happyReduce_7 = happySpecReduce_2  4# happyReduction_7
+happyReduction_7 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut8 happy_x_2 of { happy_var_2 -> 
+	happyIn8
+		 (happy_var_1++ happy_var_2
+	)}}
+
+happyReduce_8 = happyMonadReduce 3# 5# happyReduction_8
+happyReduction_8 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_2 of { (Tk _ (TString happy_var_2)) -> 
+	(  
+            do
+                parsed <- getParsed
+                if not (happy_var_2 `elem` parsed)
+                    then do
+                        ps <- getParserState
+                        (m,ps') <- liftIO $parseModule ps happy_var_2
+                        setParserState ps'
+                        return [(happy_var_2,m)]
+                    else return [])}
+	) (\r -> happyReturn (happyIn9 r))
+
+happyReduce_9 = happySpecReduce_0  6# happyReduction_9
+happyReduction_9  =  happyIn10
+		 ([]
+	)
+
+happyReduce_10 = happySpecReduce_2  6# happyReduction_10
+happyReduction_10 happy_x_2
+	happy_x_1
+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> 
+	case happyOut11 happy_x_2 of { happy_var_2 -> 
+	happyIn10
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_11 = happySpecReduce_1  7# happyReduction_11
+happyReduction_11 happy_x_1
+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (RouteDef happy_var_1
+	)}
+
+happyReduce_12 = happySpecReduce_1  7# happyReduction_12
+happyReduction_12 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (EntityDef happy_var_1
+	)}
+
+happyReduce_13 = happySpecReduce_1  7# happyReduction_13
+happyReduction_13 happy_x_1
+	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (ClassDef happy_var_1
+	)}
+
+happyReduce_14 = happySpecReduce_1  7# happyReduction_14
+happyReduction_14 happy_x_1
+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (EnumDef happy_var_1
+	)}
+
+happyReduce_15 = happySpecReduce_1  7# happyReduction_15
+happyReduction_15 happy_x_1
+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> 
+	happyIn11
+		 (DefineDef happy_var_1
+	)}
+
+happyReduce_16 = happyMonadReduce 10# 8# happyReduction_16
+happyReduction_16 (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) tk
+	 = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> 
+	case happyOut13 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_8 of { happy_var_8 -> 
+	( 
+    do
+        l <- mkLoc happy_var_2 
+        let n = tkString happy_var_2
+        let d = Define n l happy_var_4 happy_var_8
+        declare l n (SDefine d) 
+        return d)}}}
+	) (\r -> happyReturn (happyIn12 r))
+
+happyReduce_17 = happySpecReduce_0  9# happyReduction_17
+happyReduction_17  =  happyIn13
+		 ([]
+	)
+
+happyReduce_18 = happySpecReduce_1  9# happyReduction_18
+happyReduction_18 happy_x_1
+	 =  case happyOut14 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 ((reverse happy_var_1)
+	)}
+
+happyReduce_19 = happySpecReduce_1  10# happyReduction_19
+happyReduction_19 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([tkString happy_var_1]
+	)}
+
+happyReduce_20 = happySpecReduce_3  10# happyReduction_20
+happyReduction_20 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut14 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { happy_var_3 -> 
+	happyIn14
+		 ((tkString happy_var_3) : happy_var_1
+	)}}
+
+happyReduce_21 = happySpecReduce_1  11# happyReduction_21
+happyReduction_21 happy_x_1
+	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
+	happyIn15
+		 (DefineSubQuery happy_var_1
+	)}
+
+happyReduce_22 = happyMonadReduce 7# 12# happyReduction_22
+happyReduction_22 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> 
+	case happyOut19 happy_x_5 of { happy_var_5 -> 
+	( 
+    do
+        l <- mkLoc happy_var_2
+        let n = tkString happy_var_2
+        let e = EnumType l n happy_var_5
+        declare l n (SEnum e)
+        forM_ (nub $ enumValues e) $ \ev -> declare l (n ++ ev) SReserved
+        return e)}}
+	) (\r -> happyReturn (happyIn16 r))
+
+happyReduce_23 = happyMonadReduce 1# 13# happyReduction_23
+happyReduction_23 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+    do
+        l <- mkLoc happy_var_1
+        declare l (tkString happy_var_1) SReserved
+        return happy_var_1)}
+	) (\r -> happyReturn (happyIn17 r))
+
+happyReduce_24 = happySpecReduce_1  14# happyReduction_24
+happyReduction_24 happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	happyIn18
+		 (tkString happy_var_1
+	)}
+
+happyReduce_25 = happySpecReduce_1  15# happyReduction_25
+happyReduction_25 happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_26 = happySpecReduce_3  15# happyReduction_26
+happyReduction_26 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
+	case happyOut18 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_27 = happyMonadReduce 11# 16# happyReduction_27
+happyReduction_27 (happy_x_11 `HappyStk`
+	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) tk
+	 = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> 
+	case happyOut64 happy_x_5 of { happy_var_5 -> 
+	case happyOut70 happy_x_6 of { happy_var_6 -> 
+	case happyOut79 happy_x_7 of { happy_var_7 -> 
+	case happyOut81 happy_x_8 of { happy_var_8 -> 
+	case happyOut83 happy_x_9 of { happy_var_9 -> 
+	( 
+    do
+        l <- mkLoc happy_var_2
+        let n = tkString happy_var_2
+        let e = Entity l n happy_var_5 (reverse happy_var_6) [] (reverse happy_var_7) happy_var_8 (reverse happy_var_9) 
+        declare l n (SEntity n)
+        return e)}}}}}}
+	) (\r -> happyReturn (happyIn20 r))
+
+happyReduce_28 = happyMonadReduce 7# 17# happyReduction_28
+happyReduction_28 (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) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut22 happy_x_2 of { happy_var_2 -> 
+	case happyOut24 happy_x_5 of { happy_var_5 -> 
+	( 
+        mkLoc happy_var_1 >>= \l -> return $ Route l (reverse happy_var_2) (reverse happy_var_5))}}}
+	) (\r -> happyReturn (happyIn21 r))
+
+happyReduce_29 = happySpecReduce_2  18# happyReduction_29
+happyReduction_29 happy_x_2
+	happy_x_1
+	 =  case happyOut23 happy_x_2 of { happy_var_2 -> 
+	happyIn22
+		 ([happy_var_2]
+	)}
+
+happyReduce_30 = happySpecReduce_3  18# happyReduction_30
+happyReduction_30 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_31 = happySpecReduce_1  19# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn23
+		 (PathText $ tkString happy_var_1
+	)}
+
+happyReduce_32 = happySpecReduce_2  19# happyReduction_32
+happyReduction_32 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (Tk _ (TEntityId happy_var_2)) -> 
+	happyIn23
+		 (PathId happy_var_2
+	)}
+
+happyReduce_33 = happySpecReduce_1  20# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn24
+		 ([happy_var_1]
+	)}
+
+happyReduce_34 = happySpecReduce_2  20# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut26 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_35 = happyMonadReduce 1# 21# happyReduction_35
+happyReduction_35 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	( 
+        do
+             l <- mkLoc happy_var_1 
+             declare l "get handler" SReserved
+             setCurrentHandlerType GetHandler
+             return $ Handler l GetHandler)}
+	) (\r -> happyReturn (happyIn25 r))
+
+happyReduce_36 = happyMonadReduce 1# 21# happyReduction_36
+happyReduction_36 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+        do 
+             l <- mkLoc happy_var_1
+             declare l "put handler" SReserved
+             setCurrentHandlerType PutHandler
+             return $ Handler l PutHandler)}
+	) (\r -> happyReturn (happyIn25 r))
+
+happyReduce_37 = happyMonadReduce 1# 21# happyReduction_37
+happyReduction_37 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+        do
+            l <- mkLoc happy_var_1
+            declare l "post handler" SReserved
+            setCurrentHandlerType PostHandler
+            return $ Handler l PostHandler)}
+	) (\r -> happyReturn (happyIn25 r))
+
+happyReduce_38 = happyMonadReduce 1# 21# happyReduction_38
+happyReduction_38 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+        do 
+            l <- mkLoc happy_var_1
+            declare l "delete handler" SReserved
+            setCurrentHandlerType DeleteHandler
+            return $ Handler l DeleteHandler)}
+	) (\r -> happyReturn (happyIn25 r))
+
+happyReduce_39 = happyMonadReduce 4# 22# happyReduction_39
+happyReduction_39 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOut25 happy_x_1 of { happy_var_1 -> 
+	case happyOut30 happy_x_3 of { happy_var_3 -> 
+	( 
+        return $ happy_var_1 happy_var_3)}}
+	) (\r -> happyReturn (happyIn26 r))
+
+happyReduce_40 = happyMonadReduce 3# 23# happyReduction_40
+happyReduction_40 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+        do
+            l1 <- mkLoc happy_var_1
+            let s1 = tkString happy_var_1
+            withSymbol l1 s1 $ requireEntity $ \_ -> return ()
+            return $ FieldRefId s1)}
+	) (\r -> happyReturn (happyIn27 r))
+
+happyReduce_41 = happyMonadReduce 3# 23# happyReduction_41
+happyReduction_41 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { happy_var_3 -> 
+	( 
+        do 
+            l1 <- mkLoc happy_var_1
+            let s1 = tkString happy_var_1
+            l3 <- mkLoc happy_var_3
+            let s3 = tkString happy_var_3
+            withSymbol l1 s1 $ requireEntityField l3 s3 $ \_ -> return () 
+            return $ FieldRefNormal s1 s3)}}
+	) (\r -> happyReturn (happyIn27 r))
+
+happyReduce_42 = happySpecReduce_3  23# happyReduction_42
+happyReduction_42 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut6 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (FieldRefEnum happy_var_1 happy_var_3
+	)}}
+
+happyReduce_43 = happyReduce 5# 23# happyReduction_43
+happyReduction_43 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_4 of { happy_var_4 -> 
+	happyIn27
+		 (FieldRefParamField (tkString happy_var_1) (tkString happy_var_4)
+	) `HappyStk` happyRest}}
+
+happyReduce_44 = happySpecReduce_1  23# happyReduction_44
+happyReduction_44 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Tk _ (TPathParam happy_var_1)) -> 
+	happyIn27
+		 (FieldRefPathParam happy_var_1
+	)}
+
+happyReduce_45 = happySpecReduce_3  23# happyReduction_45
+happyReduction_45 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn27
+		 (FieldRefAuthId
+	)
+
+happyReduce_46 = happySpecReduce_3  23# happyReduction_46
+happyReduction_46 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (FieldRefAuth $ tkString happy_var_3
+	)}
+
+happyReduce_47 = happySpecReduce_1  23# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn27
+		 (FieldRefLocalParam
+	)
+
+happyReduce_48 = happySpecReduce_3  23# happyReduction_48
+happyReduction_48 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (FieldRefRequest $ tkString happy_var_3
+	)}
+
+happyReduce_49 = happySpecReduce_1  23# happyReduction_49
+happyReduction_49 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn27
+		 (FieldRefNamedLocalParam (tkString happy_var_1)
+	)}
+
+happyReduce_50 = happyMonadReduce 3# 24# happyReduction_50
+happyReduction_50 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { happy_var_3 -> 
+	(
+        do
+            l1 <- mkLoc happy_var_1
+            l3 <- mkLoc happy_var_3
+            let (s1,s3) = (tkString happy_var_1, tkString happy_var_3)
+            declare l3 s3 (SEntity s1)
+            withSymbol l1 s1 $ requireEntity $ \_ -> return ()
+            return (s1,s3))}}
+	) (\r -> happyReturn (happyIn28 r))
+
+happyReduce_51 = happyMonadReduce 8# 25# happyReduction_51
+happyReduction_51 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut28 happy_x_4 of { happy_var_4 -> 
+	case happyOut39 happy_x_5 of { happy_var_5 -> 
+	case happyOut40 happy_x_6 of { happy_var_6 -> 
+	case happyOut41 happy_x_7 of { happy_var_7 -> 
+	case happyOut42 happy_x_8 of { happy_var_8 -> 
+	(
+        do
+            let sfs = [ sf | (_,sf) <- happy_var_2 ]
+            return $ SelectQuery sfs happy_var_4 happy_var_5 happy_var_6 happy_var_7 happy_var_8)}}}}}}
+	) (\r -> happyReturn (happyIn29 r))
+
+happyReduce_52 = happySpecReduce_3  26# happyReduction_52
+happyReduction_52 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn30
+		 ((reverse happy_var_2)
+	)}
+
+happyReduce_53 = happySpecReduce_0  27# happyReduction_53
+happyReduction_53  =  happyIn31
+		 ([]
+	)
+
+happyReduce_54 = happySpecReduce_3  27# happyReduction_54
+happyReduction_54 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn31
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_55 = happySpecReduce_1  28# happyReduction_55
+happyReduction_55 happy_x_1
+	 =  happyIn32
+		 (Public
+	)
+
+happyReduce_56 = happySpecReduce_1  28# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
+	happyIn32
+		 (Select happy_var_1
+	)}
+
+happyReduce_57 = happyReduce 7# 28# happyReduction_57
+happyReduction_57 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut6 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	case happyOut47 happy_x_7 of { happy_var_7 -> 
+	happyIn32
+		 (Update happy_var_2 happy_var_5 (Just happy_var_7)
+	) `HappyStk` happyRest}}}
+
+happyReduce_58 = happyReduce 6# 28# happyReduction_58
+happyReduction_58 (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_4 of { happy_var_4 -> 
+	case happyOut40 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (let (en,vn) = happy_var_4 in DeleteFrom en vn happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_59 = happyReduce 5# 28# happyReduction_59
+happyReduction_59 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut6 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (Update happy_var_2 happy_var_5 Nothing
+	) `HappyStk` happyRest}}
+
+happyReduce_60 = happyReduce 6# 28# happyReduction_60
+happyReduction_60 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	case happyOut50 happy_x_6 of { happy_var_6 -> 
+	happyIn32
+		 (GetById happy_var_3 happy_var_6 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_61 = happyReduce 5# 28# happyReduction_61
+happyReduction_61 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	case happyOut47 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (Insert happy_var_3 (Just happy_var_5) happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_62 = happySpecReduce_3  28# happyReduction_62
+happyReduction_62 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (Insert happy_var_3 Nothing happy_var_1
+	)}}
+
+happyReduce_63 = happySpecReduce_1  28# happyReduction_63
+happyReduction_63 happy_x_1
+	 =  happyIn32
+		 (DefaultFilterSort
+	)
+
+happyReduce_64 = happyReduce 11# 28# happyReduction_64
+happyReduction_64 (happy_x_11 `HappyStk`
+	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 happyOutTok happy_x_3 of { (Tk _ (TString happy_var_3)) -> 
+	case happyOut39 happy_x_8 of { happy_var_8 -> 
+	case happyOut58 happy_x_10 of { happy_var_10 -> 
+	happyIn32
+		 (IfFilter (happy_var_3 ,happy_var_8 ,happy_var_10, True)
+	) `HappyStk` happyRest}}}
+
+happyReduce_65 = happyReduce 11# 28# happyReduction_65
+happyReduction_65 (happy_x_11 `HappyStk`
+	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 happyOutTok happy_x_3 of { (Tk _ (TString happy_var_3)) -> 
+	case happyOut39 happy_x_8 of { happy_var_8 -> 
+	case happyOut58 happy_x_10 of { happy_var_10 -> 
+	happyIn32
+		 (IfFilter (happy_var_3, happy_var_8, happy_var_10, False)
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  28# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut52 happy_x_2 of { happy_var_2 -> 
+	happyIn32
+		 (Return happy_var_2
+	)}
+
+happyReduce_67 = happyReduce 7# 28# happyReduction_67
+happyReduction_67 (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 happyOut28 happy_x_3 of { happy_var_3 -> 
+	case happyOut39 happy_x_4 of { happy_var_4 -> 
+	case happyOut58 happy_x_6 of { happy_var_6 -> 
+	happyIn32
+		 (Require (SelectQuery [] happy_var_3 happy_var_4 (Just happy_var_6) [] (0,0))
+	) `HappyStk` happyRest}}}
+
+happyReduce_68 = happyReduce 9# 28# happyReduction_68
+happyReduction_68 (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 happyOutTok happy_x_3 of { happy_var_3 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	happyIn32
+		 (For (tkString happy_var_3) happy_var_5 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_69 = happySpecReduce_2  28# happyReduction_69
+happyReduction_69 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn32
+		 (Call (tkString happy_var_1) (reverse happy_var_2)
+	)}}
+
+happyReduce_70 = happySpecReduce_0  29# happyReduction_70
+happyReduction_70  =  happyIn33
+		 (Nothing
+	)
+
+happyReduce_71 = happySpecReduce_1  29# happyReduction_71
+happyReduction_71 happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (Just happy_var_1
+	)}
+
+happyReduce_72 = happySpecReduce_2  30# happyReduction_72
+happyReduction_72 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn34
+		 (tkString happy_var_1
+	)}
+
+happyReduce_73 = happySpecReduce_2  31# happyReduction_73
+happyReduction_73 happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
+	case happyOut36 happy_x_2 of { happy_var_2 -> 
+	happyIn35
+		 (happy_var_1 : (reverse happy_var_2)
+	)}}
+
+happyReduce_74 = happySpecReduce_0  32# happyReduction_74
+happyReduction_74  =  happyIn36
+		 ([]
+	)
+
+happyReduce_75 = happySpecReduce_3  32# happyReduction_75
+happyReduction_75 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_76 = happyMonadReduce 3# 33# happyReduction_76
+happyReduction_76 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+        do
+            l1 <- mkLoc happy_var_1
+            return (l1, SelectAllFields $ tkString happy_var_1))}
+	) (\r -> happyReturn (happyIn37 r))
+
+happyReduce_77 = happyMonadReduce 4# 33# happyReduction_77
+happyReduction_77 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_4 of { happy_var_4 -> 
+	( 
+        do
+            l1 <- mkLoc happy_var_1
+            return (l1, SelectIdField (tkString happy_var_1) happy_var_4))}}
+	) (\r -> happyReturn (happyIn37 r))
+
+happyReduce_78 = happyMonadReduce 4# 33# happyReduction_78
+happyReduction_78 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { happy_var_3 -> 
+	case happyOut38 happy_x_4 of { happy_var_4 -> 
+	(
+        do
+            l1 <- mkLoc happy_var_1
+            return (l1, SelectField (tkString happy_var_1) (tkString happy_var_3) happy_var_4))}}}
+	) (\r -> happyReturn (happyIn37 r))
+
+happyReduce_79 = happyMonadReduce 6# 33# happyReduction_79
+happyReduction_79 (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) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_4 of { happy_var_4 -> 
+	case happyOut38 happy_x_6 of { happy_var_6 -> 
+	( 
+        do
+            l1 <- mkLoc happy_var_1
+            return (l1, SelectParamField (tkString happy_var_1) (tkString happy_var_4) happy_var_6))}}}
+	) (\r -> happyReturn (happyIn37 r))
+
+happyReduce_80 = happyMonadReduce 3# 33# happyReduction_80
+happyReduction_80 (happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOut60 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { happy_var_3 -> 
+	( 
+        do
+            l3 <- mkLoc happy_var_3
+            return (l3, SelectValExpr happy_var_1 (tkString happy_var_3) ))}}
+	) (\r -> happyReturn (happyIn37 r))
+
+happyReduce_81 = happySpecReduce_0  34# happyReduction_81
+happyReduction_81  =  happyIn38
+		 (Nothing
+	)
+
+happyReduce_82 = happySpecReduce_2  34# happyReduction_82
+happyReduction_82 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { happy_var_2 -> 
+	happyIn38
+		 (Just $ tkString happy_var_2
+	)}
+
+happyReduce_83 = happySpecReduce_0  35# happyReduction_83
+happyReduction_83  =  happyIn39
+		 ([]
+	)
+
+happyReduce_84 = happyMonadReduce 4# 35# happyReduction_84
+happyReduction_84 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOut63 happy_x_1 of { happy_var_1 -> 
+	case happyOut28 happy_x_2 of { happy_var_2 -> 
+	case happyOut62 happy_x_3 of { happy_var_3 -> 
+	case happyOut39 happy_x_4 of { happy_var_4 -> 
+	( 
+            do
+                let (en,vn) = happy_var_2
+                return $ (Join happy_var_1 en vn happy_var_3):happy_var_4)}}}}
+	) (\r -> happyReturn (happyIn39 r))
+
+happyReduce_85 = happySpecReduce_0  36# happyReduction_85
+happyReduction_85  =  happyIn40
+		 (Nothing
+	)
+
+happyReduce_86 = happySpecReduce_2  36# happyReduction_86
+happyReduction_86 happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_2 of { happy_var_2 -> 
+	happyIn40
+		 (Just happy_var_2
+	)}
+
+happyReduce_87 = happySpecReduce_0  37# happyReduction_87
+happyReduction_87  =  happyIn41
+		 ([]
+	)
+
+happyReduce_88 = happySpecReduce_3  37# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut44 happy_x_3 of { happy_var_3 -> 
+	happyIn41
+		 ((reverse happy_var_3)
+	)}
+
+happyReduce_89 = happySpecReduce_0  38# happyReduction_89
+happyReduction_89  =  happyIn42
+		 ((10000,0)
+	)
+
+happyReduce_90 = happySpecReduce_3  38# happyReduction_90
+happyReduction_90 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (Tk _ (TInt happy_var_2)) -> 
+	case happyOut43 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_2,happy_var_3)
+	)}}
+
+happyReduce_91 = happySpecReduce_0  39# happyReduction_91
+happyReduction_91  =  happyIn43
+		 (0
+	)
+
+happyReduce_92 = happySpecReduce_2  39# happyReduction_92
+happyReduction_92 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (Tk _ (TInt happy_var_2)) -> 
+	happyIn43
+		 (happy_var_2
+	)}
+
+happyReduce_93 = happySpecReduce_1  40# happyReduction_93
+happyReduction_93 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn44
+		 ([happy_var_1]
+	)}
+
+happyReduce_94 = happySpecReduce_3  40# happyReduction_94
+happyReduction_94 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	case happyOut45 happy_x_3 of { happy_var_3 -> 
+	happyIn44
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_95 = happySpecReduce_2  41# happyReduction_95
+happyReduction_95 happy_x_2
+	happy_x_1
+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
+	case happyOut46 happy_x_2 of { happy_var_2 -> 
+	happyIn45
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_96 = happySpecReduce_1  42# happyReduction_96
+happyReduction_96 happy_x_1
+	 =  happyIn46
+		 (SortAsc
+	)
+
+happyReduce_97 = happySpecReduce_1  42# happyReduction_97
+happyReduction_97 happy_x_1
+	 =  happyIn46
+		 (SortDesc
+	)
+
+happyReduce_98 = happySpecReduce_3  43# happyReduction_98
+happyReduction_98 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn47
+		 (happy_var_2
+	)}
+
+happyReduce_99 = happySpecReduce_3  44# happyReduction_99
+happyReduction_99 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn48
+		 ((tkString happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_100 = happySpecReduce_0  45# happyReduction_100
+happyReduction_100  =  happyIn49
+		 ([]
+	)
+
+happyReduce_101 = happySpecReduce_2  45# happyReduction_101
+happyReduction_101 happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn49
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_102 = happySpecReduce_3  46# happyReduction_102
+happyReduction_102 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (InputFieldNormal $ tkString happy_var_3
+	)}
+
+happyReduce_103 = happySpecReduce_1  46# happyReduction_103
+happyReduction_103 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (InputFieldLocalParam (tkString happy_var_1)
+	)}
+
+happyReduce_104 = happySpecReduce_3  46# happyReduction_104
+happyReduction_104 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (InputFieldLocalParamField (tkString happy_var_1) (tkString happy_var_3)
+	)}}
+
+happyReduce_105 = happySpecReduce_1  46# happyReduction_105
+happyReduction_105 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Tk _ (TPathParam happy_var_1)) -> 
+	happyIn50
+		 (InputFieldPathParam happy_var_1
+	)}
+
+happyReduce_106 = happySpecReduce_3  46# happyReduction_106
+happyReduction_106 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn50
+		 (InputFieldAuthId
+	)
+
+happyReduce_107 = happySpecReduce_3  46# happyReduction_107
+happyReduction_107 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (InputFieldAuth $ tkString happy_var_3
+	)}
+
+happyReduce_108 = happySpecReduce_1  46# happyReduction_108
+happyReduction_108 happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (InputFieldConst happy_var_1
+	)}
+
+happyReduce_109 = happySpecReduce_3  46# happyReduction_109
+happyReduction_109 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn50
+		 (InputFieldNow
+	)
+
+happyReduce_110 = happySpecReduce_1  47# happyReduction_110
+happyReduction_110 happy_x_1
+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
+	happyIn51
+		 ([happy_var_1]
+	)}
+
+happyReduce_111 = happySpecReduce_3  47# happyReduction_111
+happyReduction_111 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	happyIn51
+		 (happy_var_3:happy_var_1
+	)}}
+
+happyReduce_112 = happySpecReduce_3  48# happyReduction_112
+happyReduction_112 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
+	happyIn52
+		 (happy_var_2
+	)}
+
+happyReduce_113 = happySpecReduce_0  49# happyReduction_113
+happyReduction_113  =  happyIn53
+		 ([]
+	)
+
+happyReduce_114 = happySpecReduce_1  49# happyReduction_114
+happyReduction_114 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_115 = happySpecReduce_1  50# happyReduction_115
+happyReduction_115 happy_x_1
+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
+	happyIn54
+		 ([ happy_var_1 ]
+	)}
+
+happyReduce_116 = happySpecReduce_3  50# happyReduction_116
+happyReduction_116 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn54
+		 (happy_var_3:happy_var_1
+	)}}
+
+happyReduce_117 = happySpecReduce_3  51# happyReduction_117
+happyReduction_117 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut56 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 ((tkString happy_var_1,happy_var_3)
+	)}}
+
+happyReduce_118 = happySpecReduce_1  52# happyReduction_118
+happyReduction_118 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn56
+		 (OutputFieldLocalParam $ tkString happy_var_1
+	)}
+
+happyReduce_119 = happySpecReduce_1  53# happyReduction_119
+happyReduction_119 happy_x_1
+	 =  happyIn57
+		 (Eq
+	)
+
+happyReduce_120 = happySpecReduce_1  53# happyReduction_120
+happyReduction_120 happy_x_1
+	 =  happyIn57
+		 (Ne
+	)
+
+happyReduce_121 = happySpecReduce_1  53# happyReduction_121
+happyReduction_121 happy_x_1
+	 =  happyIn57
+		 (Lt
+	)
+
+happyReduce_122 = happySpecReduce_1  53# happyReduction_122
+happyReduction_122 happy_x_1
+	 =  happyIn57
+		 (Gt
+	)
+
+happyReduce_123 = happySpecReduce_1  53# happyReduction_123
+happyReduction_123 happy_x_1
+	 =  happyIn57
+		 (Le
+	)
+
+happyReduce_124 = happySpecReduce_1  53# happyReduction_124
+happyReduction_124 happy_x_1
+	 =  happyIn57
+		 (Ge
+	)
+
+happyReduce_125 = happySpecReduce_1  53# happyReduction_125
+happyReduction_125 happy_x_1
+	 =  happyIn57
+		 (Like
+	)
+
+happyReduce_126 = happySpecReduce_1  53# happyReduction_126
+happyReduction_126 happy_x_1
+	 =  happyIn57
+		 (Ilike
+	)
+
+happyReduce_127 = happySpecReduce_1  53# happyReduction_127
+happyReduction_127 happy_x_1
+	 =  happyIn57
+		 (Is
+	)
+
+happyReduce_128 = happySpecReduce_1  53# happyReduction_128
+happyReduction_128 happy_x_1
+	 =  happyIn57
+		 (In
+	)
+
+happyReduce_129 = happySpecReduce_2  53# happyReduction_129
+happyReduction_129 happy_x_2
+	happy_x_1
+	 =  happyIn57
+		 (NotIn
+	)
+
+happyReduce_130 = happySpecReduce_3  54# happyReduction_130
+happyReduction_130 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	case happyOut58 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (AndExpr happy_var_1 happy_var_3
+	)}}
+
+happyReduce_131 = happySpecReduce_3  54# happyReduction_131
+happyReduction_131 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	case happyOut58 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (OrExpr happy_var_1 happy_var_3
+	)}}
+
+happyReduce_132 = happySpecReduce_2  54# happyReduction_132
+happyReduction_132 happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_2 of { happy_var_2 -> 
+	happyIn58
+		 (NotExpr happy_var_2
+	)}
+
+happyReduce_133 = happySpecReduce_3  54# happyReduction_133
+happyReduction_133 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_2 of { happy_var_2 -> 
+	happyIn58
+		 (happy_var_2
+	)}
+
+happyReduce_134 = happySpecReduce_3  54# happyReduction_134
+happyReduction_134 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> 
+	case happyOut57 happy_x_2 of { happy_var_2 -> 
+	case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (BinOpExpr happy_var_1 happy_var_2 happy_var_3
+	)}}}
+
+happyReduce_135 = happySpecReduce_1  55# happyReduction_135
+happyReduction_135 happy_x_1
+	 =  happyIn59
+		 (Div
+	)
+
+happyReduce_136 = happySpecReduce_1  55# happyReduction_136
+happyReduction_136 happy_x_1
+	 =  happyIn59
+		 (Mul
+	)
+
+happyReduce_137 = happySpecReduce_1  55# happyReduction_137
+happyReduction_137 happy_x_1
+	 =  happyIn59
+		 (Add
+	)
+
+happyReduce_138 = happySpecReduce_1  55# happyReduction_138
+happyReduction_138 happy_x_1
+	 =  happyIn59
+		 (Sub
+	)
+
+happyReduce_139 = happySpecReduce_1  55# happyReduction_139
+happyReduction_139 happy_x_1
+	 =  happyIn59
+		 (Concat
+	)
+
+happyReduce_140 = happySpecReduce_3  56# happyReduction_140
+happyReduction_140 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn60
+		 (happy_var_2
+	)}
+
+happyReduce_141 = happySpecReduce_1  56# happyReduction_141
+happyReduction_141 happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn60
+		 (ConstExpr happy_var_1
+	)}
+
+happyReduce_142 = happySpecReduce_1  56# happyReduction_142
+happyReduction_142 happy_x_1
+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
+	happyIn60
+		 (FieldExpr happy_var_1
+	)}
+
+happyReduce_143 = happySpecReduce_3  56# happyReduction_143
+happyReduction_143 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> 
+	case happyOut59 happy_x_2 of { happy_var_2 -> 
+	case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (ValBinOpExpr happy_var_1 happy_var_2 happy_var_3
+	)}}}
+
+happyReduce_144 = happyReduce 4# 56# happyReduction_144
+happyReduction_144 (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
+		 (ConcatManyExpr (reverse happy_var_3)
+	) `HappyStk` happyRest}
+
+happyReduce_145 = happySpecReduce_3  56# happyReduction_145
+happyReduction_145 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn60
+		 (RandomExpr
+	)
+
+happyReduce_146 = happyReduce 4# 56# happyReduction_146
+happyReduction_146 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (FloorExpr happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_147 = happyReduce 4# 56# happyReduction_147
+happyReduction_147 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (CeilingExpr happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_148 = happyReduce 6# 56# happyReduction_148
+happyReduction_148 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_3 of { happy_var_3 -> 
+	case happyOut60 happy_x_5 of { happy_var_5 -> 
+	happyIn60
+		 (ExtractExpr (tkString happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_149 = happyReduce 5# 56# happyReduction_149
+happyReduction_149 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut29 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (SubQueryExpr happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_150 = happyReduce 4# 56# happyReduction_150
+happyReduction_150 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut13 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (ApplyExpr (tkString happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_151 = happySpecReduce_1  57# happyReduction_151
+happyReduction_151 happy_x_1
+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> 
+	happyIn61
+		 ([happy_var_1]
+	)}
+
+happyReduce_152 = happySpecReduce_3  57# happyReduction_152
+happyReduction_152 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_153 = happySpecReduce_0  58# happyReduction_153
+happyReduction_153  =  happyIn62
+		 (Nothing
+	)
+
+happyReduce_154 = happySpecReduce_2  58# happyReduction_154
+happyReduction_154 happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_2 of { happy_var_2 -> 
+	happyIn62
+		 (Just happy_var_2
+	)}
+
+happyReduce_155 = happySpecReduce_2  59# happyReduction_155
+happyReduction_155 happy_x_2
+	happy_x_1
+	 =  happyIn63
+		 (InnerJoin
+	)
+
+happyReduce_156 = happySpecReduce_2  59# happyReduction_156
+happyReduction_156 happy_x_2
+	happy_x_1
+	 =  happyIn63
+		 (CrossJoin
+	)
+
+happyReduce_157 = happySpecReduce_3  59# happyReduction_157
+happyReduction_157 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn63
+		 (LeftOuterJoin
+	)
+
+happyReduce_158 = happySpecReduce_3  59# happyReduction_158
+happyReduction_158 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn63
+		 (RightOuterJoin
+	)
+
+happyReduce_159 = happySpecReduce_3  59# happyReduction_159
+happyReduction_159 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  happyIn63
+		 (FullOuterJoin
+	)
+
+happyReduce_160 = happySpecReduce_0  60# happyReduction_160
+happyReduction_160  =  happyIn64
+		 ([]
+	)
+
+happyReduce_161 = happyReduce 4# 60# happyReduction_161
+happyReduction_161 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut66 happy_x_3 of { happy_var_3 -> 
+	happyIn64
+		 ((reverse happy_var_3)
+	) `HappyStk` happyRest}
+
+happyReduce_162 = happyMonadReduce 1# 61# happyReduction_162
+happyReduction_162 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOut17 happy_x_1 of { happy_var_1 -> 
+	(
+    do
+        l <- mkLoc happy_var_1
+        let n = tkString happy_var_1
+        withSymbol l n $ requireClass $ \c -> do
+            forM_ (classFields c) $ \f -> do
+                declare (fieldLoc f) (fieldName f) (SField f)
+        return n)}
+	) (\r -> happyReturn (happyIn65 r))
+
+happyReduce_163 = happySpecReduce_1  62# happyReduction_163
+happyReduction_163 happy_x_1
+	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
+	happyIn66
+		 ([happy_var_1]
+	)}
+
+happyReduce_164 = happySpecReduce_3  62# happyReduction_164
+happyReduction_164 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut65 happy_x_3 of { happy_var_3 -> 
+	happyIn66
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_165 = happyMonadReduce 8# 63# happyReduction_165
+happyReduction_165 (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) tk
+	 = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> 
+	case happyOut70 happy_x_5 of { happy_var_5 -> 
+	case happyOut79 happy_x_6 of { happy_var_6 -> 
+	( 
+            do
+                l <- mkLoc happy_var_2
+                let n = tkString happy_var_2
+                let c = Class l n (reverse happy_var_5) (reverse happy_var_6)  
+                declare l n (SClass c)
+                return c)}}}
+	) (\r -> happyReturn (happyIn67 r))
+
+happyReduce_166 = happyMonadReduce 0# 64# happyReduction_166
+happyReduction_166 (happyRest) tk
+	 = happyThen (( pushScope)
+	) (\r -> happyReturn (happyIn68 r))
+
+happyReduce_167 = happyMonadReduce 0# 65# happyReduction_167
+happyReduction_167 (happyRest) tk
+	 = happyThen (( popScope)
+	) (\r -> happyReturn (happyIn69 r))
+
+happyReduce_168 = happySpecReduce_0  66# happyReduction_168
+happyReduction_168  =  happyIn70
+		 ([]
+	)
+
+happyReduce_169 = happySpecReduce_3  66# happyReduction_169
+happyReduction_169 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
+	case happyOut71 happy_x_2 of { happy_var_2 -> 
+	happyIn70
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_170 = happyMonadReduce 5# 67# happyReduction_170
+happyReduction_170 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut87 happy_x_2 of { happy_var_2 -> 
+	case happyOut86 happy_x_3 of { happy_var_3 -> 
+	case happyOut72 happy_x_4 of { happy_var_4 -> 
+	case happyOut75 happy_x_5 of { happy_var_5 -> 
+	(
+        do
+            l <- mkLoc happy_var_1
+            let n = tkString happy_var_1
+            let f = Field l happy_var_2 (FieldInternal `elem` happy_var_5) n (NormalField happy_var_3 (reverse happy_var_4)) 
+            declare l n (SField f)
+            return f)}}}}}
+	) (\r -> happyReturn (happyIn71 r))
+
+happyReduce_171 = happyMonadReduce 4# 67# happyReduction_171
+happyReduction_171 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut87 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (Tk _ (TEntityId happy_var_3)) -> 
+	case happyOut75 happy_x_4 of { happy_var_4 -> 
+	( 
+        do
+            l <- mkLoc happy_var_1
+            let n = tkString happy_var_1
+            let f = Field l happy_var_2 (FieldInternal `elem` happy_var_4) n (EntityField happy_var_3) 
+            declare l n (SField f)
+            return f)}}}}
+	) (\r -> happyReturn (happyIn71 r))
+
+happyReduce_172 = happyMonadReduce 4# 67# happyReduction_172
+happyReduction_172 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut87 happy_x_2 of { happy_var_2 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	case happyOut75 happy_x_4 of { happy_var_4 -> 
+	(
+        do  
+            l <- mkLoc happy_var_1
+            let n = tkString happy_var_1
+            let f = Field l happy_var_2 (FieldInternal `elem` happy_var_4) n (EnumField happy_var_3) 
+            declare l n (SField f)
+            return f)}}}}
+	) (\r -> happyReturn (happyIn71 r))
+
+happyReduce_173 = happySpecReduce_0  68# happyReduction_173
+happyReduction_173  =  happyIn72
+		 ([]
+	)
+
+happyReduce_174 = happySpecReduce_3  68# happyReduction_174
+happyReduction_174 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut73 happy_x_2 of { happy_var_2 -> 
+	happyIn72
+		 (happy_var_2
+	)}
+
+happyReduce_175 = happySpecReduce_1  69# happyReduction_175
+happyReduction_175 happy_x_1
+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
+	happyIn73
+		 ([happy_var_1]
+	)}
+
+happyReduce_176 = happySpecReduce_2  69# happyReduction_176
+happyReduction_176 happy_x_2
+	happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	case happyOut74 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_177 = happyMonadReduce 2# 70# happyReduction_177
+happyReduction_177 (happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut5 happy_x_2 of { happy_var_2 -> 
+	(
+        do
+            l <- mkLoc happy_var_1
+            declare l ("check " ++ happy_var_2) SReserved
+            return $ FieldCheck happy_var_2)}}
+	) (\r -> happyReturn (happyIn74 r))
+
+happyReduce_178 = happyMonadReduce 2# 70# happyReduction_178
+happyReduction_178 (happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	case happyOut78 happy_x_2 of { happy_var_2 -> 
+	(
+        do
+            l <- mkLoc happy_var_1
+            declare l "default value" SReserved
+            return $ FieldDefault happy_var_2)}}
+	) (\r -> happyReturn (happyIn74 r))
+
+happyReduce_179 = happySpecReduce_0  71# happyReduction_179
+happyReduction_179  =  happyIn75
+		 ([]
+	)
+
+happyReduce_180 = happySpecReduce_1  71# happyReduction_180
+happyReduction_180 happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 (happy_var_1
+	)}
+
+happyReduce_181 = happySpecReduce_1  72# happyReduction_181
+happyReduction_181 happy_x_1
+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> 
+	happyIn76
+		 ([happy_var_1]
+	)}
+
+happyReduce_182 = happySpecReduce_2  72# happyReduction_182
+happyReduction_182 happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_183 = happySpecReduce_1  73# happyReduction_183
+happyReduction_183 happy_x_1
+	 =  happyIn77
+		 (FieldInternal
+	)
+
+happyReduce_184 = happySpecReduce_1  74# happyReduction_184
+happyReduction_184 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Tk _ (TString happy_var_1)) -> 
+	happyIn78
+		 (StringValue happy_var_1
+	)}
+
+happyReduce_185 = happySpecReduce_1  74# happyReduction_185
+happyReduction_185 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Tk _ (TInt happy_var_1)) -> 
+	happyIn78
+		 (IntValue happy_var_1
+	)}
+
+happyReduce_186 = happySpecReduce_1  74# happyReduction_186
+happyReduction_186 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Tk _ (TFloat happy_var_1)) -> 
+	happyIn78
+		 (FloatValue happy_var_1
+	)}
+
+happyReduce_187 = happySpecReduce_1  74# happyReduction_187
+happyReduction_187 happy_x_1
+	 =  happyIn78
+		 (BoolValue True
+	)
+
+happyReduce_188 = happySpecReduce_1  74# happyReduction_188
+happyReduction_188 happy_x_1
+	 =  happyIn78
+		 (BoolValue False
+	)
+
+happyReduce_189 = happySpecReduce_1  74# happyReduction_189
+happyReduction_189 happy_x_1
+	 =  happyIn78
+		 (NothingValue
+	)
+
+happyReduce_190 = happySpecReduce_0  75# happyReduction_190
+happyReduction_190  =  happyIn79
+		 ([]
+	)
+
+happyReduce_191 = happySpecReduce_3  75# happyReduction_191
+happyReduction_191 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut79 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_2 of { happy_var_2 -> 
+	happyIn79
+		 (happy_var_2 : happy_var_1
+	)}}
+
+happyReduce_192 = happySpecReduce_3  76# happyReduction_192
+happyReduction_192 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_2 of { happy_var_2 -> 
+	case happyOut85 happy_x_3 of { happy_var_3 -> 
+	happyIn80
+		 (Unique happy_var_2 (reverse happy_var_3)
+	)}}
+
+happyReduce_193 = happySpecReduce_0  77# happyReduction_193
+happyReduction_193  =  happyIn81
+		 ([]
+	)
+
+happyReduce_194 = happySpecReduce_3  77# happyReduction_194
+happyReduction_194 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut82 happy_x_2 of { happy_var_2 -> 
+	happyIn81
+		 ((reverse happy_var_2)
+	)}
+
+happyReduce_195 = happySpecReduce_1  78# happyReduction_195
+happyReduction_195 happy_x_1
+	 =  case happyOut6 happy_x_1 of { happy_var_1 -> 
+	happyIn82
+		 ([happy_var_1]
+	)}
+
+happyReduce_196 = happySpecReduce_3  78# happyReduction_196
+happyReduction_196 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut82 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn82
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_197 = happySpecReduce_0  79# happyReduction_197
+happyReduction_197  =  happyIn83
+		 ([]
+	)
+
+happyReduce_198 = happySpecReduce_3  79# happyReduction_198
+happyReduction_198 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut85 happy_x_2 of { happy_var_2 -> 
+	happyIn83
+		 (reverse happy_var_2
+	)}
+
+happyReduce_199 = happyMonadReduce 1# 80# happyReduction_199
+happyReduction_199 (happy_x_1 `HappyStk`
+	happyRest) tk
+	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
+	(
+    do
+        l <- mkLoc happy_var_1
+        let n = tkString happy_var_1
+        withSymbol l n $ requireField $ \_ -> return ()
+        return n)}
+	) (\r -> happyReturn (happyIn84 r))
+
+happyReduce_200 = happySpecReduce_1  81# happyReduction_200
+happyReduction_200 happy_x_1
+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> 
+	happyIn85
+		 ([happy_var_1]
+	)}
+
+happyReduce_201 = happySpecReduce_3  81# happyReduction_201
+happyReduction_201 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut85 happy_x_1 of { happy_var_1 -> 
+	case happyOut84 happy_x_3 of { happy_var_3 -> 
+	happyIn85
+		 (happy_var_3 : happy_var_1
+	)}}
+
+happyReduce_202 = happySpecReduce_1  82# happyReduction_202
+happyReduction_202 happy_x_1
+	 =  happyIn86
+		 (FTWord32
+	)
+
+happyReduce_203 = happySpecReduce_1  82# happyReduction_203
+happyReduction_203 happy_x_1
+	 =  happyIn86
+		 (FTWord64
+	)
+
+happyReduce_204 = happySpecReduce_1  82# happyReduction_204
+happyReduction_204 happy_x_1
+	 =  happyIn86
+		 (FTInt32
+	)
+
+happyReduce_205 = happySpecReduce_1  82# happyReduction_205
+happyReduction_205 happy_x_1
+	 =  happyIn86
+		 (FTInt64
+	)
+
+happyReduce_206 = happySpecReduce_1  82# happyReduction_206
+happyReduction_206 happy_x_1
+	 =  happyIn86
+		 (FTText
+	)
+
+happyReduce_207 = happySpecReduce_1  82# happyReduction_207
+happyReduction_207 happy_x_1
+	 =  happyIn86
+		 (FTBool
+	)
+
+happyReduce_208 = happySpecReduce_1  82# happyReduction_208
+happyReduction_208 happy_x_1
+	 =  happyIn86
+		 (FTDouble
+	)
+
+happyReduce_209 = happySpecReduce_1  82# happyReduction_209
+happyReduction_209 happy_x_1
+	 =  happyIn86
+		 (FTTimeOfDay
+	)
+
+happyReduce_210 = happySpecReduce_1  82# happyReduction_210
+happyReduction_210 happy_x_1
+	 =  happyIn86
+		 (FTDay
+	)
+
+happyReduce_211 = happySpecReduce_1  82# happyReduction_211
+happyReduction_211 happy_x_1
+	 =  happyIn86
+		 (FTUTCTime
+	)
+
+happyReduce_212 = happySpecReduce_1  82# happyReduction_212
+happyReduction_212 happy_x_1
+	 =  happyIn86
+		 (FTZonedTime
+	)
+
+happyReduce_213 = happySpecReduce_0  83# happyReduction_213
+happyReduction_213  =  happyIn87
+		 (False
+	)
+
+happyReduce_214 = happySpecReduce_1  83# happyReduction_214
+happyReduction_214 happy_x_1
+	 =  happyIn87
+		 (True
+	)
+
+happyNewToken action sts stk [] =
+	happyDoAction 110# notHappyAtAll action sts stk []
+
+happyNewToken action sts stk (tk:tks) =
+	let cont i = happyDoAction i tk action sts stk tks in
+	case tk of {
+	Tk _ TModule -> cont 1#;
+	Tk _ TImport -> cont 2#;
+	Tk _ TEnum -> cont 3#;
+	Tk _ TPipe -> cont 4#;
+	Tk _ TEntity -> cont 5#;
+	Tk _ TClass -> cont 6#;
+	Tk _ TRoute -> cont 7#;
+	Tk _ TUnique -> cont 8#;
+	Tk _ TCheck -> cont 9#;
+	Tk _ (TLowerId _) -> cont 10#;
+	Tk _ (TUpperId _) -> cont 11#;
+	Tk _ (TInt happy_dollar_dollar) -> cont 12#;
+	Tk _ (TFloat happy_dollar_dollar) -> cont 13#;
+	Tk _ TSemicolon -> cont 14#;
+	Tk _ THash -> cont 15#;
+	Tk _ TEquals -> cont 16#;
+	Tk _ TConcatOp -> cont 17#;
+	Tk _ TNe -> cont 18#;
+	Tk _ TLt -> cont 19#;
+	Tk _ TGt -> cont 20#;
+	Tk _ TLe -> cont 21#;
+	Tk _ TGe -> cont 22#;
+	Tk _ TAnd -> cont 23#;
+	Tk _ TOr -> cont 24#;
+	Tk _ TLike -> cont 25#;
+	Tk _ TIlike -> cont 26#;
+	Tk _ TLBrace -> cont 27#;
+	Tk _ TRBrace -> cont 28#;
+	Tk _ TLParen -> cont 29#;
+	Tk _ TRParen -> cont 30#;
+	Tk _ TComma -> cont 31#;
+	Tk _ TDot -> cont 32#;
+	Tk _ TSlash -> cont 33#;
+	Tk _ (TString happy_dollar_dollar) -> cont 34#;
+	Tk _ TWord32 -> cont 35#;
+	Tk _ TWord64 -> cont 36#;
+	Tk _ TInt32 -> cont 37#;
+	Tk _ TInt64 -> cont 38#;
+	Tk _ TText -> cont 39#;
+	Tk _ TBool -> cont 40#;
+	Tk _ TDouble -> cont 41#;
+	Tk _ TTimeOfDay -> cont 42#;
+	Tk _ TDay -> cont 43#;
+	Tk _ TUTCTime -> cont 44#;
+	Tk _ TZonedTime -> cont 45#;
+	Tk _ TMaybe -> cont 46#;
+	Tk _ TGet -> cont 47#;
+	Tk _ TParam -> cont 48#;
+	Tk _ TNot -> cont 49#;
+	Tk _ TIf -> cont 50#;
+	Tk _ TThen -> cont 51#;
+	Tk _ TAsterisk -> cont 52#;
+	Tk _ TPlus -> cont 53#;
+	Tk _ TMinus -> cont 54#;
+	Tk _ TPut -> cont 55#;
+	Tk _ TPost -> cont 56#;
+	Tk _ TDelete -> cont 57#;
+	Tk _ TPublic -> cont 58#;
+	Tk _ TInstance -> cont 59#;
+	Tk _ TOf -> cont 60#;
+	Tk _ TIn -> cont 61#;
+	Tk _ TLimit -> cont 62#;
+	Tk _ TOffset -> cont 63#;
+	Tk _ TSelect -> cont 64#;
+	Tk _ TFrom -> cont 65#;
+	Tk _ TJoin -> cont 66#;
+	Tk _ TInner -> cont 67#;
+	Tk _ TOuter -> cont 68#;
+	Tk _ TLeft -> cont 69#;
+	Tk _ TRight -> cont 70#;
+	Tk _ TFull -> cont 71#;
+	Tk _ TCross -> cont 72#;
+	Tk _ TOn -> cont 73#;
+	Tk _ TAs -> cont 74#;
+	Tk _ TIs -> cont 75#;
+	Tk _ TInsert -> cont 76#;
+	Tk _ TUpdate -> cont 77#;
+	Tk _ TDefaultFilterSort -> cont 78#;
+	Tk _ TIdentified -> cont 79#;
+	Tk _ TWith -> cont 80#;
+	Tk _ TOrder -> cont 81#;
+	Tk _ TBy -> cont 82#;
+	Tk _ TAsc -> cont 83#;
+	Tk _ TDesc -> cont 84#;
+	Tk _ TWhere -> cont 85#;
+	Tk _ TDeriving -> cont 86#;
+	Tk _ TDefault -> cont 87#;
+	Tk _ (TPathParam happy_dollar_dollar) -> cont 88#;
+	Tk _ TId -> cont 89#;
+	Tk _ (TEntityId happy_dollar_dollar) -> cont 90#;
+	Tk _ TLocalParam -> cont 91#;
+	Tk _ TTrue -> cont 92#;
+	Tk _ TFalse -> cont 93#;
+	Tk _ TNothing -> cont 94#;
+	Tk _ TRequest -> cont 95#;
+	Tk _ TLArrow -> cont 96#;
+	Tk _ TNow -> cont 97#;
+	Tk _ TAuth -> cont 98#;
+	Tk _ TReturn -> cont 99#;
+	Tk _ TRequire -> cont 100#;
+	Tk _ TInternal -> cont 101#;
+	Tk _ TUnderScore -> cont 102#;
+	Tk _ TDefine -> cont 103#;
+	Tk _ TFor -> cont 104#;
+	Tk _ TExtract -> cont 105#;
+	Tk _ TConcat -> cont 106#;
+	Tk _ TRandom -> cont 107#;
+	Tk _ TFloor -> cont 108#;
+	Tk _ TCeiling -> cont 109#;
+	_ -> happyError' (tk:tks)
+	}
+
+happyError_ 110# tk tks = happyError' tks
+happyError_ _ tk tks = happyError' (tk:tks)
+
+happyThen :: () => ParserMonad a -> (a -> ParserMonad b) -> ParserMonad b
+happyThen = (>>=)
+happyReturn :: () => a -> ParserMonad a
+happyReturn = (return)
+happyThen1 m k tks = (>>=) m (\a -> k a tks)
+happyReturn1 :: () => a -> b -> ParserMonad a
+happyReturn1 = \a tks -> (return) a
+happyError' :: () => [(Token)] -> ParserMonad a
+happyError' = parseError
+
+parseModuleDefs tks = happySomeParser where
+  happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut4 x))
+
+happySeq = happyDontSeq
+
+
+data ModDef = EntityDef Entity
+           | ClassDef Class
+           | EnumDef EnumType
+           | RouteDef Route
+           | DefineDef Define
+           deriving (Show)
+
+data FieldFlag = FieldInternal deriving (Eq)
+getEntities :: [ModDef] -> [Entity]
+getEntities defs = mapMaybe (\d -> case d of (EntityDef e) -> Just e ; _ -> Nothing) defs
+
+getClasses :: [ModDef] -> [Class]
+getClasses defs = mapMaybe (\d -> case d of (ClassDef c) -> Just c; _ -> Nothing) defs
+
+getEnums :: [ModDef] -> [EnumType]
+getEnums defs = mapMaybe (\d -> case d of (EnumDef e) -> Just e; _ -> Nothing) defs
+
+getRoutes :: [ModDef] -> [Route]
+getRoutes defs = mapMaybe (\d -> case d of (RouteDef e) -> Just e; _ -> Nothing) defs
+
+getDefines :: [ModDef] -> [Define]
+getDefines defs = mapMaybe (\d -> case d of (DefineDef e) -> Just e; _ -> Nothing) defs
+
+
+data ParseError = ParseError String deriving (Show, Typeable)
+instance Exception ParseError
+
+parseError :: [Token] -> a
+parseError (t:ts) = throw (ParseError $ "Parse error : unexpected " ++ show (tokenType t) ++ " at line " ++ show (tokenLineNum t) ++ " col " ++ show (tokenColNum t))
+parseError _ = throw (ParseError $ "Parse error : unexpected end of file")
+
+parseModule :: ParserState -> FilePath -> IO (Module,ParserState)
+parseModule ps path = catch 
+        (do
+            s <- readFile path
+            (m,ps') <- runParser path ps (parseModuleDefs $! lexer s)
+            return $! (m,ps'))
+        (\(ParseError msg) -> do 
+            hPutStrLn stderr $ path ++ ": " ++ msg
+            exitWith (ExitFailure 1))
+       
+parse path = do
+    (m,ps) <- parseModule initParserState path
+    let ast = expandMacros $ implementClasses m
+    errors <- postValidation ast ps
+    if errors == 0
+        then return $ Just ast
+        else do
+            hPutStrLn stderr $ show errors ++ " errors"
+            return $ Just ast -- Nothing
 {-# LINE 1 "templates/GenericTemplate.hs" #-}
 {-# LINE 1 "templates/GenericTemplate.hs" #-}
 {-# LINE 1 "<built-in>" #-}
diff --git a/main/main.hs b/main/main.hs
--- a/main/main.hs
+++ b/main/main.hs
@@ -31,15 +31,16 @@
     where
                          
         main' o path = do
-            dbs <- parse path
-            let ast  = expandMacros . implementClasses . mergeModules $ dbs
-
-            let errors = validate ast
-            if null errors 
-                then do
-                    generate path $ ast 
-                    forM_ o (processFlag ast)
-                else hPutStrLn stderr errors
+            mast <- parse path
+            case mast of
+                Just ast -> do
+                    let errors = validate ast
+                    if null errors 
+                        then do
+                            generate path $ ast 
+                            forM_ o (processFlag ast)
+                        else hPutStrLn stderr errors
+                Nothing -> return ()
         processFlag ast (FayPath path) = genFay path ast
             
         processFlag _ _ = return ()
diff --git a/yesod-dsl.cabal b/yesod-dsl.cabal
--- a/yesod-dsl.cabal
+++ b/yesod-dsl.cabal
@@ -1,5 +1,5 @@
 name:           yesod-dsl
-version:        0.1.1.18
+version:        0.1.1.19
 license:        BSD3
 license-file:   LICENSE
 author:         Tero Laitinen 
@@ -24,6 +24,7 @@
                  , MissingH >= 1.2.0.0
                  , filepath >= 1.3.0.0
                  , containers >= 0.4.2.1
+                 , transformers
                  , mtl >= 2.1.2
                  , strict
                  , Cabal
@@ -34,12 +35,13 @@
     buildable: True
     exposed-modules:
            YesodDsl.Lexer 
-           YesodDsl.Parser 
+           YesodDsl.Parser
+           YesodDsl.ParserState 
            YesodDsl.AST 
            YesodDsl.Generator 
            YesodDsl.ClassImplementer 
            YesodDsl.ModuleMerger 
-           YesodDsl.Validation 
+           YesodDsl.Validation
            YesodDsl.Generator.Classes
            YesodDsl.Generator.Common
            YesodDsl.Generator.Esqueleto
@@ -48,7 +50,7 @@
            YesodDsl.Generator.Models
            YesodDsl.Generator.Routes
            YesodDsl.Generator.UpdateHandlers
-           YesodDsl.Generator.Validation
+           YesodDsl.Generator.Interface
            YesodDsl.Generator.Require
            YesodDsl.Generator.Cabal
            YesodDsl.Generator.EsqueletoInstances
